Python 蛇人:Tranverse DAG深度优先?
Snakemake似乎以宽度优先的方式穿过DAG。是否可能(例如通过选项/标志等)强制snakemake首先穿过DAG深度?我可以想到的一种方法是为每个规则设置优先级:Python 蛇人:Tranverse DAG深度优先?,python,snakemake,Python,Snakemake,Snakemake似乎以宽度优先的方式穿过DAG。是否可能(例如通过选项/标志等)强制snakemake首先穿过DAG深度?我可以想到的一种方法是为每个规则设置优先级: rule all: input: ["third_a.txt", "third_b.txt", "third_c.txt"] rule first: output: touch("first_{sample}.
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
如果您现在使用
snakemake-j1
运行它,它将首先执行深度 当依赖项尚未生成时,如何生成文件?总的来说,你想解决什么问题?@DmitryKuzminov说我有输入文件A、B和C。规则1生成相应的文件A\u preproc、B\u preproc和C\u preproc。规则2使用每个*_预处理文件生成一个_final、B_final和C_final。现在有两个选项可以遍历生成的DAG:(1)首先生成所有*_预处理文件,然后生成所有*_最终文件,或者(2)生成一个_预处理文件,然后生成一个_最终文件,然后生成B_预处理文件和B_最终文件,等等。我将第一个遍历顺序称为宽度优先,而第二个是深度优先。我希望这能把事情弄清楚:)