Table of Contents

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

Procédure

Téléchargement des fichiers d'annotation

# On assume que l'on se dirige vers /shares/data pour créer
# les répertoires nécessaires
# Ajuster en fonction de votre environnement, évidemment!
% mkdir /shares/data/indexes
% mkdir /shares/data/annotations
% cd /shares/data/annotations
% mkdir gencode
# Dernière version en date
% mkdir gencode/r49
% cd gencode/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

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:

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.

Comme ce sont des tâches qui demandent du temps (plusieurs minutes à plusieurs heures), c'est le moment idéal pour apprendre à utiliser SLURM. À la base, SLURM est un système où un usager soumet des actions (interactives ou scriptées) via une application (srun ou sbatch) à une queue de traitement qui gèrera la suite des choses. Une fois la tâche assignée à un noeud de calcul, elle s'exécute indépendamment de votre attention (dans le cas de sbatch).

Création des index pour HISAT2

# On crée l'arborescence nécessaire sous /shares/data
% cd /shares/data/indexes
% mkdir hisat2_indexes
% mkdir hisat2_indexes/r49 
% mkdir hisat2_indexes/r49/interim_files

# Ici, on assume que HISAT2 est sur le $PATH; les scripts devraient se trouver 
# au même niveau que l'application.
% cd hisat2_indexes/r49/interim_files
# Il faut rediriger la sortie vers un fichier sinon ça sort sur STDOUT...
% hisat2_extract_extract_exons.py /shares/data/annotations/gencode/r49/gencode.v49.annotation.gtf > ./gencode_r49_ss.txt
% hisat2_extract_extract_splice_sites.py /shares/data/annotations/gencode/r49/gencode.v49.annotation.gtf > ./gencode_r49_ss.txt
# Etape facultative: extraction des infos pour les variations génétiques
# Dernière version disponible
% curl -L -O http://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/snp151Common.txt.gz
% gunzip snp151Common.txt.gz
# Ici, le script est un peu plus exigeant... Ça prend plus de temps que les étapes précédentes.
% hisat2_extract_snps_haplotypes_UCSC.py /shares/data/annotations/gencode/r49/GRCh38.primary_assembly.genome.fa ./snp151Common.txt gencode_r49_snp_haplo

Plus à venir...

Création des index pour STAR

Création des index pour Salmon