Hi,
I'm developing a package which has multiple dependencies (mainly SingleCellExperiment).
Since I started to use Bioconductor v3.12 on R v4.0.1 it started to not install my package from github anymore giving me this error:
Error: package or namespace load failed for ‘DelayedArray’:
(converted from warning) multiple methods tables found for ‘which’
Error: package ‘DelayedArray’ could not be loaded
Execution halted
Then looking at the loading of the DelayedArray package I get this warning:
> library("DelayedArray")
Loading required package: stats4
Loading required package: matrixStats
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’:
anyDuplicated, append, as.data.frame, basename, cbind, colnames, dirname,
do.call, duplicated, eval, evalq, Filter, Find, get, grep, grepl, intersect,
is.unsorted, lapply, Map, mapply, match, mget, order, paste, pmax, pmax.int,
pmin, pmin.int, Position, rank, rbind, Reduce, rownames, sapply, setdiff, sort,
table, tapply, union, unique, unsplit, which.max, which.min
Loading required package: S4Vectors
Attaching package: ‘S4Vectors’
The following object is masked from ‘package:base’:
expand.grid
Loading required package: IRanges
Attaching package: ‘DelayedArray’
The following objects are masked from ‘package:matrixStats’:
colMaxs, colMins, colRanges, rowMaxs, rowMins, rowRanges
The following objects are masked from ‘package:base’:
aperm, apply, rowsum
Warning message:
multiple methods tables found for ‘which’
Did anyone got the same issue?
Thanks, Dario
BiocManager::valid() returns TRUE for me, but I still see the warning. Here's my sessionInfo()
In a new R session, I can make it an error by saying
options(warn = 2)
.Hi Harvè,
thanks for replying (here and on slack), I write here for continuity.
I give you a reproducible example with the following code. This is the command used to install my package (Note that if I install it locally, it gives me no Error, but only Warnings)
Here it is my
sessionInfo
. I removed my entire library and installed everything from zero. (the SpatialExperiment package is loaded because I installed it in local withdevtools::install()
)Hope this helps!
Thanks, dario
I see.
The definition of the which generic was recently changed in BiocGenerics (in version 0.35.3, this is devel) because of a conflict with the generic defined in the Matrix package (see https://github.com/Bioconductor/BiocGenerics/issues/3). You might need to reinstall a few core packages (e.g. S4Vectors, IRanges, XVector, GenomicRanges) and possibly DelayedArray to get rid of the stale method table.
Let me know how that works.
H.
Done, but I was already testing everything on a fresh installation.
Unfortunately, nothing changed even installing Matrix and the packages you suggested.
dario
Oh but you are on Mac! Try to reinstall BiocGenerics, S4Vectors, IRanges, and DelayedArray from source and see if that solves the problem. If it does, I'll bump S4Vectors and IRanges versions to trigger rebuild and propagation of new binaries (a new version of DelayedArray is already on its way).
Thanks!
It worked!
Thanks! Dario
Good to know.
I actually don't need to bump anything. All versions were already bumped a few days ago, after
which()
was modified in BiocGenerics. Except for DelayedArray that I only bumped yesterday. The new DelayedArray binaries (0.15.3) should become available in a couple of hours... well maybe not the Windows one. Sigh!H.