Ceci est une ancienne révision du document !
Mise en pratique des méthodes d'analyse de l'expression génique grâce aux données utilisées par le package airway: création des index nécessaires aux outils d'alignement
Introduction
- Ici, on va avoir notre première application de l'utilisation de SLURM
La construction des index demande à la base un ensemble de fichiers contenant les informations décrivant notre génome d'intérêt. Il y a plusieurs sources potentiels de tels fichiers mais un bon point de départ lorsqu'on travaille avec H. sapiens est le site du projet Gencode. Gencode est un effort international de construction des annotations provenant de diverses sources publiques en y mettant une couche de curation humaine et pas simplement construit programmatiquement. Comme ce processus d'annotation est en mutation constante, Gencode crée les fichiers sous la forme de versions (releases) qui sont publiés sur une base semi-régulière.
- Deuxième application de SLURM sur grappe de calcul: construire les index. Nous allons utiliser trois approches d'alignement: via HISAT2, via STAR et via Salmon. Dans tous les cas, créer les index pour chaque outil profite de l'usage d'une grappe de calcul: la création est accélérée par une exécution multi-fils (multi-threaded) et dans tous les cas, demande une très grande quantité de mémoire pour s'exécuter. Comme il faut créer les index à chaque nouvelle version de Gencode (ou de tout autre fichier d'annotation), mettre ce processus dans un script facile à éditer facilite le travail.
Procédure
Téléchargement des fichiers d'annotation
- Pour commencer, il faut aller chercher les fichiers d'annotation sur le site du projet Gencode. En partant de notre espace personnel (
$HOME), on se dirige là où l'on désire mettre les index pour la suite:
# On assume que l'on se dirige vers /shares/data/indexes # Ajuster en fonction de votre environnement % cd /shares/data/indexes % mkdir gencode_annotations # Dernière version en date % mkdir gencode_annotations/r49 % cd gencode_annotations/r49 # Fichier avec les annotations complètes en format GTF % curl -L -O https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_49/gencode.v49.annotation.gtf.gz # Fichier avec les annotations complètes en format GFF3 % curl -L -O https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_49/gencode.v49.annotation.gff3.gz # Fichier FASTA des transcrits pour protéines, utilisé par Salmon % curl -L -O https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_49/gencode.v49.pc_transcripts.fa.gz # Fichier FASTA du genome humain, GRCh38 % curl -L -O https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_49/GRCh38.primary_assembly.genome.fa.gz # Decompression des fichiers % for i in `ls | grep gz`; do gunzip $i; done
- Si une nouvelle version (disons r50) est publiée, simplement créez un répertoire sous
/shares/data/indexes/gencode_annotationset téléchargez les nouvelles versions.
Création des index : usage de scripts pour SLURM
Créer les index pour les outils d'alignement est un processus exigeant et le premier exemple où l'utilisation d'une grappe de calcul et d'un système de gestion des tâches qui y réside est un atout. Dans le cas de la création des index, on est confronté à quelques problèmes:
- C'est un processus qui prend du temps… Les outils sont capables d'opérations multi-fils pour accélérer la tâche alors plus on a de coeurs de calcul, plus ça se fera rapidement.
- C'est un processus qui construit des structures de données qui habitent en premier en mémoire vive et ça demande beaucoup, beaucoup de mémoire vive.
Si on prend pour exemple la grappe de calcul Rorqual, on y trouve des serveurs qui ont tout ce que nous aurons de besoin, il faut simplement leur dire commente faire. En passant, faire cette construction sur une grappe SuperClafoutis n'est pas une option: certaines opérations d'indexation demandent des centaine de Gb de mémoire vive Cependant, une fois les index construits, on peut les télécharger pour utilisation locale car ces fichiers sont indépendants de la plateforme où ils ont été calculés.
Création des index pour HISAT2
- Plus à venir…
Création des index pour STAR
- Plus à venir…
Création des index pour Salmon
- Plus à venir…