2017-08-10 127 views
0

有没有办法完成下面的帮助所有规则,而不会创建不需要的空文件helpA,helpB,helpC,然后删除它们?有没有办法链接snakemake规则没有触摸文件?

rule helpA: 
    output: touch("helpA") 
    shell: "echo 'help on subject <A>'" 

rule helpB: 
    output: touch("helpB") 
    shell: "echo 'help on subject <B>'" 

rule helpC: 
    output: touch("helpC") 
    shell: "echo 'help on subject <C>'" 

rule helpAll: 
    input: "helpA","helpB","helpC" 
    shell: "rm {input} 

一个很好的解决方案将是以下排序的规则的依赖,但这不是有效snakecode:

rule helpAll: 
    input: rules.helpA,rules.helpB,rules.helpC 

或:

rule helpAll: 
    depends_on_rule: helpA,helpB,helpC 

回答

0

我不认为snakemake会在磁盘上创建文件时正常工作。

但是您可以使用temp以便文件自动删除。更具体地,从文档:

Snakemake允许输出文件标记为暂时的,使得它们 删除一次耗时的工作已经执行。

reference

+1

你甚至可以将它们组合起来:'温度(触摸( “文件”))'。 –

+0

这听起来像解决方案!谢谢。 – tedtoal