如何解决Snakemake 按顺序运行规则
我正在使用 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按顺序运行规则而不必将先前的输出作为输入?
解决方法
您可以在 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按顺序运行规则而不必将先前的输出作为输入?
也许你可以想出一些逻辑来做到这一点,但我认为你会违背蛇形的目的和设计原则。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。