微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WildcardError-没有为通配符提供任何值-Snakemake

如何解决WildcardError-没有为通配符提供任何值-Snakemake

我真的迷失了解决错误的确切方法。 我正在运行snakemake来执行一些对齐后质量检查。 我的代码如下:

SAMPLES = ["Exome_Tumor_sorted_mrkdup_bqsr","Exome_norm_sorted_mrkdup_bqsr","WGS_Tumor_merged_sorted_mrkdup_bqsr","WGS_norm_merged_sorted_mrkdup_bqsr"]

rule all:
    input:
        expand("post-alignment-qc/flagstat/{sample}.txt",sample=SAMPLES),expand("post-alignment-qc/CollectInsertSizeMetics/{sample}.txt",expand("post-alignment-qc/CollectAlignmentSummaryMetrics/{sample}.txt",expand("post-alignment-qc/CollectGcBiasMetrics/{sample}_summary.txt",samples=SAMPLES) # this is the problem causing line

rule flagstat:
    input:
         bam = "align/{sample}.bam"
    output:
          "post-alignment-qc/flagstat/{sample}.txt"
    log:
       err='post-alignment-qc/logs/flagstat/{sample}_stderr.err'
    shell:
         "samtools flagstat {input} > {output} 2> {log.err}"


rule CollectInsertSizeMetics:
    input:
         bam = "align/{sample}.bam"
    output:
          txt="post-alignment-qc/CollectInsertSizeMetics/{sample}.txt",pdf="post-alignment-qc/CollectInsertSizeMetics/{sample}.pdf"
    log:
       err='post-alignment-qc/logs/CollectInsertSizeMetics/{sample}_stderr.err',out='post-alignment-qc/logs/CollectInsertSizeMetics/{sample}_stdout.txt'

    shell:
         "gatk CollectInsertSizeMetrics -I {input} -O {output.txt} -H {output.pdf} 2> {log.err}"

rule CollectAlignmentSummaryMetrics:
    input:
         bam = "align/{sample}.bam",genome= "references/genome/ref_genome.fa"
    output:
          txt="post-alignment-qc/CollectAlignmentSummaryMetrics/{sample}.txt",log:
       err='post-alignment-qc/logs/CollectAlignmentSummaryMetrics/{sample}_stderr.err',out='post-alignment-qc/logs/CollectAlignmentSummaryMetrics/{sample}_stdout.txt'

    shell:
         "gatk CollectAlignmentSummaryMetrics -I {input.bam} -O {output.txt} -R {input.genome} 2> {log.err}"

rule CollectGcBiasMetrics:
    input:
         bam = "align/{sample}.bam",genome= "references/genome/ref_genome.fa"

    output:
          txt="post-alignment-qc/CollectGcBiasMetrics/{sample}_metrics.txt",CHART="post-alignment-qc/CollectGcBiasMetrics/{sample}_metrics.pdf",S="post-alignment-qc/CollectGcBiasMetrics/{sample}_summary.txt"

    log:
       err='post-alignment-qc/logs/CollectGcBiasMetrics/{sample}_stderr.err',out='post-alignment-qc/logs/CollectGcBiasMetrics/{sample}_stdout.txt'

    shell:
         "gatk CollectGcBiasMetrics -I {input.bam} -O {output.txt} -R {input.genome} -CHART = {output.CHART} "
         "-S {output.S} 2> {log.err}"

错误消息显示以下内容

WildcardError in line 9 of Snakefile:
No values given for wildcard 'sample'.
  File "Snakefile",line 9,in <module>

在上面的代码中,我已经指出了引起问题的原因。当我简单地删除此行时,一切都会正常运行。我真的很困惑,因为我几乎复制并粘贴了每个规则,而这是唯一会引起问题的规则。

如果有人指出我做错了,我将非常感激!

干杯!

解决方法

似乎可能是拼写错误-在突出显示的行中,您写了samples=SAMPLES,但通配符称为{sample},而没有“ s”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。