Entering edit mode
Hello,
I am encountering a fully reproducible failure when running DESeq2 in parallel using MulticoreParam on macOS (ARM). The error appears to originate inside BiocParallel and occurs even on trivial bplapply() examples.
Below is a complete minimal example, the full traceback, and my sessionInfo().
Minimal reproducible example
library(DESeq2)
library(BiocParallel)
set.seed(1)
dds <- makeExampleDESeqDataSet(n=1000, m=6)
dds <- DESeq(dds, parallel=TRUE, BPPARAM=MulticoreParam(4))
Output:
estimating size factors
estimating dispersions
gene-wise dispersion estimates: 4 workers
mean-dispersion relationship
final dispersion estimates, fitting model and testing: 4 workers
Warning in parallel::mccollect(wait = FALSE, timeout = 1) :
1 parallel job did not deliver a result
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'args' in selecting a method for function 'do.call': wrong args for environment subassignment
Independent BiocParallel failure (no DESeq2)
library(BiocParallel)
param <- MulticoreParam(workers = 4)
x <- 1:12
res <- bplapply(X = x, FUN = \(i) i^2, BPPARAM = param)
Produces:
Warning in parallel::mccollect(wait = TRUE) :
3 parallel jobs did not deliver results
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'args' in selecting a method for function 'do.call': wrong args for environment subassignment
FULL TRACEBACK (VERBATIM)
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'args' in selecting a method for function 'do.call': wrong args for environment subassignment
12.
.reducer_add(reducer, njob, value)
11.
.reducer_add(reducer, njob, value)
10.
.collect_result(manager, reducer, progress, BPPARAM)
9.
.bploop_impl(ITER = ITER, FUN = FUN, ARGS = ARGS, BPPARAM = BPPARAM,
BPOPTIONS = BPOPTIONS, BPREDO = BPREDO, reducer = reducer,
progress.length = length(redo_index))
8.
bploop.lapply(manager, BPPARAM = BPPARAM, BPOPTIONS = BPOPTIONS,
...)
7.
bploop(manager, BPPARAM = BPPARAM, BPOPTIONS = BPOPTIONS, ...)
6.
.bpinit(manager = manager, X = X, FUN = FUN, ARGS = ARGS, BPPARAM = BPPARAM,
BPOPTIONS = BPOPTIONS, BPREDO = BPREDO)
5.
bplapply(levels(idx), function(l) {
objectSub <- estimateDispersionsMAP(object[idx == l, ], dispPriorVar = dispPriorVar,
quiet = TRUE, modelMatrix = modelMatrix)
nbinomWaldTest(objectSub, betaPrior = FALSE, quiet = TRUE, ...
4.
bplapply(levels(idx), function(l) {
objectSub <- estimateDispersionsMAP(object[idx == l, ], dispPriorVar = dispPriorVar,
quiet = TRUE, modelMatrix = modelMatrix)
nbinomWaldTest(objectSub, betaPrior = FALSE, quiet = TRUE, ...
3.
do.call(rbind, bplapply(levels(idx), function(l) {
objectSub <- estimateDispersionsMAP(object[idx == l, ], dispPriorVar = dispPriorVar,
quiet = TRUE, modelMatrix = modelMatrix)
nbinomWaldTest(objectSub, betaPrior = FALSE, quiet = TRUE, ...
2.
DESeqParallel(object, test = test, fitType = fitType, betaPrior = betaPrior,
full = full, reduced = reduced, quiet = quiet, modelMatrix = modelMatrix,
useT = useT, minmu = minmu, BPPARAM = BPPARAM)
1.
DESeq(dds, parallel = TRUE, BPPARAM = MulticoreParam(4))
sessionInfo()
R version 4.5.2 (2025-10-31)
Platform: aarch64-apple-darwin20
Running under: macOS Tahoe 26.1
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Europe/Paris
tzcode source: internal
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] BiocParallel_1.44.0 DESeq2_1.50.2
[3] SummarizedExperiment_1.40.0 Biobase_2.70.0
[5] MatrixGenerics_1.22.0 matrixStats_1.5.0
[7] GenomicRanges_1.62.0 Seqinfo_1.0.0
[9] IRanges_2.44.0 S4Vectors_0.48.0
[11] BiocGenerics_0.56.0 generics_0.1.4
loaded via a namespace (and not attached):
[1] Matrix_1.7-4 gtable_0.3.6 BiocManager_1.30.27
[4] dplyr_1.1.4 compiler_4.5.2 tidyselect_1.2.1
[7] Rcpp_1.1.0 parallel_4.5.2 scales_1.4.0
[10] yaml_2.3.11 fastmap_1.2.0 lattice_0.22-7
[13] ggplot2_4.0.1 R6_2.6.1 XVector_0.50.0
[16] S4Arrays_1.10.0 knitr_1.50 tibble_3.3.0
[19] DelayedArray_0.36.0 pillar_1.11.1 RColorBrewer_1.1-3
[22] rlang_1.1.6 xfun_0.54 S7_0.2.1
[25] SparseArray_1.10.2 cli_3.6.5 magrittr_2.0.4
[28] locfit_1.5-9.12 digest_0.6.39 grid_4.5.2
[31] rstudioapi_0.17.1 lifecycle_1.0.4 vctrs_0.6.5
[34] evaluate_1.0.5 glue_1.8.0 farver_2.1.2
[37] codetools_0.2-20 abind_1.4-8 rmarkdown_2.30
[40] pkgconfig_2.0.3 tools_4.5.2 htmltools_0.5.8.1
Questions
- Is this a known issue with MulticoreParam on macOS ARM?
Thank you for your help.
