Back to Multiple platform build/check report for BioC 3.14
A[B]CDEFGHIJKLMNOPQRSTUVWXYZ

This page was generated on 2022-01-21 13:06:00 -0500 (Fri, 21 Jan 2022).

HostnameOSArch (*)R versionInstalled pkgs
nebbiolo2Linux (Ubuntu 20.04.4 LTS)x86_644.1.2 (2021-11-01) -- "Bird Hippie" 4329
tokay2Windows Server 2012 R2 Standardx644.1.2 (2021-11-01) -- "Bird Hippie" 4079
machv2macOS 10.14.6 Mojavex86_644.1.2 (2021-11-01) -- "Bird Hippie" 4140
Click on any hostname to see more info about the system (e.g. compilers)      (*) as reported by 'uname -p', except on Windows and Mac OS X

CHECK results for Biobase on tokay2


To the developers/maintainers of the Biobase package:
- Please allow up to 24 hours (and sometimes 48 hours) for your latest push to git@git.bioconductor.org:packages/Biobase.git to
reflect on this report. See How and When does the builder pull? When will my changes propagate? here for more information.
- Make sure to use the following settings in order to reproduce any error or warning you see on this page.

raw results

Package 152/2083HostnameOS / ArchINSTALLBUILDCHECKBUILD BIN
Biobase 2.54.0  (landing page)
Bioconductor Package Maintainer
Snapshot Date: 2022-01-20 01:55:04 -0500 (Thu, 20 Jan 2022)
git_url: https://git.bioconductor.org/packages/Biobase
git_branch: RELEASE_3_14
git_last_commit: 8215d76
git_last_commit_date: 2021-10-26 11:45:25 -0500 (Tue, 26 Oct 2021)
nebbiolo2Linux (Ubuntu 20.04.4 LTS) / x86_64  OK    OK    OK  UNNEEDED, same version is already published
tokay2Windows Server 2012 R2 Standard / x64  OK    OK    OK    OK  UNNEEDED, same version is already published
machv2macOS 10.14.6 Mojave / x86_64  OK    OK    OK    OK  UNNEEDED, same version is already published

Summary

Package: Biobase
Version: 2.54.0
Command: C:\Users\biocbuild\bbs-3.14-bioc\R\bin\R.exe CMD check --force-multiarch --install=check:Biobase.install-out.txt --library=C:\Users\biocbuild\bbs-3.14-bioc\R\library --no-vignettes --timings Biobase_2.54.0.tar.gz
StartedAt: 2022-01-20 16:27:33 -0500 (Thu, 20 Jan 2022)
EndedAt: 2022-01-20 16:30:48 -0500 (Thu, 20 Jan 2022)
EllapsedTime: 195.5 seconds
RetCode: 0
Status:   OK  
CheckDir: Biobase.Rcheck
Warnings: 0

Command output

##############################################################################
##############################################################################
###
### Running command:
###
###   C:\Users\biocbuild\bbs-3.14-bioc\R\bin\R.exe CMD check --force-multiarch --install=check:Biobase.install-out.txt --library=C:\Users\biocbuild\bbs-3.14-bioc\R\library --no-vignettes --timings Biobase_2.54.0.tar.gz
###
##############################################################################
##############################################################################


* using log directory 'C:/Users/biocbuild/bbs-3.14-bioc/meat/Biobase.Rcheck'
* using R version 4.1.2 (2021-11-01)
* using platform: x86_64-w64-mingw32 (64-bit)
* using session charset: ISO8859-1
* using option '--no-vignettes'
* checking for file 'Biobase/DESCRIPTION' ... OK
* this is package 'Biobase' version '2.54.0'
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking whether package 'Biobase' can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking 'build' directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* loading checks for arch 'i386'
** checking whether the package can be loaded ... OK
** checking whether the package can be loaded with stated dependencies ... OK
** checking whether the package can be unloaded cleanly ... OK
** checking whether the namespace can be loaded with stated dependencies ... OK
** checking whether the namespace can be unloaded cleanly ... OK
* loading checks for arch 'x64'
** checking whether the package can be loaded ... OK
** checking whether the package can be loaded with stated dependencies ... OK
** checking whether the package can be unloaded cleanly ... OK
** checking whether the namespace can be loaded with stated dependencies ... OK
** checking whether the namespace can be unloaded cleanly ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... NOTE
addVigs2WinMenu: no visible global function definition for
  'winMenuNames'
