CHECK report for Biobase on machv2
This page was generated on 2020-10-17 11:58:06 -0400 (Sat, 17 Oct 2020).
|  | TO THE DEVELOPERS/MAINTAINERS OF THE Biobase PACKAGE: Please make sure to use the following settings in order to reproduce any error or warning you see on this page. |  | 
 
| Biobase 2.48.0 Bioconductor Package Maintainer
 
 
| Snapshot Date: 2020-10-16 14:40:19 -0400 (Fri, 16 Oct 2020) |  | URL: https://git.bioconductor.org/packages/Biobase |  | Branch: RELEASE_3_11 |  | Last Commit: 4ffadf2 |  | Last Changed Date: 2020-04-27 14:07:40 -0400 (Mon, 27 Apr 2020) |  | malbec2 | Linux (Ubuntu 18.04.4 LTS) / x86_64 | OK | OK | OK |  |  | 
| tokay2 | Windows Server 2012 R2 Standard / x64 | OK | OK | OK | OK |  | 
| machv2 | macOS 10.14.6 Mojave / x86_64 | OK | OK | [ OK ] | OK |  | 
Summary
Command output
Installation output
Biobase.Rcheck/00install.out
Tests output
Biobase.Rcheck/tests/test-all.Rout
R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> BiocGenerics:::testPackage("Biobase")
Attaching package: 'BiocGenerics'
The following objects are masked from 'package:parallel':
    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from 'package:stats':
    IQR, mad, sd, var, xtabs
The following objects are masked from 'package:base':
    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which, which.max, which.min
Welcome to Bioconductor
    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.
RUNIT TEST PROTOCOL -- Fri Oct 16 23:02:21 2020 
*********************************************** 
Number of test functions: 101 
Number of errors: 0 
Number of failures: 0 
 
1 Test Suite : 
Biobase RUnit Tests - 101 test functions, 0 errors, 0 failures
Number of test functions: 101 
Number of errors: 0 
Number of failures: 0 
> 
> proc.time()
   user  system elapsed 
 18.844   0.259  19.160 
 Biobase.Rcheck/tests/test-rowMedians.Rout
R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(Biobase)
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: 'BiocGenerics'
The following objects are masked from 'package:parallel':
    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from 'package:stats':
    IQR, mad, sd, var, xtabs
The following objects are masked from 'package:base':
    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, mapply, match, mget, order, paste, pmax, pmax.int, pmin,
    pmin.int, rank, rbind, rownames, sapply, setdiff, sort, table,
    tapply, union, unique, unsplit, which, which.max, which.min
Welcome to Bioconductor
    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.
> set.seed(1)
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # Consistency checks
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
> # rowMedians() by rowQ()
> rowMedians2 <- function(imat) {
+   nr <- ncol(imat)
+   half <- (nr + 1)/2
+   if (nr%%2 == 1) {
+     return(rowQ(imat, half))
+   } else {
+     return((rowQ(imat, half) + rowQ(imat, half+1))/2)
+   }
+ }
> 
> cat("Consistency checks:\n")
Consistency checks:
> set.seed(1)
> for (kk in 1:20) {
+   cat("Random test #", kk, "\n", sep="")
+ 
+   # Simulate data in a matrix of any shape
+   nrow <- sample(2000, size=1)
+   ncol <- sample(2000, size=1)
+   x <- rnorm(nrow*ncol)
+   dim(x) <- c(nrow, ncol)
+ 
+   # Add NAs?
+   nas <- sample(c(TRUE,FALSE), size=1)
+   if (nas) {
+     nna <- sample(nrow*ncol, size=1)
+     x[sample(length(x), size=nna)] <- NA
+   }
+ 
+   na.rm <- nas
+   t1 <- system.time({
+     y1 <- rowMedians(x, na.rm=na.rm)
+   })
+   t2 <- system.time({
+     y2 <- apply(x, MARGIN=1, FUN=median, na.rm=na.rm)
+   })
+   # When all values of 'y2' are NA, 'y2' is logical
+   if (is.logical(y2)) y2 <- as.double(y2)
+   stopifnot(all.equal(y1,y2))
+   cat(sprintf("rowMedians()/apply(): %.3g\n", (t1/t2)[3]))
+ 
+   if (!nas) {
+     t3 <- system.time({
+       y3 <- rowMedians2(x)
+     })
+     stopifnot(all.equal(y1,y3))
+     cat(sprintf("rowMedians()/rowMedians2(): %.3g\n", (t1/t3)[3]))
+   }
+ }
Random test #1
rowMedians()/apply(): 0.205
Random test #2
rowMedians()/apply(): 0.134
rowMedians()/rowMedians2(): 0.394
Random test #3
rowMedians()/apply(): 0.0417
Random test #4
rowMedians()/apply(): 0.152
rowMedians()/rowMedians2(): 0.24
Random test #5
rowMedians()/apply(): 0.22
rowMedians()/rowMedians2(): 0.405
Random test #6
rowMedians()/apply(): 0.239
rowMedians()/rowMedians2(): 0.396
Random test #7
rowMedians()/apply(): 0.25
Random test #8
rowMedians()/apply(): 0
rowMedians()/rowMedians2(): NaN
Random test #9
rowMedians()/apply(): 0.125
Random test #10
rowMedians()/apply(): 0.0635
Random test #11
rowMedians()/apply(): 0.105
Random test #12
rowMedians()/apply(): 0.115
Random test #13
rowMedians()/apply(): 0.333
rowMedians()/rowMedians2(): 0.889
Random test #14
rowMedians()/apply(): 0.19
Random test #15
rowMedians()/apply(): 0.162
Random test #16
rowMedians()/apply(): 0.216
rowMedians()/rowMedians2(): 0.472
Random test #17
rowMedians()/apply(): 0.163
Random test #18
rowMedians()/apply(): 0.0904
rowMedians()/rowMedians2(): 0.944
Random test #19
rowMedians()/apply(): 0.315
rowMedians()/rowMedians2(): 0.867
Random test #20
rowMedians()/apply(): 0.28
rowMedians()/rowMedians2(): 0.467
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # Benchmarking
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> cat("Benchmarking:\n")
Benchmarking:
> 
> # Simulate data in a matrix of any shape
> nrow <- 1000
> ncol <- 1000
> x <- rnorm(nrow*ncol)
> dim(x) <- c(nrow, ncol)
> 
> gc()
          used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells  583453 31.2    1167352 62.4         NA  1038299 55.5
