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 :
Reproducible data analysis with Snakemake, 2019, (YouTube, 2â). TrĂšs courte vidĂ©o dâintroduction Ă Snakemake.
Reproducible data analysis with Snakemake, 2019, (YouTube, 1h22â). Tutoriel pour une analyse RNA-Seq, par Johannes Köster, le crĂ©ateur de Snakemake.