addVigs2WinMenu: no visible global function definition for 'winMenuAdd'
addVigs2WinMenu: no visible global function definition for
  'winMenuAddItem'
Undefined global functions or variables:
  winMenuAdd winMenuAddItem winMenuNames
Consider adding
  importFrom("utils", "winMenuAdd", "winMenuAddItem", "winMenuNames")
to your NAMESPACE file.
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking contents of 'data' directory ... OK
* checking data for non-ASCII characters ... OK
* checking data for ASCII and uncompressed saves ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking compiled code ... NOTE
Note: information on .o files for i386 is not available
Note: information on .o files for x64 is not available
File 'C:/Users/biocbuild/bbs-3.14-bioc/R/library/Biobase/libs/i386/Biobase.dll':
  Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
File 'C:/Users/biocbuild/bbs-3.14-bioc/R/library/Biobase/libs/x64/Biobase.dll':
  Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)

Compiled code should not call entry points which might terminate R nor
write to stdout/stderr instead of to the console, nor use Fortran I/O
nor system RNGs. The detected symbols are linked into the code but
might come from libraries and not actually be called.

See 'Writing portable packages' in the 'Writing R Extensions' manual.
* checking files in 'vignettes' ... OK
* checking examples ...
** running examples for arch 'i386' ... OK
** running examples for arch 'x64' ... OK
* checking for unstated dependencies in 'tests' ... OK
* checking tests ...
** running tests for arch 'i386' ...
  Running 'test-all.R'
  Running 'test-rowMedians.R'
 OK
** running tests for arch 'x64' ...
  Running 'test-all.R'
  Running 'test-rowMedians.R'
 OK
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes in 'inst/doc' ... OK
* checking running R code from vignettes ... SKIPPED
* checking re-building of vignette outputs ... SKIPPED
* checking PDF version of manual ... OK
* DONE

Status: 2 NOTEs
See
  'C:/Users/biocbuild/bbs-3.14-bioc/meat/Biobase.Rcheck/00check.log'
for details.



Installation output

Biobase.Rcheck/00install.out

##############################################################################
##############################################################################
###
### Running command:
###
###   C:\cygwin\bin\curl.exe -O http://155.52.207.166/BBS/3.14/bioc/src/contrib/Biobase_2.54.0.tar.gz && rm -rf Biobase.buildbin-libdir && mkdir Biobase.buildbin-libdir && C:\Users\biocbuild\bbs-3.14-bioc\R\bin\R.exe CMD INSTALL --merge-multiarch --build --library=Biobase.buildbin-libdir Biobase_2.54.0.tar.gz && C:\Users\biocbuild\bbs-3.14-bioc\R\bin\R.exe CMD INSTALL Biobase_2.54.0.zip && rm Biobase_2.54.0.tar.gz Biobase_2.54.0.zip
###
##############################################################################
##############################################################################


  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  4 1152k    4 47275    0     0   303k      0  0:00:03 --:--:--  0:00:03  303k
100 1152k  100 1152k    0     0  3378k      0 --:--:-- --:--:-- --:--:-- 3380k

install for i386

* installing *source* package 'Biobase' ...
** using staged installation
** libs
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c Rinit.c -o Rinit.o
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c anyMissing.c -o anyMissing.o
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c envir.c -o envir.o
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c matchpt.c -o matchpt.o
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c rowMedians.c -o rowMedians.o
"C:/rtools40/mingw32/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c sublist_extract.c -o sublist_extract.o
C:/rtools40/mingw32/bin/gcc -shared -s -static-libgcc -o Biobase.dll tmp.def Rinit.o anyMissing.o envir.o matchpt.o rowMedians.o sublist_extract.o -LC:/extsoft/lib/i386 -LC:/extsoft/lib -LC:/Users/BIOCBU~1/BBS-3~1.14-/R/bin/i386 -lR
installing to C:/Users/biocbuild/bbs-3.14-bioc/meat/Biobase.buildbin-libdir/00LOCK-Biobase/00new/Biobase/libs/i386
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package 'Biobase'
    finding HTML links ... done
    Aggregate                               html  
    Biobase-package                         html  
    ScalarObject-class                      html  
    abstract                                html  
    addVig2Menu                             html  
    annotatedDataFrameFrom-methods          html  
    anyMissing                              html  
    assayData                               html  
    cache                                   html  
    channel                                 html  
    channelNames                            html  
    class.AnnotatedDataFrame                html  
    finding level-2 HTML links ... done

    class.AssayData                         html  
