Как исправить проблемы 'MissingOutputException' о samtools_index - PullRequest
1 голос
/ 04 июня 2019

Я написал поток snakemake из fastp в gatk_bqsr, затем я встретил эту проблему в правиле index_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) правильно, так что же случилось?

Это centos7 python3.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.

Я извлек соответствующий блок кода, затем проверил, и все в порядке.Тестовый код:
    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

...