Contrôle qualité des données Illumina

FastQC

FastQC est un programme JAVA de control de qualité de données de séquençage. FastQC utilise plusieurs métriques pour évaluer la qualité des séquences. Un rapport (html) est produit à la fin de l'analyse. Ce rapport très simple permet d'identifier les types d'erreurs potentiels au sein des données, donnant ainsi une idée sur leur origine. Le programme peut être exécuté soit en ligne de commande, soit à partir de l'interface graphique.

Pour accéder à l'aide, utiliser :

fastqc --help

fastqc [-o répertoire de sortie] [-f fastq|bam|sam] [-t nombre de threads]  [-c fichier de contaminant] sequence1 sequence2 ... sequenceN

Nettoyage des données Illumina

Au cours de la préparation des librairies de séquençage Illumina, des séquences adaptatrices sont ajoutées de part et d'autres de chaque fragment. Ces séquences sont toujours présente lors du séquençage et peuvent donc être séquencées et se retrouver dans les jeux de données Illumina. Il est donc important de retirer ces séquences avant toute analyse ultérieure, puisqu'elles risquent de fausser l'assemblage et les résultats des analyses.

De plus, la méthode de séquençage par synthèse employée par Illumina peut induire certains artéfacts, donc une accumulation d'erreurs aux extrémités des reads [2]. Il est donc nécessaire d'enlever certaines régions aux extrémités des lectures afin de limiter la présence d'erreur dans les séquences puisqu'elles peuvent affecter négativement les analyser en aval. Cette étape est donc l'une des premières étapes pour contrôler la qualité de vos reads.

Fastp

fastp est un outil qui permet d'effectuer à la fois le nettoyage des données Illumina et d'effectuer le contrôle qualité avant et après le nettoyage. Il s'agit d'un outil très rapide capable de détecter automatiquement les adapteurs ainsi que de corriger les artéfacts typique de la technologie de séquençage employée. 

Pour accéder à l'aide, utiliser : 

fastp --help

La commande minimale pour lancer fastp est : 

fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz

Cependant, comme vous pouvez voir, fastp peut aussi être configuré de manière extensive. Vous trouverez donc ci-dessous les principales options de fastp. 

Entrée/sortie : 

Adapteurs :

Nettoyage des lectures de faible qualité 

Trimmomatic

Trimmomatic est un autre outil pour nettoyer les données FASTQ produite par Illumina. Il permet notamment d'enlever les séquences des adapteurs et de faibles qualités. Le programme est installé sur les serveurs SENS.

Pour accéder à l'aide, utiliser :

trimmomatic --help

    PE  [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet]  <input read 1> <input read 2> <paired output 1> <unpaired output 1> <paired output 2> <unpaired output 2> ILLUMINACLIP:<Adapter>:<seed mismatches>:<palindrome clip threshold>:<simple clip threshold> [OPTIONS DE TRIMMING]
   
    SE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet] <inputFile> <outputFile> ILLUMINACLIP:<Adapter>:<seed mismatches>:<palindrome clip threshold>:<simple clip threshold> [OPTIONS DE TRIMMING]

Trimmomatic propose deux modes : un mode pour les reads pairés (PE) et un autre pour les reads non-pairés (SE). Vous trouverez ci-dessous la liste des options utiles de Trimmomatic.

Rcorrector

Rcorrector (RNA-seq error CORRECTOR) [1] est un outil de correction des erreurs aléatoires de séquençage au sein des données RNA-seq d'Illumina, qui utilise une approche basée sur les k-mers. En effet, les erreurs de séquençage au sein des reads déja très courts, influencent la justesse des analyses ultérieurs effectuées sur ces reads, en particulier l'alignement et l'assemblage). Contrairement aux méthodes de correction des reads WGS (Whole Genome Sequencing) , la correction des reads de données RNA-seq fait face à plusieurs complications, en raison de la variation du niveau d'expression des gènes et de la présence de mécanismes tels que l'épissage alternatif, ce qui heureusement n'est pas le cas dans notre expérience.
Rcorrector utilise un graphe de De Bruijn pour représenter tous les k-mers présents au sein des reads et calcule un seuil local à chaque position du reads, pour chaque k-mer afin de le considérer comme valide ou non. En fonction du seuil défini et du chemin minimisant le nombre d'erreur, Rcorrector corrige les reads de façon adéquate.

