子工作流作为隐式依赖

时间:2019-06-09 10:51:08

标签: snakemake

我设计了一个子工作流程,如果在规则all中将其指定为显式输入,则该子工作流程会很好地工作:

rule all:
    input: anotherworkflow("data/a.txt")

现在,我需要将此子工作流作为工作流的中间规则:如果任何其他规则需要文件data/a.txt,则需要使用该子工作流。只能在规则的input部分中指定子工作流,因此我设计了一个“桥”规则:

rule all:
    input: ".work/data/a.txt"

subworkflow anotherworkflow:
    workdir: ".work"
    snakefile: "another.Snakefile"

rule bridge:
    input: anotherworkflow("data/a.txt")
    output: ".work/data/a.txt"

我希望bridge规则将子工作流生成的相同文件声明为输出,这将允许我在任何规则需要该文件时运行子工作流。但这是行不通的。 MissingOutputException例外,“ 5秒后丢失文件”。

我做错什么了吗?这种方法行得通吗?这可以在其他任何操作系统(我使用的是Windows + MinGW)上运行吗?

0 个答案:

没有答案