1

我使用分析微生物组数据

library(phyloseq)
library(microbiome)
library(DirichletMultinomial)

和其他几个库。拟合 Dirichlet-Multinomial 模型来计算数据dmn {DirichletMultinomial}需要相当长的时间。计算可以在 R 中的多个 cpu 内核上运行吗?我试过:

dat <- abundances(pseq)
count <- as.matrix(t(dat))
fit <- lapply(1:25, dmn, count = count, verbose=TRUE)

替换为:

library(parallel)
numCores <- detectCores()
...
fit <- mclapply(1:25, dmn, count = count, verbose=TRUE, mc.cores = numCores)

但它返回错误警告消息: 在 mclapply(1:25, dmn, count = count, verbose = TRUE, mc.cores = numCores) 中:所有计划的核心在用户代码中遇到错误

我在用

R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)
> detectCores()
[1] 4

任何人都可以帮忙吗?

最好的问候, 马辛

4

1 回答 1

0

是的,如小插图http://bioconductor.org/packages/release/bioc/vignettes/DirichletMultinomial/inst/doc/DirichletMultinomial.pdf第 2 节所示,在您的代码中,可以在多个内核上运行。

可能正在发生的事情是 X 的某些值存在错误;什么是适合的价值?另外,一个人可能会尝试

library(BiocParallel)
fit <- bplapply(1:25, dmm, count, BPPARAM = MulticoreParam(numCores))

fit将是一个可以查询的对象(请参阅https://bioconductor.org/packages/BiocParallel提供的 BiocParallel 小插图)以获取更多错误信息。

于 2020-08-24T09:24:36.620 回答