【问题标题】:WildcardError - No values given for wildcard - SnakemakeWildcardError - 没有为通配符提供值 - Snakemake
【发布时间】:2020-08-26 15:32:36
【问题描述】:

我真的迷失了我能做些什么来修复这个错误。 我正在运行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", sample=SAMPLES),
        expand("post-alignment-qc/CollectAlignmentSummaryMetrics/{sample}.txt", sample=SAMPLES),
        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>

在我上面的代码中,我指出了导致行的问题。当我简单地删除这条线时,一切都运行良好。我真的很困惑,因为我几乎复制并粘贴了每条规则,而这是唯一会导致任何问题的规则。

如果有人能指出我做错了什么,我将非常感谢!

干杯!

【问题讨论】:

    标签: workflow bioinformatics snakemake


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2022-07-22
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多