我在用snakemake来运行我的管道。
rule fisrt_rule:
input: "{sample}/path/to/{sample}.txt"
output: "{sample}/path/to/{sample}.stat"
shell:
"""
do something
"""
rule next_rule:
input:
folder="{sample}/path/to/",
output:
raw="{sample}/path/to/{sample}.raw.txt"
shell:
"""
do something
"""在next_rule中,软件只需要文件所在的文件夹,而不需要文件名,但是由于snakemake不接受前面的规则,所以它说files do not exist。有没有一种方法可以让snakemake按顺序运行规则,而不需要将前面的输出作为输入?
发布于 2021-01-29 15:00:42
您可以在shell脚本中提取目录名:
rule next_rule:
input:
folder= "{sample}/path/to/{sample}.stat",
output:
raw= "{sample}/path/to/{sample}.raw.txt"
shell:
"""
folder=`dirname {input.folder}`
do something $folder
"""是否有一种方法可以告诉snakemake按顺序运行规则,而不必将前面的输出作为输入?
也许你可以想出一些逻辑来做这件事,但我认为你会违背蛇形蛋糕的目的和设计原则。
https://stackoverflow.com/questions/65956416
复制相似问题