Snakemake:横向 DAG 深度优先?

Sch*_*lar 4 python snakemake

Snakemake 似乎以广度优先的方式遍历 DAG。是否可以(例如通过选项/标志/等)强制snakemake深度优先遍历DAG?

Maa*_*nde 6

我能想到的一种方法是为每条规则设置优先级:

rule all:
    input:
        ["third_a.txt", "third_b.txt", "third_c.txt"]

rule first:
    output:
        touch("first_{sample}.txt")
    priority: 1

rule second:
    input:
        rules.first.output
    output:
        touch("second_{sample}.txt")
    priority: 2

rule third:
    input:
        rules.second.output
    output:
        touch("third_{sample}.txt")
    priority: 3
Run Code Online (Sandbox Code Playgroud)

如果你现在运行它,snakemake -j 1它会被深度优先执行!