如何解决samtools\u index的MissingOutputException问题

2024-04-28 20:17:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了从fastp到gatk\u bqsr的snakemake流,然后在规则索引\u bqsr中遇到了这个问题:

Submitted job 440 with external jobid 'Your job 870 ("snakejob.mpileup.440.sh") has been submitted'.
Waiting at most 5 seconds for missing files.
MissingOutputException in **line 179** of s01_prepare_analysis.py:
Missing files after 5 seconds:
gatk_bqsr/S54.bqsr.bam.bai

这可能是由于文件系统延迟造成的。如果是这样,请考虑使用--latency-wait增加等待时间。 我确信这个规则的输出和输入(index_bqsr)是正确的,那么发生了什么?你知道吗

这是centos7Python3.5:

  1. 我重新运行流程,没有任何变化,然后一切正常。你知道吗
  2. 我删除了gatk_bqsr/S54.bqsr.bam.bai,然后重新定义了流,然后得到了相同的错误。你知道吗
  3. 我提取了相关的代码块,然后进行了测试。我不能重复这个错误。你知道吗
164 rule gatk_bqsr2:
165     input:
166         "bwa/{sample}.rmdup.bam",
167         "gatk_bqsr/{sample}.recal.table"
168     output:
169         "gatk_bqsr/{sample}.bqsr.bam"
170     log:
171         "log/gatk_bqsr/{sample}.bqsr.log"
172     params:
173         "--java-options \"-Xmx15g -Djava.io.tmpdir=tmp\""
174     shell:
175         "{GATK} {params} ApplyBQSR "
176         "--bqsr-recal-file {input[1]} -R {REFERENCE} "
177         "-I {input[0]} -O {output} 1>{log} 2>&1"
178
179 rule index_bqsr:
180     input:
181         "gatk_bqsr/{sample}.bqsr.bam"
182     output:
183         "gatk_bqsr/{sample}.bqsr.bam.bai"
184     shell:
185         "{SAMtools} index {input}"
186
187 rule bedtools_rawbam:
188     input:
189         "bwa/{sample}.sort.bam",
190         "gatk_bqsr/{sample}.bqsr.bam.bai"
191     output:
192         "bedtools/{sample}.sort.bedgraph"
193     log:
194         "log/bedtools/{sample}.sort.bedgraph.log"
195     shell:
196         "{BEDtools} genomecov -ibam {input[0]} -bga > "
197         "{output} 1>{log} 2>&1"
  1. 原始错误消息是:
[Mon Jun  3 21:13:43 2019]
rule index_bqsr:
    input: gatk_bqsr/S54.bqsr.bam
    output: gatk_bqsr/S54.bqsr.bam.bai
    jobid: 541
    wildcards: sample=S54*

*Waiting at most 5 seconds for missing files.
MissingOutputException in line 179 of s01_prepare_analysis.py:
Missing files after 5 seconds:
gatk_bqsr/S54.bqsr.bam.bai

这可能是由于文件系统延迟造成的。如果是这种情况,请考虑使用--latency-wait增加等待时间。

  1. 我提取了相关的代码块,然后进行测试,一切正常。测试代码为:
    SAMtools = "/home/my/anaconda2/bin/samtools"

    SAMPLE = ["S54",]

    rule all:
        input:
            expand("log/bedtools/{sample}.sort.bedgraph.log",sample=SAMPLE)

    rule gatk_bqsr2:
        input:
            "bwa/{sample}.rmdup.bam",
            "gatk_bqsr/{sample}.recal.table"
        output:
            "gatk_bqsr/{sample}.bqsr.bam"
        log:
            "log/gatk_bqsr/{sample}.bqsr.log"
        params:
            "--java-options \"-Xmx15g -Djava.io.tmpdir=tmp\""
        shell:
            "echo \"{GATK} {params} ApplyBQSR "
            "--bqsr-recal-file {input[1]} -R {REFERENCE} "
            "-I {input[0]} -O {output}\""

    rule index_bqsr:
        input:
            "gatk_bqsr/{sample}.bqsr.bam"
        output:
            "gatk_bqsr/{sample}.bqsr.bam.bai"
        shell:
            "{SAMtools} index {input}"

    rule bedtools_rawbam:
        input:
            "bwa/{sample}.sort.bam",
            "gatk_bqsr/{sample}.bqsr.bam.bai"
        output:
            "log/bedtools/{sample}.sort.bedgraph.log"
        log:
            "log/bedtools/{sample}.sort.bedgraph.log"
        shell:
            "echo \"bedtools genomecov -ibam {input[0]} -bga > "
            "{output}\" > {log}"

此处补充DAG:

enter image description here


Tags: sampleloginputoutputindexshellsortrule