Snakemake中如何将脚本设为输出依赖以触发规则重跑?
解决Snakemake脚本修改后不触发规则重跑的问题
在Snakemake里,默认情况下script参数仅用于指定要执行的脚本路径,不会将脚本文件本身视为输出文件的依赖项,所以修改脚本后不会自动触发规则重跑。要实现GNU Make那样的效果,只需把脚本文件添加到规则的input部分即可:
修改后的规则示例:
rule myrule: input: "foo.csv", "barfoo.py" output: "foobar.csv" script: "barfoo.py"
也可以给输入项命名,让规则结构更清晰:
rule myrule: input: data="foo.csv", run_script="barfoo.py" output: "foobar.csv" script: "barfoo.py"
这样修改后,Snakemake会同时追踪foo.csv和barfoo.py的修改时间,只要其中任意一个文件更新,就会触发myrule规则重跑,生成新的foobar.csv。以后修改脚本后直接执行snakemake命令即可,无需再用--forceall强制刷新。
内容的提问来源于stack exchange,提问作者mjandrews
相关产品推荐
相关产品推荐

