我正在尝试使用clusterProfiler bioconductor R软件包进行排列分析。为了举例说明我的问题,我会在手册中使用的例子,我适应并行运行:使用SQL数据库在R中进行并行处理
library(clusterProfiler)
library(doMC)
library(foreach)
data(geneList, package="DOSE")
PermNumber <- 10000
registerDoMC(15) #change the 2 to your number of CPU cores
ggoList <- NULL
ggoList <- foreach(lo=1:PermNumber) %dopar% {
print(lo)
gene <- names(geneList)[abs(geneList) > 2]
gene.df <- bitr(gene, fromType = "ENTREZID",
toType = c("ENSEMBL", "SYMBOL"),
OrgDb = org.Hs.eg.db)
gene}
虽然这不平行环路正常工作,出现在并行循环中的以下错误:
错误{:任务2失败 - “数据库磁盘映像格式有误”
我在一些论坛上发现了一个类似的问题,但他们都不在R或clusterProfiler。据我了解,问题发生可能是由于SQL数据库bitr
使用(很难在SQL中实现并行处理)。任何想法超越这个问题?
你说过'虽然这工作正常,没有循环,...'。你可以用'%do%'而不是'%dopar%'来试试这个吗?我想知道你的问题是循环执行还是**并行**循环执行。 – CPak
@ChiPak,你是对的。然而,我的观点是如何在循环内并行运行表达式。 – user3091668
请澄清。它是否与循环执行一起工作? – CPak