Lorsqu'un fichier qui a été faite plus tôt dans la canalisation est enlevée, SnakeMake ne semble pas considérer qu'il ya un problème, tant que fichiers ultérieurs sont là:Peut-SnakeMake être forcé à exécuter à nouveau les règles lorsque les fichiers sont manquants
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}"
Enregistrer ce SnakeFile dans test.sf et faire:
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 dit tout est à jour. Il ne détecte pas testA1.txt manquant.
Je semble me souvenir de quelque chose dans le manuel en ligne de SnakeMake à ce sujet, mais je ne peux plus le trouver.
Je suppose que c'est le comportement SnakeMake attendu. Il peut parfois être un comportement souhaité, mais parfois vous pouvez le vouloir pour détecter et reconstruire le fichier manquant. Comment cela peut-il être fait?
Je pense que c'est en effet le comportement prévu de Snakemake. Si vous avez vraiment besoin de testA1.txt, je vous suggère de l'ajouter dans votre règle. Tous – rioualen
Il est impossible d'ajouter tous les fichiers intermédiaires possibles que l'on souhaite conserver à la règle Tous. Snakemake devrait fonctionner différemment, il a besoin d'un moyen de faire face à cette situation. – tedtoal