Automatiser avec Snakemake 🐍 ⚙

4. Automatiser avec Snakemake 🐍 ⚙#

4.1. Introduction#

Précédemment, vous avez automatisé votre analyse RNA-seq en utilisant plusieurs scripts Bash que vous avez soumis au gestionnaire du cluster, Slurm.

D’abord script_cluster_1.sh pour indexer le gĂ©nome de rĂ©fĂ©rence, puis script_cluster_2.sh pour contrĂŽler la qualitĂ©, aligner et quantifier les reads et enfin, script_cluster_3.sh pour normaliser les comptages de tous les Ă©chantillons.

Lancer ces trois scripts les uns aprĂšs les autres est fastidieux. On peut automatiser cela plus encore avec un gestionnaire de workflow comme Snakemake. Un gestionnaire de workflow va s’occuper de lancer les diffĂ©rentes Ă©tapes du workflow d’analyse dans le bon ordre et de gĂ©rer les dĂ©pendances entre ces Ă©tapes.

4.2. Mise en oeuvre#

Depuis un terminal de JupyterLab, vĂ©rifiez que vous ĂȘtes toujours dans le rĂ©pertoire /shared/projects/2501_duo/$USER/rnaseq.

Supprimez les rĂ©pertoires qui contiennent les rĂ©sultats d’une Ă©ventuelle prĂ©cĂ©dente analyse :

$ rm -rf genome_index reads_qc reads_map counts slurm*.out

Téléchargez le fichier (snakemake.zip) avec la commande wget :

$ wget https://raw.githubusercontent.com/pierrepo/unix-tutorial/master/content/tuto3/snakemake.zip

Désarchivez cette archive :

unzip snakemake.zip

Deux nouveaux fichiers vont ĂȘtre créés ainsi qu’un rĂ©pertoire :

  • run_snakemake.sh : script Bash pour lancer Snakemake via Slurm.

  • Snakefile : fichier de configuration de Snakemake qui contient la dĂ©finition des diffĂ©rentes Ă©tapes de l’analyse.

  • snakemake_profiles/cluster/config.yaml : fichiers de configuration de Snakemake

Avec l’éditeur de fichier de JupyterLab, ouvrez les fichiers run_snakemake.sh et Snakefile. Le fichier run_snakemake.sh est relativement court. Le fichier Snakefile est plus complexe, mais vous devriez y retrouver les diffĂ©rentes Ă©tapes de l’analyse. Pour chaque Ă©tape d’analyse, on dĂ©finit en input les fichiers nĂ©cessaire pour cette Ă©tape et en output les fichiers qui seront produits. Notez que le fichier Snakefile est paramĂ©trĂ© pour n’analyser que 3 Ă©chantillons. Vous pourrez aisĂ©ment le modifier pour analyser les 50 Ă©chantillons.

Lancez l’analyse avec Snakemake :

$ sbatch -A 2501_duo run_snakemake.sh

La commande sacct ne sera ici pas trÚs utile, car tous les jobs seront lancés indépendamment les uns des autres (donc avec des numéros de jobs différents).

La commande squeue avec quelques options d’affichage sera plus pertinente pour suivre la progression du calcul :

$ squeue --format="%.10i %.10j %.40k %.8T %.8M %.9P %.10u %R" -u $USER

N’hĂ©sitez pas Ă  prĂ©fixer cette commande par watch -x pour afficher automatiquement l’avancement du calcul.

Hint

Utilisez la combinaison de touches Ctrl + C pour arrĂȘter la commande watch.

4.3. Pour aller plus loin#

Si vous souhaitez dĂ©couvrir Snakemake, voici deux vidĂ©os d’introduction Ă  Snakemake :