Vcells 2060383 15.8   12255594 93.6      65536 12287866 93.8
> t0 <- system.time({
+   for (rr in 1:20)
+     y0 <- apply(x, MARGIN=1, FUN=median, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells  583469 31.2    1167352 62.4         NA  1167352 62.4
Vcells 2061400 15.8   12255594 93.6      65536 12287866 93.8
> t1 <- system.time({
+   for (rr in 1:20)
+     y1 <- rowMedians(x, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells  583469 31.2    1167352 62.4         NA  1167352 62.4
Vcells 2060525 15.8   12255594 93.6      65536 12287866 93.8
> stopifnot(all.equal(y0,y1))
> cat(sprintf("rowMedians()/apply(): %.3g\n", (t1/t0)[3]))
rowMedians()/apply(): 0.191
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # Consistency checks
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> cat("Consistency checks without NAs:\n")
Consistency checks without NAs:
> for (kk in 1:20) {
+   cat("Random test #", kk, "\n", sep="")
+ 
+   # Simulate data in a matrix of any shape
+   nrow <- sample(1000, size=1)
+   ncol <- sample(1000, size=1)
+   x <- rnorm(nrow*ncol)
+   dim(x) <- c(nrow, ncol)
+ 
+   t0 <- system.time({
+     y0 <- apply(x, MARGIN=1, FUN=median, na.rm=FALSE)
+   })
+   t1 <- system.time({
+     y1 <- rowMedians(x, na.rm=FALSE)
+   })
+   stopifnot(all.equal(y0,y1))
+ } # for (kk in ...)
Random test #1
Random test #2
Random test #3
Random test #4
Random test #5
Random test #6
Random test #7
Random test #8
Random test #9
Random test #10
Random test #11
Random test #12
Random test #13
Random test #14
Random test #15
Random test #16
Random test #17
Random test #18
Random test #19
Random test #20
> 
> 
> 
> cat("Consistency checks with NAs:\n")
Consistency checks with NAs:
> for (kk in 1:20) {
+   cat("Random test #", kk, "\n", sep="")
+ 
+   # Simulate data in a matrix of any shape
+   nrow <- sample(1000, size=1)
+   ncol <- sample(1000, size=1)
+   x <- rnorm(nrow*ncol)
+   dim(x) <- c(nrow, ncol)
+ 
+   # Add NAs
+   nna <- sample(nrow*ncol-1, size=1)
+   x[sample(length(x), size=nna)] <- NA
+ 
+   t0 <- system.time({
+     y0 <- apply(x, MARGIN=1, FUN=median, na.rm=TRUE)
+     y0[is.na(y0)] <- NA
+   })
+   t1 <- system.time({
+     y1 <- rowMedians(x, na.rm=TRUE)
+   })
+   stopifnot(all.equal(y0,y1))
+ } # for (kk in ...)
Random test #1
Random test #2
Random test #3
Random test #4
Random test #5
Random test #6
Random test #7
Random test #8
Random test #9
Random test #10
Random test #11
Random test #12
Random test #13
Random test #14
Random test #15
Random test #16
Random test #17
Random test #18
Random test #19
Random test #20
> 
> proc.time()
   user  system elapsed 
 24.969   0.839  25.819 
 
Example timings
Biobase.Rcheck/Biobase-Ex.timings