运行 多个 snakemake 规则
Running multiple snakemake rules
我想运行使用snakemake一个接一个地设置多个规则。但是,当我 运行 这个脚本时, bam_list 规则出现在 samtools_markdup 规则之前,并给我一个错误,它找不到输入文件,这些文件显然还没有生成。
如何解决这个问题?
rule all:
input:
expand("dup/{sample}.dup.bam", sample=SAMPLES)
"dup/bam_list"
rule samtools_markdup:
input:
sortbam ="rg/{sample}.rg.bam"
output:
dupbam = "dup/{sample}.dup.bam"
threads: 5
shell:
"""
samtools markdup -@ {threads} {input.sortbam} {output.dupbam}
"""
rule bam_list:
output:
outlist = "dup/bam_list"
shell:
"""
ls dup/*.bam > {output.outlist}
"""
Snakemake 正在按照指示进行,您想要dup/bam_list
并且可以在没有任何输入的情况下进行生产。我想你的意思是:
rule all:
input:
"dup/bam_list"
rule samtools_markdup:
input:
sortbam ="rg/{sample}.rg.bam"
output:
dupbam = "dup/{sample}.dup.bam"
threads: 5
shell:
"""
samtools markdup -@ {threads} {input.sortbam} {output.dupbam}
"""
rule bam_list:
input:
expand("dup/{sample}.dup.bam", sample=SAMPLES)
output:
outlist = "dup/bam_list"
shell:
"""
ls dup/*.bam > {output.outlist}
"""
现在 bam_list 将等待所有 samtools_markdup 作业完成。顺便说一句,我希望 dup_list 的内容与 expand("dup/{sample}.dup.bam", sample=SAMPLES)
相同,因此如果您稍后在工作流程中使用该文件,您可能只使用扩展输出。
我想运行使用snakemake一个接一个地设置多个规则。但是,当我 运行 这个脚本时, bam_list 规则出现在 samtools_markdup 规则之前,并给我一个错误,它找不到输入文件,这些文件显然还没有生成。 如何解决这个问题?
rule all:
input:
expand("dup/{sample}.dup.bam", sample=SAMPLES)
"dup/bam_list"
rule samtools_markdup:
input:
sortbam ="rg/{sample}.rg.bam"
output:
dupbam = "dup/{sample}.dup.bam"
threads: 5
shell:
"""
samtools markdup -@ {threads} {input.sortbam} {output.dupbam}
"""
rule bam_list:
output:
outlist = "dup/bam_list"
shell:
"""
ls dup/*.bam > {output.outlist}
"""
Snakemake 正在按照指示进行,您想要dup/bam_list
并且可以在没有任何输入的情况下进行生产。我想你的意思是:
rule all:
input:
"dup/bam_list"
rule samtools_markdup:
input:
sortbam ="rg/{sample}.rg.bam"
output:
dupbam = "dup/{sample}.dup.bam"
threads: 5
shell:
"""
samtools markdup -@ {threads} {input.sortbam} {output.dupbam}
"""
rule bam_list:
input:
expand("dup/{sample}.dup.bam", sample=SAMPLES)
output:
outlist = "dup/bam_list"
shell:
"""
ls dup/*.bam > {output.outlist}
"""
现在 bam_list 将等待所有 samtools_markdup 作业完成。顺便说一句,我希望 dup_list 的内容与 expand("dup/{sample}.dup.bam", sample=SAMPLES)
相同,因此如果您稍后在工作流程中使用该文件,您可能只使用扩展输出。