Vue d'ensemble

Snakemake 7.0, publie le 15 octobre 2021, ameliore l'execution sur clusters et le systeme de checkpoints pour les workflows bioinformatiques.

Fonctionnalites principales

Execution cluster amelioree

L'execution sur cluster beneficie d'un nouveau systeme d'executeur avec des profils configures pour Slurm, SGE et d'autres gestionnaires de files d'attente.

python
# Snakefile
rule aligner:
    input:
        'donnees/{echantillon}.fastq'
    output:
        'resultats/{echantillon}.bam'
    threads: 8
    resources:
        mem_mb=16000
    shell:
        'bwa mem -t {threads} ref.fa {input} | '
        'samtools sort -o {output}'

# Execution sur cluster Slurm :
# snakemake --executor slurm --jobs 10

Checkpoints

Les checkpoints permettent de re-evaluer le DAG apres l'execution d'une regle, utile quand le nombre de fichiers de sortie n'est connu qu'a l'execution.

python
# Snakefile avec checkpoint
checkpoint decouper:
    input:
        'donnees/gros_fichier.csv'
    output:
        directory('donnees/morceaux/')
    shell:
        'mkdir -p {output} && split -l 1000 {input} {output}/part_'

def aggreger_entrees(wildcards):
    """Determine les fichiers apres le checkpoint."""
    import glob
    checkpoint_output = checkpoints.decouper.get(**wildcards).output[0]
    return glob.glob(f'{checkpoint_output}/part_*')

rule analyser:
    input: aggreger_entrees
    output: 'resultats/analyse.txt'
    shell: 'cat {input} | wc -l > {output}'

Sources