Snakemake 在脚本更新后不重新运行工作流程或规则

问题描述 投票:0回答:1

在snakemake中,如何指示脚本是输出文件的依赖项,以便如果脚本更改,规则将重新运行?

例如,假设这是我的规则;

rule myrule:
    input:
        "foo.csv"
    output:
        "foobar.csv"
    script:
        "barfoo.py"

我错误地认为,如果我更改

barfoo.py
并执行
snakemake
,将会触发规则的重新运行。然而,情况似乎并非如此。更改为
barfoo.py
并运行
snakemake
后,它表示一切都是最新的。

我是snakemake的新手,所以我缺少基础知识。如果是这样,我深表歉意(我已经搜索并进行了 rtfm 编辑)。我认为有某种方法可以做到这一点,就像 GNU Make 那样。例如

foobar.csv: foo.csv foobar.py
    python foobar.py foo.csv foobar.csv

目前我正在修改剧本后做一个

snakemake --foreceall
,但这似乎达不到目的。

snakemake
1个回答
0
投票

使用版本 8.4.8,我无法重现您的场景。当我改变

barfoo.py
时,snakemake会重新运行,甚至告诉我原因:

Reasons:
    (check individual jobs above for details)
    code has changed since last execution:
        myrule

调节该行为的命令是

--rerun-triggers
,默认情况下所有触发器都应处于活动状态,但您可以尝试使用它并查看它是否有效果。例如。
--rerun-triggers code

您运行的是哪个 Snakemake 版本?

© www.soinside.com 2019 - 2024. All rights reserved.