Le fichier FastQ¶
Quelque soit le séquenceur ou l'expérience réalisée, nous obtenons des fichiers FastQ.
Tous se présentent de la même façon :
- Fichier texte contenant les lectures
- 1 lecture/read = 4 lignes
- Chaque lecture est définie par une séquence, un identifiant unique et un score
@QSEQ32.249996 HWUSI-EAS1691:3:1:17036:13000#0/1 PF=0 length=36
GGGGGTCATCATCATTTGATCTGGGAAAGGCTACTG
+
=.+5:<<<<>AA?0A>;A*A################
La ligne de header commence toujours par un @
.
La ligne de séquence contient le même nombre de caractère que la ligne de qualité mais comment lire cette dernière ?
Encodage de la qualité¶
Le score de qualité est encodé au format ASCII (American Standard Code for Information Interchange), cela permet qu'une base soit représentée par un caractère unique.
Si nous utilisions des scores qualités directement, il serait impossible de donner la correspondance exacte entre une base et son score.
Par exemple :
@read1
ATC
+
12523
Comment dire si les scores sont de 1, 25 et 23 ou 12, 5 et 23 ?
On a donc une correspondance entre chaque symbole et un score qualité, appelé score Phred.
Mais comment interpréter ce score ?
On imagine facilement qu'un score de 40 sera préférable à 0 mais dans quelle mesure ?
Le score Phred peut être converti en probabilité d'erreur, elle même convertible en pourcentage de précision (ou accuracy).
La formule est la suivante :
Où Q = Le score Phred et P = La probabilité d'erreur d'identification d'une base.
Voici quelques scores utiles à avoir en tête :
Score de qualité phred | Probabilité d'une identification incorrecte | Précision de l'identification d'une base |
---|---|---|
10 | 1 pour 10 | 90% |
20 | 1 pour 100 | 99% |
30 | 1 pour 1000 | 99,9% |
40 | 1 pour 10000 | 99,99% |
En règle générale, on estime qu'un score doit être supérieur à 20 pour être acceptable.
L'outil FastQC¶
Quand nous avons des fichiers avec plus d'un million de lectures, faisant par exemple chacunes 150 paires de bases, cela ferait plus de 150 millions de score qualité à vérifier... Hors de question de le faire à la main, donc.
C'est là que l'outil FastQC nous vient en aide !
Il permet d'obtenir un fichier HTML résumant l'ensemble des informations nécessaires pour estimer si notre run s'est bien passé et si notre échantillon possède des lectures de bonne qualité.
Tentons ensemble d'en saisir le contenu. Vous pouvez cliquer sur ce lien pour visualiser un rapport complet
On note tout d'abord que devant chaque section, se trouve un code couleur :
Attention, selon le type de séquençage effectué, cette information n'est pas toujours pertinente.
Basic Statistics :¶
Explication :
Ce tableau récapitule les informations générales de mon échantillon. Ses valeurs dépendent surtout de mon espèce séquencée. Il ne peut jamais être en "erreur" ou en "warning", vous êtes les seuls à pouvoir l'évaluer.
Per base Sequence Quality :¶
Explication :
Ce graphe montre une vue globale des valeurs de qualité de chacune des bases des lectures.
Pour chaque position sur le read (axe des abscisses), on obtient une boîte à moustache des qualités.
- En rouge on trouve la médiane
- En bleu, la moyenne
- En jaune, l'intervalle inter-quartile (25-75%)
- Les moustaches supérieures et inférieures représentent respectivement 10 et 90%.
L'axe des ordonnées montre les scores de qualité. L'arrière-plan du graphique divise en 3 couleurs comme guide visuel mais reste à prendre avec précaution. La qualité des lectures sur la plupart des plateformes se dégradera à mesure que le séquençage progresse, il est donc courant de voir des qualités passer dans la zone orange vers la fin des lectures.
Per Tile Sequence Quality¶
Explication :
Le graphique montre la qualité moyenne pour chaque tuile par rapport aux autres et à chaque instant du séquençage. Les couleurs vont de bleu à rouge, les couleurs froides représentant les positions où la qualité est à la moyenne ou au-dessus pour cette case par rapport aux autres au même instant de séquençage. A l'inverse, les couleurs chaudes indiquent qu'une tuile a des qualités inférieures à celles des autres tuiles. Dans l'exemple ci-dessus à gauche, vous pouvez voir que certaines tuiles montrent constamment une mauvaise qualité. Un bon graphique devrait être entièrement bleu.
Per Sequence Quality Scores¶
Explication :
Le Per sequence quality scores permet de voir si un sous-ensemble de nos séquences a des valeurs de qualité plus faibles que le reste de nos reads. Il arrive souvent qu'un sous-ensemble de séquences ait une qualité médiocre (problème de prise de l'image sur les bords de flowcell par exemple). Cependant celles-ci ne devraient représenter qu'un petit pourcentage du total des séquences.
Si une proportion significative des séquences d'un run a une qualité globalement faible, cela pourrait indiquer un problème systématique - sur une partie du run notamment.
Per Base Sequence Content¶
Explication :
Le Per base sequence content trace la proportion à chaque position de chacune des 4 bases.
Dans une librairie aléatoire, on s'attendrait à ce qu'il y ait peu ou pas de différence entre les différentes bases d'une séquence, donc les lignes de ce graphique devraient être parallèles les unes aux autres. En particulier, les lignes de A et T et de C et G doivent être presque parfaitement chevauchantes.
Si vous voyez des biais forts qui changent d'une base à l'autre, cela indique généralement une séquence surreprésentée qui contamine votre librairie.
Per Sequence GC Content¶
Explication :
Ce module mesure le pourcentage de GC moyen de chaque lecture du fichier et le compare à une distribution normale modélisée de ce %GC.
Dans une librairie aléatoire, on s'attendrait à voir une distribution normale, où le pic central correspond au pourcentage de GC du génome attendu. Comme le génome de référence n'est pas connu par fastQC, le pourcentage en GC est calculé à partir des données observées et utilisé pour construire une distribution de référence.
Si la courbe rouge (distribution réelle) présente une forme inhabituelle, cela pourrait indiquer une librairie contaminée par exemple. Une distribution normale qui serait légèrement décalée indique un certain biais systématique. Si c'est le cas, cela ne sera pas signalé comme une erreur par fastQC puisqu'il ne sait pas quelle devrait être la valeur du %GC de votre génome.
Per Base N Content¶
Explication :
Si un séquenceur n'est pas en mesure de lire une base avec suffisamment de confiance, il substituera la base par un N plutôt que d'ajouter une base fausse. Ici nous avons donc la représentation du pourcentage de base remplacée par des N pour chaque position.
Il n'est pas inhabituel de voir une très faible proportion de N apparaître dans une séquence, en particulier vers la fin d'une séquence (donc du séquençage). Cependant, si cette proportion dépasse quelques pourcents, cela suggère que le séquenceur n'a pas été en mesure d'interpréter un grand nombre de base.
Sequence Length Distribution¶
Explication :
Certains séquenceurs à haut débit génèrent des reads de longueur uniforme, mais d'autres peuvent contenir des lectures de longueurs très variées. Même dans les librairie de longueur uniforme, certains pipelines vont tronquer les séquences pour enlever les bases de mauvaise qualité à partir de leur extrémité. Ce module génère un graphique montrant la distribution des tailles de reads dans le fichier analysé.
Dans de nombreux cas, cela produira un graphique simple montrant un pic à une seule taille, mais pour les fichiers FastQ de longueur variable, cela montrera les quantités relatives de chaque taille différente de reads.
Duplicate Sequences¶
Explication :
Dans une librairie aléatoire, la plupart des séquences n'apparaîtront qu'une seule fois. Un faible niveau de duplication peut indiquer un niveau de couverture très élevé de la séquence cible, mais un niveau élevé de duplication est plus susceptible d'indiquer un biais d'enrichissement (par exemple, une sur-amplification par PCR).
Ce module compte le degré de duplication pour chaque séquence du fichier et crée un graphique montrant le pourcentage de lectures à chaque niveau de duplication.
Overrepresented Sequences¶
Explication :
Une librairie normale contient un ensemble diversifié de séquences, sans qu'aucune séquence individuelle ne soit sur-représentée face aux autres.
Trouver une séquence sur-représentée signifie soit qu'elle est très significative sur le plan biologique, soit que la librairie est contaminée, ou n'est pas aussi diversifiée que vous l'aviez prévu.
Attention, ce module répertorie toutes les séquences qui représentent plus de 0,1 % du total mais pour économiser de la mémoire, seules les séquences qui apparaissent dans les 200 000 premiers reads sont suivies jusqu'à la fin du fichier. Il est donc possible qu'une séquence soit sur-représentée mais qu'elles n'apparaîssent pas au début du fichier pour une raison quelconque et puisse donc être manquée par ce module.
Adapter Content¶
Explication :
Le module Adapter content sert à détecter la présence de séquences d'adaptateurs dans vos reads. Les séquences d'adaptateurs sont des fragments d'ADN ajoutés aux lectures pour faciliter le processus de séquençage, mais elles ne devraient pas être présentes dans les lectures finales.
FastQC recherche donc des séquences spécifiques d'adaptateurs définies dans une configuration.
Le graphique montre le pourcentage cumulé de reads qui contiennent ces séquences d'adaptateurs à chaque position.
Ce graphique vous aide à déterminer si vous devez effectuer une suppression des adaptateurs (trimming) avant de poursuivre l'analyse de votre séquençage.