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

Snakemake仅运行第一条规则不执行全部任务,如何修复Snakefile?

问题根因

Snakemake不会按照规则的书写顺序依次执行所有规则,默认执行逻辑是:以文件中定义的第一条规则为目标规则,仅生成该规则对应的输出文件后就结束。你把用来指定最终目标的all规则放在了所有规则的末尾,因此运行无参数的snakemake命令时,只会执行排在最前面的do00_download_step01_download_规则。
另外你当前的Snakefile还存在一个语法问题:do99_figures_step01_make_figure规则的input部分两个输入文件之间缺少逗号分隔,后续执行到该规则时会触发语法错误。

修复方法

  1. 先修复语法问题,给do99_figures_step01_make_figure的两个输入文件之间添加逗号:
rule do99_figures_step01_make_figure:
    input:
        "plot/dist.png",
        "plot/heatmap.png"
    output:
        "figs/fig01.svg"
    run:
        from lib.do99_figures import do99_figures_step01_make_figure
        do99_figures_step01_make_figure()
  1. 再选择以下任意一种方案解决执行顺序问题:
  • 调整规则顺序:把all规则移动到Snakefile的最开头,这样运行无参数的snakemake时,就会以all规则的输入figs/fig01.svg为最终目标,自动推导依赖链,执行所有需要的前置步骤。
  • 运行时指定目标规则:不需要修改Snakefile,执行命令时手动指定目标为all即可:snakemake all

内容的提问来源于stack exchange,提问作者user3521099

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:12:04