如何使Snakemake包装器与{threads}变量一起使用

时间:2018-07-16 12:02:33

标签: snakemake

编辑27-07-2018:包装器不占线程数量。此外,我在这里尝试的语法无法正常工作,而且据我所知,不支持类似的语法。答案来自下面Snakemake Google网上论坛和meono上的交叉发布。

我正在使用Snakemake,对此我感到非常满意。但是,对于某些过程,我使用包装器(即FastQC和Trimmomatic)。但是,我注意到这些包装器没有考虑{threads}变量。有人可以解释使这项工作正确的语法是什么吗?

我尝试设置threads: 4,然后在代码的正确位置指定{threads}(例如,对于FastQC:params: "--threads {threads}")。同样,我已经测试了设置{wildcards.threads}{snakemake.threads}的设置。看来包装器代码块无法“看到”线程变量的值。

请参见下面的示例。

注意:我查看了Bitbucket snakemake-wrapper存储库和readthedocs自述文件,但找不到答案。

rule FastQC_preTrim:
input:
    join(RAW_DATA, PATTERN_ANY)
output:
    html="FastQC_pretrim/{sample}.html",
    zip="FastQC_pretrim/{sample}_fastqc.zip"
threads: 4
params:
    "--threads {wildcards.threads}"   # Also tried {threads}
wrapper:
    "0.20.1/bio/fastqc"

1 个答案:

答案 0 :(得分:0)

(将其添加为注释,但没有代表)

fastqc wrapper在规则中不占threads。我认为

params:
    "--threads 4"

会为您工作。