缩略语 通常,我将创设一个<代码>,即所有,以输入一种生成1,000个档案名称的功能。 但我发现的是,Snakemake将执行one
。 然后是<代码>21000倍。 如果通过<代码>2<<>>>/代码”制作的中间文件数量很大,则存在问题,因为你最终拥有1,000份巨大的档案。
相反,我想由Snakemake生产5_1.txt
...... 5_1000.txt
,确保该编码在移至下一个版本之前实际产生一个<代码>的所有的产出。 这样,temp(>
删除了一条 iii>wc}.txt
。 接下来是制作的,你最终没有大量的档案。
在线性工作流程中,你可以利用@Maarten-vd-Sande所建议的优先事项。 这是因为Snakemake看看看它能够从事的工作,最优先考虑的是,这始终是线性工作流程中链条的进一步。 但幸运的是,由于 for双方需要同样优先,但Snakemake只是首先这样做。
rule one:
input: "input_{wc}.txt"
output:
touch("one_{wc}.txt"),
touch("two_{wc}.txt")
rule two:
input: "one_{wc}.txt"
output: temp(touch("three_{wc}.txt"))
rule three:
input: "two_{wc}.txt"
output: touch("four_{wc}.txt")
rule four:
input:
"three_{wc}.txt",
"four_{wc}.txt"
output: "five_{wc}.txt"
shell:
"""
touch {output}
"""