You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:32:32