Les k-mers sont déterminés avec JellyFish, un package très rapide, disposant d'une excellente optimisation de la mémoire pour les occurences des k-mers au sein des fragments d'ADN.

Rcorrector est disponible sur les serveurs du M5. Pour accéder à l'aide, faites :

run_rcorrector.pl

Les principales options de Rcorrector sont décrites ci-dessous. 

run_rcorrector.pl -s <seqfiles> -k <taille du kmer> -t <nombre de thread> -maxcorK <correction maximal> [-od <dossier output>]

Rcorrector retourne les reads corrigés dans des fichiers *.cor.fq ou *.cor.fq.gz.
L'entête des fichiers corrigés comprend l'information additionnelle suivante :

Lighter

Lighter [2] est un autre outil de correction d'erreurs de séquençage WGS également basé sur les kmers. Toutefois, Lighter utilise l'échantillonage des kmers et non leurs occurences pour corriger les reads. Lighter présente l'avantage d'être extrêmement rapide

Pour utiliser lighter, ajouter la ligne suivante à la fin de votre .bashrc

setenv PATH ${PATH}:/usagers_bac/dbcm2002/espace/dbcm2002/PROG

Vous pouvez maintenant faire : lighter

lighter -r <seqfiles> -K <taille du kmer> <taille_du_génome> -t <nombre de thread> -maxcor <correction maximal> [-od <dossier output>]

Lighter retourne les reads corrigés dans des fichiers *.cor.fq.
L'entête des fichiers corrigés est similaire à celle de Rcorrector et comprend l'information additionnelle suivante :

SPAdes

SPAdes (St. Petersburg genome assembler) [3] est un assembleur de génome bactérien, écrit en python, qui fonctionne avec les données Illumina, IonTorrent, Oxford Nanopore et PacBio. Outre l'assemblage, le pipeline de SPAdes propose également plusieurs autres modules dont la correction de reads. SPAdes utilise un algorithme original basé sur les graphes de de Bruijn pairés (PDBG) [4] avec plusieurs ajustements pour rendre l'algorithme plus praticable en présence d'erreurs au sein des reads. La résolution de la séquence circulaire CATCAGATAGGA par cet algorithme pourrait ressembler à la figure suivante. 

SPAdes prends comme input, les reads pairés ou non-pairés (Illumina, 454, PacBio, Oxford Nanopore) en format fasta ou fastq. Le programme est installé sur les serveurs SENS.

Pour utilise ce programme, il faut d'abord charger le module : 

module load spades-3.15.4

Pour accéder à l'aide, utilisez ensuite :

spades.py --help.

Une ligne de commande typique d'exécution de SPAdes ressemble donc à ceci :

spades.py [input] [option du pipeline] [options avancées] -o outdir 

Les outputs de SPAdes se trouvent tous dans le dossier spécifié. La liste non-exhaustive suivante représente quelques uns des fichiers outputs de SPAdes :

Explication de l'entête des fichiers contigs.fasta et scaffolds.fasta

Les entêtes des fichiers fasta en output sont de la forme suivante : >NODE_7_length_217965_cov_40.4652_ID_4150. Le 7 désigne le numéro du noeud au sein du graphe (correspond à un contig ou un scaffold). 217965 désigne la longueur de la séquence, 40.4652 la couverture des kmers et 4150 l'ID unique associé au noeud.

Prokka

Prokka [6] est un pipeline écrit en perl pour l'annotation rapide de génomes prokaryotes. L'annotation des génomes permet l'extraction d'informations génétiques pertinentes de la séquence nucléotidique brute des génomes.

Annotation avec Prokka, slide du Dr Seemann

Prokka est installé sur les serveurs du M5. Vous devez tout d'abord charger le module avant toute tentative d'exécution.

module load prokka

La simplicité des commandes de Prokka permet de l'exécuter avec un mimimum de paramètres. Ainsi un simple ``prokka contigs.fa``` suffira pour annoter un génome d'intérêt à partir des contigs contenus dans le fichier contigs.fa. Il est toutefois possible de spécifier soi-même les paramètres, ce qui présente un avantage particulier pour les utilisateurs avancés. Prokka fourni également des modules pour la soumission des données sur Genbank et ENA.

Pour accéder à l'aide, il suffit de faire :
prokka --help

prokka [options] <contigs.fasta>

Vous trouverez ci-dessous une liste d'options fréquemment utilisées:

Pour exécuter Prokka utilisez la forme suivante : prokka [options] --centre X --compliant contigs.fasta