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}'
