pythonpipelinebioinformaticssnakemake

snakemake: MissingOutputException in rule hifiasm in file /home/usr/path/to/Snakefile, line 13


Hi there I was working on a very basic Snakemake file to run hifiasm; it seems to work well but, for some reason, at the end of the run I was prompted with the following:

Waiting at most 5 seconds for missing files. MissingOutputException in rule hifiasm in file /home/usr/path/to/Snakefile, line 13: Job 1 completed successfully, but some output files are missing. Missing files after 5 seconds. This might be due to filesystem latency. If that is the case, consider to increase the wait time with --latency-wait: INLUP00233.asm (missing locally, parent dir not present) Shutting down, this might take some time. Exiting because a job execution failed. Look above for error message Complete log: .snakemake/log/2024-08-21T144851.077767.snakemake.log WorkflowError: At least one job did not complete successfully.

This is the code I've been running; does anyone has an explanation on why this is happening? Thanks in advance!

#####################################
#   SNAKEMAKE PIPELINE — assembly   #
#####################################

SAMPLES = ['INLUP00233']

rule all:
    input:
        expand("{sample}.asm", sample=SAMPLES)

rule hifiasm:
    input:
        hifi="{sample}.fastq.gz",
        hic1="{sample}_1.fq.gz",
        hic2="{sample}_2.fq.gz"

    output:
        "{sample}.asm"

    threads: 16

    shell: 
        "hifiasm -o {output} --h1 {input.hic1} --h2 {input.hic2} {input.hifi} -t {threads}"

Solution

  • I am not familiar with hifiasm, and just had a quick look at its doc. If I understand you and the doc correctly, you never expected INLUP00233.asm to be created, right?

    Because, snakemake is looking for this file, waits, and than tells you "something went wrong" because the output you defined is not created. If you know which suffixes (e.g. ".ovlp.source.bin") are created you could just adapt your rule as below

    output:
        "{sample}.asm.ovlp.source.bin"
    

    Those files could than again be the input for a potential subsequent rule.