REDIRECT:topic	 Previous alias or file overwritten by alias: C:/Users/biocbuild/bbs-3.14-bioc/meat/Biobase.buildbin-libdir/00LOCK-Biobase/00new/Biobase/help/AssayData.html
    class.ExpressionSet                     html  
    class.MIAME                             html  
    class.MIAxE                             html  
    class.MultiSet                          html  
    class.NChannelSet                       html  
    class.SnpSet                            html  
    class.Versioned                         html  
    class.VersionedBiobase                  html  
    class.Versions                          html  
    class.VersionsNull                      html  
    class.aggregator                        html  
    class.characterORmiame                  html  
    class.container                         html  
    class.eSet                              html  
    classVersion                            html  
    contents                                html  
    copyEnv                                 html  
    copySubstitute                          html  
    createPackage                           html  
    data.aaMap                              html  
    data.geneData                           html  
    data.reporter                           html  
    data.sample.ExpressionSet               html  
    data.sample.MultiSet                    html  
    defunct                                 html  
    description                             html  
    dumpPackTxt                             html  
    esApply                                 html  
    exprs                                   html  
    featureData                             html  
    featureNames                            html  
    getPkgVigs                              html  
    internals                               html  
    isCurrent                               html  
    isUnique                                html  
    isVersioned                             html  
    lcSuffix                                html  
    listLen                                 html  
    makeDataPackage                         html  
    matchpt                                 html  
    multiassign                             html  
    note                                    html  
    notes                                   html  
    openPDF                                 html  
    openVignette                            html  
    package.version                         html  
    phenoData                               html  
    protocolData                            html  
    read.AnnotatedDataFrame                 html  
    read.MIAME                              html  
    readExpressionSet                       html  
    reverseSplit                            html  
    rowMedians                              html  
    rowQ                                    html  
    selectChannels                          html  
    selectSome                              html  
    snpCall                                 html  
    storageMode                             html  
    strbreak                                html  
    subListExtract                          html  
    testBioCConnection                      html  
    updateObjectTo                          html  
    updateOldESet                           html  
    userQuery                               html  
    validMsg                                html  
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path

install for x64

* installing *source* package 'Biobase' ...
** libs
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c Rinit.c -o Rinit.o
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c anyMissing.c -o anyMissing.o
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c envir.c -o envir.o
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c matchpt.c -o matchpt.o
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c rowMedians.c -o rowMedians.o
"C:/rtools40/mingw64/bin/"gcc  -I"C:/Users/BIOCBU~1/BBS-3~1.14-/R/include" -DNDEBUG     -I"C:/extsoft/include"     -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign  -c sublist_extract.c -o sublist_extract.o
C:/rtools40/mingw64/bin/gcc -shared -s -static-libgcc -o Biobase.dll tmp.def Rinit.o anyMissing.o envir.o matchpt.o rowMedians.o sublist_extract.o -LC:/extsoft/lib/x64 -LC:/extsoft/lib -LC:/Users/BIOCBU~1/BBS-3~1.14-/R/bin/x64 -lR
installing to C:/Users/biocbuild/bbs-3.14-bioc/meat/Biobase.buildbin-libdir/Biobase/libs/x64
** testing if installed package can be loaded
* MD5 sums
packaged installation of 'Biobase' as Biobase_2.54.0.zip
* DONE (Biobase)
* installing to library 'C:/Users/biocbuild/bbs-3.14-bioc/R/library'
package 'Biobase' successfully unpacked and MD5 sums checked

Tests output

Biobase.Rcheck/tests_i386/test-all.Rout


