LTLA / InteractionSet

Clone of the Bioconductor repository for the InteractionSet package, see https://bioconductor.org/packages/devel/bioc/html/InteractionSet.html for the official development version.
2 stars 0 forks source link

Build fails with `no existing definition for function ‘bindROWS’` #8

Closed paulmenzel closed 5 years ago

paulmenzel commented 5 years ago

Trying to build InteractionSet 1.12.0 fails with the error below.

> R

R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (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.

> install.packages("BiocManager")
[…]
> BiocManager::install("HiCcompare")
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 (2019-04-26)
Installing package(s) 'BiocVersion', 'HiCcompare'
also installing the dependencies ‘marray’, ‘CGHbase’, ‘CGHcall’, ‘InteractionSet’, ‘QDNAseq’

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/marray_1.62.0.tar.gz'
Content type 'application/x-gzip' length 4194205 bytes (4.0 MB)
==================================================
downloaded 4.0 MB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/CGHbase_1.44.0.tar.gz'
Content type 'application/x-gzip' length 868348 bytes (847 KB)
==================================================
downloaded 847 KB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/CGHcall_2.46.0.tar.gz'
Content type 'application/x-gzip' length 360711 bytes (352 KB)
==================================================
downloaded 352 KB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/InteractionSet_1.12.0.tar.gz'
Content type 'application/x-gzip' length 115532 bytes (112 KB)
==================================================
downloaded 112 KB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/QDNAseq_1.20.0.tar.gz'
Content type 'application/x-gzip' length 1049168 bytes (1.0 MB)
==================================================
downloaded 1.0 MB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/BiocVersion_3.9.0.tar.gz'
Content type 'application/x-gzip' length 984 bytes
==================================================
downloaded 984 bytes

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/HiCcompare_1.6.0.tar.gz'
Content type 'application/x-gzip' length 3691524 bytes (3.5 MB)
==================================================
downloaded 3.5 MB

* installing *source* package ‘marray’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** 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
* DONE (marray)
* installing *source* package ‘InteractionSet’ ...
** using staged installation
** libs
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c box_bounds.cpp -o box_bounds.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c detect_overlaps.cpp -o detect_overlaps.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c init.cpp -o init.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c link_overlaps.cpp -o link_overlaps.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c overlap_utils.cpp -o overlap_utils.o
g++ -std=gnu++11 -shared -L/pkg/R-3.6.0-0/lib64/R/lib -Wl,-rpath,/pkg/R-3.6.0-0/lib64/R/lib -o InteractionSet.so box_bounds.o detect_overlaps.o init.o link_overlaps.o overlap_utils.o -L/pkg/R-3.6.0-0/lib64/R/lib -lR
installing to /home/joey/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-InteractionSet/00new/InteractionSet/libs
** R
** inst
** byte-compile and prepare package for lazy loading
Error in setMethod("bindROWS", "GInteractions", function(x, objects = list(),  : 
  no existing definition for function ‘bindROWS’
Error: unable to load R code in package ‘InteractionSet’
Execution halted
ERROR: lazy loading failed for package ‘InteractionSet’
* removing ‘/home/joey/R/x86_64-pc-linux-gnu-library/3.6/InteractionSet’
* installing *source* package ‘BiocVersion’ ...
** using staged installation
** help
*** installing help indices
** building package indices
** 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
* DONE (BiocVersion)
* installing *source* package ‘CGHbase’ ...
** using staged installation
** R
** data
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** 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
* DONE (CGHbase)
* installing *source* package ‘CGHcall’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** 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
* DONE (CGHcall)
* installing *source* package ‘QDNAseq’ ...
** using staged installation
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** 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
* DONE (QDNAseq)
ERROR: dependency ‘InteractionSet’ is not available for package ‘HiCcompare’
* removing ‘/home/joey/R/x86_64-pc-linux-gnu-library/3.6/HiCcompare’
[…]
paulmenzel commented 5 years ago

It seems to work with R 3.5.3.

LTLA commented 5 years ago

Bit of a mystery, this. bindROWS comes from S4Vectors, which we import wholesale into InteractionSet's namespace. Are you BiocManager::valid()?

paulmenzel commented 5 years ago

Good question. ;-) Here is the output.

> BiocManager::valid()

* sessionInfo()

R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: MarIuX64 2.0 GNU/Linux 2010-2012

Matrix products: default
BLAS:   /pkg/R-3.6.0-0/lib64/R/lib/libRblas.so
LAPACK: /pkg/R-3.6.0-0/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C           
 [4] LC_COLLATE=C         LC_MONETARY=C        LC_MESSAGES=C       
 [7] LC_PAPER=C           LC_NAME=C            LC_ADDRESS=C        
[10] LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] BiocManager_1.30.4 compiler_3.6.0     tools_3.6.0       

Bioconductor version '3.9'

  * 194 packages out-of-date
  * 3 packages too new

create a valid installation with

  BiocManager::install(c(
    "ACME", "ALL", "AnnotationDbi", "AnnotationFilter", "AnnotationForge",
    "BSgenome", "BatchJobs", "BeadDataPackR", "BioNet", "Biobase",
    "BiocGenerics", "BiocParallel", "BiocStyle", "Biostrings", "BradleyTerry2",
    "CNEr", "Category", "CellNOptR", "ComplexHeatmap", "DESeq", "DESeq2",
    "DEXSeq", "DNAcopy", "DT", "DelayedArray", "DelayedMatrixStats",
    "DirichletMultinomial", "EBSeq", "EDASeq", "EnrichedHeatmap", "GEOquery",
    "GO.db", "GOTHiC", "GOstats", "GSEABase", "GSEAlm", "GenomeGraphs",
    "GenomeInfoDb", "GenomeInfoDbData", "GenomicAlignments", "GenomicFeatures",
    "GenomicFiles", "GenomicRanges", "Glimma", "GlobalAncova", "HDF5Array",
    "HMMcopy", "HSMMSingleCell", "HTqPCR", "IRanges", "KEGGREST", "MEDIPS",
    "MethylSeekR", "OmicCircos", "OrganismDbi", "PFAM.db", "ProtGenerics",
    "QuasR", "R.utils", "RBGL", "RJSONIO", "RNAseq123", "ROC", "RSpectra",
    "RUVSeq", "Rbowtie", "RcppArmadillo", "RcppNumerical", "RcppParallel",
    "Rgraphviz", "Rhdf5lib", "Rhtslib", "Rsamtools", "S4Vectors", "SCORPIUS",
    "SCnorm", "Seurat", "ShortRead", "SingleCellExperiment",
    "SummarizedExperiment", "TFBSTools", "TSP",
    "TxDb.Mmusculus.UCSC.mm10.knownGene", "VariantAnnotation", "WGCNA", "XML",
    "XVector", "affy", "affyPLM", "affyio", "airway", "annotate", "apeglm",
    "aroma.light", "arrayQualityMetrics", "bamsignals", "beachmat",
    "beadarray", "biocViews", "biomaRt", "bookdown", "bootstrap", "bumphunter",
    "car", "chipseq", "deldir", "dendextend", "digest", "dplyr", "e1071",
    "easyRNASeq", "edgeR", "evaluate", "exomeCopy", "fields", "fission",
    "formatR", "fpc", "future.apply", "gcrma", "genefilter", "geneplotter",
    "genomeIntervals", "ggplot2", "glmnet", "globaltest", "gower", "graph",
    "hexbin", "illuminaio", "impute", "jomo", "knitr", "ks", "limma",
    "lpSolve", "lumi", "markdown", "metafor", "methylumi", "mice", "mime",
    "minfi", "monocle", "multtest", "muscle", "nor1mix", "numDeriv", "openssl",
    "openxlsx", "org.Hs.eg.db", "org.Mm.eg.db", "pROC", "partykit",
    "pcaMethods", "pillar", "polspline", "prabclus", "preprocessCore",
    "princurve", "progress", "proxyC", "qsea", "quantreg", "qvalue", "raster",
    "regioneR", "rhdf5", "rmarkdown", "robustbase", "rsvd", "rtracklayer",
    "scDD", "scater", "scone", "scran", "segmented", "seqLogo", "seriation",
    "sfsmisc", "siggenes", "simpleaffy", "snpStats", "statmod", "stringdist",
    "sva", "tables", "tibble", "tinytex", "topGO", "tximport", "vsn", "xfun",
    "yeastCC", "zip", "zlibbioc", "zoo"
  ), update = TRUE, ask = FALSE)

more details: BiocManager::valid()$too_new, BiocManager::valid()$out_of_date

Warning message:
194 packages out-of-date; 3 packages too new
LTLA commented 5 years ago

Getting all your packages up to date would be a good start.

paulmenzel commented 5 years ago

I’ll do that. But just to check, does it work for you with R 3.6.0?

LTLA commented 5 years ago

Nice and smooth.

BiocManager::install("InteractionSet")
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 Patched (2019-05-02
  r76456)
Installing package(s) 'InteractionSet'
trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/InteractionSet_1.12.0.tar.gz'
Content type 'application/x-gzip' length 115532 bytes (112 KB)
==================================================
downloaded 112 KB

* installing *source* package ‘InteractionSet’ ...
** using staged installation
** libs
g++ -std=gnu++11 -I"/Users/luna/Software/R/R-3-6-branch/include" -DNDEBUG  -I"/Users/luna/Software/R/R-3-6-branch/library/Rcpp/include" -I/usr/local/include  -fPIC  -g -O2  -c box_bounds.cpp -o box_bounds.o
g++ -std=gnu++11 -I"/Users/luna/Software/R/R-3-6-branch/include" -DNDEBUG  -I"/Users/luna/Software/R/R-3-6-branch/library/Rcpp/include" -I/usr/local/include  -fPIC  -g -O2  -c detect_overlaps.cpp -o detect_overlaps.o
g++ -std=gnu++11 -I"/Users/luna/Software/R/R-3-6-branch/include" -DNDEBUG  -I"/Users/luna/Software/R/R-3-6-branch/library/Rcpp/include" -I/usr/local/include  -fPIC  -g -O2  -c init.cpp -o init.o
g++ -std=gnu++11 -I"/Users/luna/Software/R/R-3-6-branch/include" -DNDEBUG  -I"/Users/luna/Software/R/R-3-6-branch/library/Rcpp/include" -I/usr/local/include  -fPIC  -g -O2  -c link_overlaps.cpp -o link_overlaps.o
g++ -std=gnu++11 -I"/Users/luna/Software/R/R-3-6-branch/include" -DNDEBUG  -I"/Users/luna/Software/R/R-3-6-branch/library/Rcpp/include" -I/usr/local/include  -fPIC  -g -O2  -c overlap_utils.cpp -o overlap_utils.o
g++ -std=gnu++11 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -o InteractionSet.so box_bounds.o detect_overlaps.o init.o link_overlaps.o overlap_utils.o -Wl,-framework -Wl,CoreFoundation
installing to /Users/luna/Software/R/R-3-6-branch/library/00LOCK-InteractionSet/00new/InteractionSet/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (InteractionSet)
Session information ``` R version 3.6.0 Patched (2019-05-02 r76456) Platform: x86_64-apple-darwin17.7.0 (64-bit) Running under: macOS High Sierra 10.13.6 Matrix products: default BLAS: /Users/luna/Software/R/R-3-6-branch/lib/libRblas.dylib LAPACK: /Users/luna/Software/R/R-3-6-branch/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] BiocManager_1.30.4 compiler_3.6.0 tools_3.6.0 ```
paulmenzel commented 5 years ago

After updating the packages, the installation works.

> BiocManager::install(BiocManager::valid()$out_of_date)
[…]
> BiocManager::install("HiCcompare")
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 (2019-04-26)
Installing package(s) 'HiCcompare'
also installing the dependency ‘InteractionSet’

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/InteractionSet_1.12.0.tar.gz'
Content type 'application/x-gzip' length 115532 bytes (112 KB)
==================================================
downloaded 112 KB

trying URL 'https://bioconductor.org/packages/3.9/bioc/src/contrib/HiCcompare_1.6.0.tar.gz'
Content type 'application/x-gzip' length 3691524 bytes (3.5 MB)
==================================================
downloaded 3.5 MB

* installing *source* package ‘InteractionSet’ ...
** using staged installation
** libs
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c box_bounds.cpp -o box_bounds.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c detect_overlaps.cpp -o detect_overlaps.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c init.cpp -o init.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c link_overlaps.cpp -o link_overlaps.o
g++ -std=gnu++11 -I"/pkg/R-3.6.0-0/lib64/R/include" -DNDEBUG  -I"/pkg/R-3.6.0-0/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -g -O2  -c overlap_utils.cpp -o overlap_utils.o
g++ -std=gnu++11 -shared -L/pkg/R-3.6.0-0/lib64/R/lib -Wl,-rpath,/pkg/R-3.6.0-0/lib64/R/lib -o InteractionSet.so box_bounds.o detect_overlaps.o init.o link_overlaps.o overlap_utils.o -L/pkg/R-3.6.0-0/lib64/R/lib -lR
installing to /home/joey/R/x86_64-pc-linux-gnu-library/3.6/00LOCK-InteractionSet/00new/InteractionSet/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (InteractionSet)
* installing *source* package ‘HiCcompare’ ...
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
Note: wrong number of arguments to 'ceiling'
** help
*** installing help indices
** 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
* DONE (HiCcompare)
> library(HiCcompare)
Loading required package: dplyr

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

Registered S3 method overwritten by 'R.oo':
  method        from       
  throw.default R.methodsS3

There seems to be a bug in BiocManager::valid() that it ignore the package versions installed by the user and not in the system.

> BiocManager::valid()
[…]
Warning message:
194 packages out-of-date; 3 packages too new

We will just update the R installation in our institute to work around it. So the issue could be closed. The real fix would be to find out, which exact version is required by InteractionSet. Thank you very much for your help.

paulmenzel commented 5 years ago

Please also note the warning my build got but yours did not.

Note: wrong number of arguments to 'ceiling'
LTLA commented 5 years ago

The real fix would be to find out, which exact version is required by InteractionSet

TBH, the real fix is to keep your R installation up to date. The system assumes that all Bioconductor packages are installed as a cohort; all 3.9 packages are installed together, and you don't mix 3.8 and 3.9, etc. There are rarely situations where BioC-release packages require specific versions of other Bioconductor packages - usually this is indicative of a hotfix for a critical bug.

In this specific case, bindROWS has been in S4Vectors for at least a year - probably longer, but I didn't bother checking - so a version of the package that doesn't have it must be truly ancient.

Please also note the warning my build got but yours did not.

That's HiCcompare's problem.