Snakefile "ymp/rules/sambamba.rules"

Env(name="sambamba", base="bioconda", packages="sambamba")

with Stage("sort_bam") as S:
    rule sambamba_sort:
        message:
            "Sambamba: Sorting BAM file {input}"
        input:
            "{:prev:}/{target}.bam"
        output:
            "{:this:}/{target}.sorted.bam",
            "{:this:}/{target}.sorted.bam.bai"
        log:
            "{:this:}/{target}.sorted.bam.log"
        params:
            mem=icfg.mem("32g"),
            compress=6
        threads:
            8
        conda:
            "sambamba"
        shell:
            "sambamba sort"
            " --memory-limit={params.mem}MB"
            " --compression-level={params.compress}"
            " --nthreads={threads}"
            " --out={output[0]}"
            " {input}"
            " >{log} 2>&1"

    rule sambamba_sort_all:
        message:
            "Sambamba: done sorting"
        input:
            "{:this:}/{:targets:}.sorted.bam"
        output:
            touch("{:this:}/all_targets.stamp")