蛇形通配符并行规则



我试图将一个变量参数输入到一个python脚本,该脚本采用相同的输入文件,但将创建不同的输出文件。我希望规则对我提供的任何参数并行执行。例如:

rule all:
input:
"merged.txt"
rule run_foo:
input:
"input_file"
output:
expand("output_{chrm}.txt")
shell:
"""
python script.py {input} {wildcards.chrm} {output}
"""
rule merge_output:
input:
expand("output_{chrm}.txt", chrm=range(1,3))
output:
"merged.txt"
shell:
"cat {input} > {output}"

在这个例子中可能有一些事情是不正确的,但是这个想法是为了展示一个例子,我的问题是创建一个可以并行运行run_foo来创建output_{chrm}.txt文件的管道,然后将所有这些与merge_output连接起来。

您不需要rule run_foo中的expand:

rule all:
input:
"merged.txt"
rule run_foo:
input:
"input_file"
output:
#expand("output_{chrm}.txt")
"output_{chrm}.txt"
shell:
"""
python script.py {input} {wildcards.chrm} {output}
"""
rule merge_output:
input:
expand("output_{chrm}.txt", chrm=range(1,3))
output:
"merged.txt"
shell:
"cat {input} > {output}"

相关内容

  • 没有找到相关文章

最新更新