【发布时间】:2018-06-25 14:02:37
【问题描述】:
这里是没有经验、自学成才的“编码员”,所以请理解:]
我正在尝试学习和使用 Snakemake 来构建我的分析管道。不幸的是,我无法同时运行单个作业/规则的多个实例。我的工作站不是计算集群,所以我不能使用这个选项。我找了几个小时的答案,但要么没有,要么我知识渊博,无法理解。 那么:有没有办法同时运行单个作业/规则的多个实例?
如果你想要一个具体的例子:
假设我想使用 fastqc 工具分析一组 4 个 .fastq 文件。于是我输入了一个命令:
time snakemake -j 32
然后运行我的代码,即:
SAMPLES, = glob_wildcards("{x}.fastq.gz")
rule Raw_Fastqc:
input:
expand("{x}.fastq.gz", x=SAMPLES)
output:
expand("./{x}_fastqc.zip", x=SAMPLES),
expand("./{x}_fastqc.html", x=SAMPLES)
shell:
"fastqc {input}"
我希望snakemake 在 32 个线程上运行尽可能多的 fastqc 实例(如此轻松地同时运行我的所有 4 个输入文件)。事实上。此命令大约需要 12 分钟才能完成。同时,从snakemake内部利用GNU并行
shell:
"parallel fastqc ::: {input}"
我在 3 分钟内得到结果。显然这里有一些尚未开发的潜力。
谢谢!
【问题讨论】:
-
类似问题:stackoverflow.com/q/50828233/1878788。这似乎是一个常见的陷阱。
-
是的,我看到了这个话题,但是我错误地认为我的问题不同,因为我没有使用计算集群。因此复制问题。干杯!
标签: snakemake