对于蛇文件中的所有规则,
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.
这似乎是使用
snakemake
时 --dry-run
的错误。如果没有 --dry-run
,则应报告正确的 threads
数量,请参阅:https://stackoverflow.com/a/76448109/11318472
我已在 GitHub 上打开了一份错误报告,欢迎在那里添加详细信息。