Snakemake 忽略自定义线程数

问题描述 投票:0回答:1

对于蛇文件中的所有规则,

snakemake
忽略我设置的线程数:

rule trim:
    input:
        r1="reads/{sample}_R1.fastq.gz",
        r2="reads/{sample}_R2.fastq.gz",
    output:
        multiext("trimmed/{sample}", 
            "_val_1.fq.gz",
            "_R1.fastq.gz_trimming_report.txt",
            "_val_2.fq.gz",
            "_R2.fastq.gz_trimming_report.txt",),
    threads: config["resources"]["trim"]["cpu"]
    resources:
        runtime=config["resources"]["trim"]["time"]
    conda:
        "envs/read-processing.yaml"
    log:
        "logs/trim_galore/{sample}.log",
    shell:
        "trim_galore -j {threads} -q 20 --basename {wildcards.sample} "
        "-o trimmed --paired {input.r1} {input.r2} 2> {log}"

当我进行空运行时,我得到了 shell 命令:

trim_galore -j 1 -q 20 --basename control_2_input_hyp -o trimmed --paired reads/control_2_input_hyp_R1.fastq.gz reads/control_2_input_hyp_R2.fastq.gz 2> logs/trim_galore/control_2_input_hyp.log

-j
标志是要使用的线程数,应为8,如
config
中设置。即使我将
config["resources"]["trim"]["cpu"]
更改为 8,它仍然将
-j
设置为 1,并且这对于我的所有规则都会发生。

为什么

snakemake
只使用一个线程?

我正在使用版本

snakemake
7.32.3.

python snakemake
1个回答
0
投票

这似乎是使用

snakemake
--dry-run
的错误。如果没有
--dry-run
,则应报告正确的
threads
数量,请参阅:https://stackoverflow.com/a/76448109/11318472

我已在 GitHub 上打开了一份错误报告,欢迎在那里添加详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.