我设计了一个子工作流程,如果在规则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)上运行吗?