2
當這是在管道早些時候發表的一項文件被刪除,SnakeMake似乎並不認爲這是一個問題,只要以後文件有:可以SnakeMake被迫重新規則,當文件丟失
rule All:
input: "testC1.txt", "testC2.txt"
rule A:
input: "{X}{Y}.txt"
output: "{X}A{Y}.txt"
shell: "cp {input} {output}"
rule B:
input: "{X}A{Y}.txt"
output: "{X}B{Y}.txt"
shell: "cp {input} {output}"
rule C:
input: "{X}B{Y}.txt"
output: "{X}C{Y}.txt"
shell: "cp {input} {output}"
保存此SnakeFile在test.sf和做到這一點:
rm testA*.txt testB*.txt testC*.txt
echo "test1" >test1.txt
echo "test2" >test2.txt
snakemake -s test.sf
# Rerun:
snakemake -s test.sf
# SnakeMake says all is up to date, which it is.
# Remove intermediate results:
rm testA1.txt
# Rerun:
snakemake -s test.sf
SnakeMake說都是最新的。它沒有檢測到缺少testA1.txt。
我似乎回想起在線SnakeMake手冊中有關此事的一些內容,但我無法再找到它。
我認爲這是預期的SnakeMake行爲。它有時可能是需要的行爲,但有時您可能希望它檢測並重建丟失的文件。如何才能做到這一點?
我認爲這確實是Snakemake的預期行爲。如果您確實需要testA1.txt,我建議您將其添加到您的規則中。所有 – rioualen
將所有可能保留的規則中的所有可能的中間文件添加到All規則是不切實際的。 Snakemake應該以不同的方式工作,它需要一種方法來提供這種情況。 – tedtoal