TP cluster abrégé¶
Objectif¶
Apprendre à utiliser le cluster genotoul-bioinfo:
- Se connecter au cluster
- Chercher et utiliser les ressources du cluster (logiciels, banques, ...)
- Utiliser SLURM (
srun,sbatch,squeue,seff,sacct, ...), en particulier- job interactif
sbatchsur plusieurs coeurs- job array
- Aspects ecoresponsables
Slides¶
Connection au cluster¶
Démarrez votre machine et ouvrez un terminal (sous Windows, utilisez mobaXterm). Connectez-vous au noeud de login genobioinfo de genotoul-bioinfo en utilisant ssh.
Récupération de données¶
Question
Récupérez sur le cluster le données nécessaires au TP et déposez les dans le dossier ~/work/cluster, pour enfin les décompressez. Les données sont disponibles à l'adresse https://web-genobioinfo.toulouse.inrae.fr/~formation/cluster/data/contigs.fasta.gz
Solution
Mon premier job¶
Nous allons créer un job interactif pour la durée de la formation
Utiliser blast¶
On souhaite comparer des séquences de nucléotides avec une banque de séquences de protéines. Nous allons utiliser blast pour cela, en particulier blastx.
blast n'est pas disponible directement sur le cluster.
Il faut utiliser les modules, avec la commande module pour le rendre disponible. Les commandes principales de module sont les suivantes:
bioinfo/NCBI_Blast+/2.15.0+: loads the bioinfo/NCBI_Blast+/2.15.0+ environment
...
# Rendre un programme accessiblemodule load bioinfo/NCBI_Blast+/2.15.0+# blast est maintenant accessibleblastx -help# Rendre un autre programme accessiblemodule load bioinfo/DIAMOND/2.1.12# Afficher la liste des modules chargésmodule list# Décharger un modulemodule unload bioinfo/NCBI_Blast+/2.15.0+# Décharger tous les modulesmodule purge
La liste des logiciels installés est aussi disponible sur le site de la plateforme.
Lancer blastx¶
Afin d'aller de travailler vite nous allons extraire les 5 premières séquences du fichier contigs.fasta pour les mettre dans le fichier contigs.5.fasta à l'aide de la commande suivante:
blastx [-h] [-help] ...
DESCRIPTION
Translated Query-Protein Subject BLAST 2.15.0+
OPTIONAL ARGUMENTS
-h
Print USAGE and DESCRIPTION; ignore all other parameters
-help
Print USAGE, DESCRIPTION and ARGUMENTS; ignore all other parameters
-version
Print version number; ignore other arguments
*** Input query options
-query <File_In>
Input file name
Default = `-'
...
-db <String>
BLAST database name
* Incompatible with: subject, subject_loc
-out <File_Out, file name length < 256>
Output file name
Default = `-'
-evalue <Real>
Expectation value (E) threshold for saving hits. Default = 10
...
# Doit durer 5sblastx -query contigs.5.fasta -db ensembl_danio_rerio_pep \ -evalue 10e-10 -out contigs.5.blast
Read The Fine Manual (RTFM)
- Lisez la doc du logiciel.
- Pour les utiliser sur le cluster:
module help <module-name>/usr/local/bioinfo/src/<soft_name>/How_to_use_SLURM/usr/local/bioinfo/src/<soft_name>/example_on_cluster- la liste des logiciels
Mon premier batch¶
Voici un modèle de script pour un job.
| blastx.sh | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Options par défaut et limites
Extrait de la FAQ
- partition
workq(2h par default - 4h max) - 1 noeud
- 1 coeur (= 1 cpu = 1 thread)
- 2G de mémoire RAM par coeur (2G si 1 coeur)
- 100KH de temps de calcul annuel (plus sur demande)
- 10000 jobs simultanés tous utilisateurs confondus
- 2500 jobs simultanés par utilisateur
- 2500 taches simultanées par job array
On lance le job avec sbatch:
Question
Testez les commandes suivantes pendant que le job tourne:
Changez le nombre de coeurs et relancez le job. Utilisez seff à la fin pour regarder ses stats
Mon premier job array¶
Ceci est une version abrégée du TP3 de la formation cluster
Découper les données¶
Nous allons découper notre job en 10 sous-jobs (appelés taches) afin de faire plusieurs alignements en parallèle. Nous devons découper le fichier fasta en plusieurs fichiers fasta à l'aide de fastasplit disponible dans le module Exonerate.
...
Créer un template pour le job array¶
À partir de notre script sbatch nous créons un script pour le job array. La partie surlignée ci-dessous met en évidence le changement important entre le deux.
À l'avenir, lorsque vous verez SLURM_ARRAY_TASK_ID, pensez job array.
| blastx_pe.sh | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Un job array se lance de la façon suivante:
# On lance les taches de 0 à 9# Habituellement on ne met pas `--reservation=m1geno`sbatch --array 0-9 --reservation=m1geno blastx_pe.sh
Regrouper les données¶
Pour finir on regroupe toutes les alignements dans un seul fichier:
Ecoresponsabilité¶
Question
Lancez ce jobs sur 8 coeurs regardez ses stats avec seff quand il a fini. Que peut-on dire?
| diamond.sh | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |