我试图将一个变量参数输入到一个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}"