R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: i386-w64-mingw32/i386 (32-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: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.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 -- Thu Jan 20 16:29:38 2022 
*********************************************** 
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 
  12.93    0.18   13.78 

Biobase.Rcheck/tests_x64/test-all.Rout


R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (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: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.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 -- Thu Jan 20 16:30:15 2022 
*********************************************** 
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 
  11.96    0.17   12.12 

Biobase.Rcheck/tests_i386/test-rowMedians.Rout


R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: i386-w64-mingw32/i386 (32-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

Attaching package: 'BiocGenerics'

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.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.5
Random test #2
rowMedians()/apply(): 0.0833
rowMedians()/rowMedians2(): 0.167
Random test #3
rowMedians()/apply(): 0
Random test #4
rowMedians()/apply(): 0.25
rowMedians()/rowMedians2(): 0.333
Random test #5
rowMedians()/apply(): 0.438
rowMedians()/rowMedians2(): 0.467
Random test #6
rowMedians()/apply(): 0.167
rowMedians()/rowMedians2(): 0.2
Random test #7
rowMedians()/apply(): 0.589
Random test #8
rowMedians()/apply(): 0
rowMedians()/rowMedians2(): NaN
Random test #9
rowMedians()/apply(): 0.333
Random test #10
rowMedians()/apply(): 0.6
Random test #11
rowMedians()/apply(): 0.667
Random test #12
rowMedians()/apply(): 0.889
Random test #13
rowMedians()/apply(): 0
rowMedians()/rowMedians2(): 0
Random test #14
rowMedians()/apply(): 0.654
Random test #15
rowMedians()/apply(): 0.735
Random test #16
rowMedians()/apply(): 0.333
rowMedians()/rowMedians2(): 0.6
Random test #17
rowMedians()/apply(): 0.75
Random test #18
rowMedians()/apply(): 0.111
rowMedians()/rowMedians2(): 0.5
Random test #19
rowMedians()/apply(): 0.385
rowMedians()/rowMedians2(): 0.714
Random test #20
rowMedians()/apply(): 0.452
rowMedians()/rowMedians2(): 0.538
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # 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) max used (Mb)
Ncells  562881 17.2    1265504 38.7  1016113 31.1
Vcells 1663214 12.7   10146329 77.5 10631844 81.2
> t0 <- system.time({
+   for (rr in 1:20)
+     y0 <- apply(x, MARGIN=1, FUN=median, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) max used (Mb)
Ncells  562898 17.2    1265504 38.7  1114333 34.1
Vcells 1664228 12.7   10146329 77.5 10631844 81.2
> t1 <- system.time({
+   for (rr in 1:20)
+     y1 <- rowMedians(x, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) max used (Mb)
Ncells  562898 17.2    1265504 38.7  1114333 34.1
Vcells 1663353 12.7   10146329 77.5 10631844 81.2
> stopifnot(all.equal(y0,y1))
> cat(sprintf("rowMedians()/apply(): %.3g\n", (t1/t0)[3]))
rowMedians()/apply(): 0.34
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # 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 
  22.01    0.40   22.42 

Biobase.Rcheck/tests_x64/test-rowMedians.Rout


R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (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

Attaching package: 'BiocGenerics'

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.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.2
Random test #2
rowMedians()/apply(): 0.0714
rowMedians()/rowMedians2(): 0.25
Random test #3
rowMedians()/apply(): 0
Random test #4
rowMedians()/apply(): 0.231
rowMedians()/rowMedians2(): 0.5
Random test #5
rowMedians()/apply(): 0.267
rowMedians()/rowMedians2(): 0.545
Random test #6
rowMedians()/apply(): 0.167
rowMedians()/rowMedians2(): 0.333
Random test #7
rowMedians()/apply(): 0.258
Random test #8
rowMedians()/apply(): 0
rowMedians()/rowMedians2(): NaN
Random test #9
rowMedians()/apply(): 0
Random test #10
rowMedians()/apply(): 0.0909
Random test #11
rowMedians()/apply(): 1
Random test #12
rowMedians()/apply(): 0
Random test #13
rowMedians()/apply(): 0
rowMedians()/rowMedians2(): NaN
Random test #14
rowMedians()/apply(): 0.176
Random test #15
rowMedians()/apply(): 0.167
Random test #16
rowMedians()/apply(): 0.273
rowMedians()/rowMedians2(): 0.5
Random test #17
rowMedians()/apply(): 0.182
Random test #18
rowMedians()/apply(): 0.1
rowMedians()/rowMedians2(): 0.5
Random test #19
rowMedians()/apply(): 0.333
rowMedians()/rowMedians2(): 1.25
Random test #20
rowMedians()/apply(): 0.263
rowMedians()/rowMedians2(): 0.455
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # 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) max used (Mb)
Ncells  562882 30.1    1266091 67.7  1017755 54.4
Vcells 1995132 15.3   10146329 77.5 12255167 93.5
> t0 <- system.time({
+   for (rr in 1:20)
+     y0 <- apply(x, MARGIN=1, FUN=median, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) max used (Mb)
Ncells  562898 30.1    1266091 67.7  1086638 58.1
Vcells 1996149 15.3   10146329 77.5 12255167 93.5
> t1 <- system.time({
+   for (rr in 1:20)
+     y1 <- rowMedians(x, na.rm=FALSE)
+ })
> gc()
          used (Mb) gc trigger (Mb) max used (Mb)
Ncells  562898 30.1    1266091 67.7  1086638 58.1
Vcells 1995274 15.3   10146329 77.5 12255167 93.5
> stopifnot(all.equal(y0,y1))
> cat(sprintf("rowMedians()/apply(): %.3g\n", (t1/t0)[3]))
rowMedians()/apply(): 0.218
> 
> 
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # 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 
  20.51    0.40   20.90 

Example timings

Biobase.Rcheck/examples_i386/Biobase-Ex.timings

nameusersystemelapsed
Aggregate000
ScalarObject-class0.020.000.01
addVig2Menu000
anyMissing000
cache0.000.000.03
channel0.250.010.27
channelNames0.060.000.06
class.AnnotatedDataFrame0.030.000.03
class.ExpressionSet0.220.020.23
class.MIAxE0.000.020.02
class.MultiSet0.030.000.03
class.NChannelSet0.140.000.14
class.Versioned0.050.000.05
class.VersionedBiobase0.010.000.01
class.Versions0.020.000.02
class.VersionsNull000
class.container000
class.eSet0.080.000.08
classVersion000
contents000
copyEnv000
copySubstitute0.000.010.03
createPackage0.010.000.01
data.aaMap000
data.geneData0.030.000.04
data.reporter000
data.sample.ExpressionSet0.020.020.03
data.sample.MultiSet000
dumpPackTxt0.000.000.02
esApply1.150.011.17
getPkgVigs0.000.020.02
isCurrent0.030.000.03
isUnique000
isVersioned0.020.000.01
lcSuffix000
listLen000
makeDataPackage0.090.010.11
matchpt0.020.000.02
multiassign000
note000
openPDF000
openVignette000
package.version000
read.AnnotatedDataFrame0.030.000.03
read.MIAME000
readExpressionSet0.090.000.09
reverseSplit000
rowMedians0.080.000.08
rowQ0.050.000.05
selectChannels0.040.000.05
selectSome000
strbreak000
subListExtract0.740.030.77
testBioCConnection0.160.000.40
updateOldESet000
validMsg000

Biobase.Rcheck/examples_x64/Biobase-Ex.timings

nameusersystemelapsed
Aggregate000
ScalarObject-class0.000.020.02
addVig2Menu000
anyMissing0.010.000.01
cache000
channel0.220.000.22
channelNames0.050.000.05
class.AnnotatedDataFrame0.030.000.03
class.ExpressionSet0.260.010.28
class.MIAxE0.040.000.03
class.MultiSet0.030.000.03
class.NChannelSet0.200.020.22
class.Versioned0.060.000.06
class.VersionedBiobase0.030.000.03
class.Versions0.020.000.02
class.VersionsNull000
class.container000
class.eSet0.090.000.09
classVersion0.020.000.02
contents000
copyEnv000
copySubstitute0.000.020.01
createPackage0.000.010.02
data.aaMap000
data.geneData0.050.000.05
data.reporter000
data.sample.ExpressionSet0.030.000.03
data.sample.MultiSet000
dumpPackTxt000
esApply1.360.021.37
getPkgVigs000
isCurrent0.030.000.03
isUnique000
isVersioned000
lcSuffix000
listLen0.020.000.02
makeDataPackage0.060.000.06
matchpt000
multiassign000
note000
openPDF000
openVignette000
package.version000
read.AnnotatedDataFrame0.020.000.01
read.MIAME000
readExpressionSet0.040.010.07
reverseSplit000
rowMedians0.040.000.03
rowQ0.030.000.03
selectChannels0.030.000.03
selectSome000
strbreak000
subListExtract0.670.000.67
testBioCConnection0.050.070.28
updateOldESet000
validMsg000