Quel qscore ?
Le Q-score est une métrique qui exprime la qualité d'une lecture de séquence individuelle. Le Q-score est généralement utilisé pour quantifier la confiance que l'on peut avoir dans chaque base appelée lors du séquençage.
Définition du Q-score
Q-score est une mesure logarithmique de la probabilité d'erreur de basecalling. Plus précisément, un Q-score est défini comme :
oĂč đ est la probabilitĂ© qu'une base appelĂ©e soit incorrecte. Ainsi, un Q-score plus Ă©levĂ© indique une plus grande confiance dans la lecture de la base et vice versa. Par exemple, un Q-score de 20 indique une probabilitĂ© d'erreur de 1 sur 100, tandis qu'un Q-score de 30 indique une probabilitĂ© d'erreur de 1 sur 1000.
Utilisation du Q-score dans Dorado
Dans Dorado, comme dans d'autres outils de basecalling pour le séquençage par nanopores, le Q-score sert à évaluer et à filtrer les lectures en fonction de leur qualité. Dorado permet aux utilisateurs de spécifier un Q-score minimum (--min-qscore
) lors du basecalling. Cela permet de filtrer et de ne conserver que les lectures qui atteignent ou dépassent un seuil de qualité spécifique, ce qui est utile pour éliminer les données de faible qualité qui pourraient compromettre les analyses en aval.
Importance du qscore
Filtrage des données
Le filtrage basé sur le Q-score aide à réduire le volume de données à analyser et améliore la précision des analyses en aval, telles que l'assemblage de génomes, l'identification de variants, et d'autres formes d'analyses bioinformatiques.
Comparaison de kits de séquençage
Le Q-score peut Ă©galement ĂȘtre utilisĂ© pour comparer les performances de diffĂ©rents kits de prĂ©paration d'Ă©chantillons ou de conditions expĂ©rimentales, offrant une mesure standardisĂ©e de la qualitĂ© des lectures.
Optimisation des protocoles
En surveillant les Q-scores, les chercheurs peuvent ajuster les protocoles de séquençage pour optimiser la qualité des données produites.
Analyse
Analyse du gÚne TTR à partir d'un amplicon de 1F à 4R (7096 paires de bases). C'est toutes les régions codantes et introns du gÚne TTR (Transthyretin). Ces résultats sont pris de 1 pod5 parmis les 48 (Mingon de nanopore (NATIF)) réalisés avec le modÚle hac@5.0.0 et le kit SQK-NBD114-24. Pour obtenir ces différents résultats nous avons modifié le qscore au moment du basecalling. Toutes ces valeurs nous laissent à penser que le qscore réglé aux alentours des 17 permettent d'avoir des résultats fiables sans perte de profondeur. A voir si celà change sur tout le séquençage (les 48 pod5).
/home/grid/dorado-0.7.2-linux-x64/bin/dorado basecaller \
-x "cuda:0" \
--min-qscore 7 \
--no-trim \
--emit-fastq \
/home/grid/dorado-0.7.2-linux-x64/bin/dna_r10.4.1_e8.2_400bps_hac@v5.0.0
pod5/ | \
/home/grid/dorado-0.7.2-linux-x64/bin/dorado demux \
--kit-name SQK-NBD114-24 \
--emit-fastq \
--output-dir demultiplexed
25/12/1945
2023-3726
RB16
FLG-114
RAS
RAS
1750
24
1258
11
Minion
RAS
RAS
16441
11
14670
11
05/11/1942
2024-0849
RB17
FLG-114
RAS
RAS
2683
24
1959
12
Minion
RAS
RAS
27768
12
26159
11
13/11/1962
2024-0851
RB18
FLG-114
POS/c.290C>A
POS/c.290C>A
1563
24
10681
12
Minion
POS/c.290C>A
POS/c.290C>A
11817
11
10202
11
05/01/1947
2024-0882
RB19
FLG-114
RAS
RAS
1313
26
1003
14
Minion
RAS
RAS
10599
11
9934
10
01/11/1948
2024-0869
RB20
FLG-114
RAS
RAS
2085
29
1749
12
Minion
RAS
RAS
23943
13
22449
11
18/08/1984
2024-0325
RB21
FLG-114
POS/c.290C>A
POS/c.290C>A
1556
23
1171
12
Minion
POS/c.290C>A
POS/c.290C>A
15205
10
13343
10
02/04/1970
220691295
RB22
FLG-114
POS/c.424G>A
POS/c.424G>A
1548
29
1374
13
Minion
POS/c.424G>A
POS/c.424G>A
15311
13
15079
11
16/03/1968
203301144
RB23
FLG-114
POS/c.424G>A
POS/c.424G>A
1595
25
1128
10
Minion
POS/c.424G>A
POS/c.424G>A
12567
11
11631
11

qscore 0
1 POD
9
8
8
5
10
9
7
6
11
9
9
6
qscore 9 (par défaut)
1 POD
9
620
6
659
7
4
10
605
6
654
6
5
11
811
7
859
6
5
Tous POD
9
78 264
6
80 084
6
3
10
77 604
6
81 460
6
3
11
91 754
6
94 442
6
4
qscore 14
1 POD
9
5
5
3
10
6
4
4
11
6
4
5
Tous POD
9
5
5
3
10
5
5
3
11
5
5
3
qscore 15
1 POD
9
5
5
3
10
6
4
4
11
6
5
4
qscore 17
1 POD
9
5
5
3
10
5
4
4
11
5
4
3
Tous POD
9
5
4
2
10
5
4
2
11
5
4
3


qscore 19
1 POD
9
4
4
3
10
6
3
2
11
4
4
4
qscore 24
Il faut savoir que j'ai mis que 3 barcodes dans les tableaux du dessus mais en réalité j'en possÚde de 9 à 17 soit 9. Une fois le qscore passé à 24, j'ai perdu des barecodes et ils n'avaient presque pas de profondeur. Le qscore de 24 est donc trop élevé.
Pour effectuer des tests de qualité, nous pouvons automatiser tout ce processus via un script en .sh. Un point d'entrée de POD5 et on en ressort les BAM qui sont rangé en fonction du barcode et du qscore.
#!/bin/bash
# Définir le chemin de l'exécutable Dorado
DORADO_BIN="/home/grid/dorado-0.7.2-linux-x64/bin/dorado"
MODEL_PATH="/home/grid/dorado-0.7.2-linux-x64/bin/dna_r10.4.1_e8.2_400bps_hac@v5.0.0"
# Dossier contenant les données POD5
INPUT_DIR="pod5/"
# Scores de qualité à tester
QS_SCORES=(0 9 14 15 17 19 24)
# Boucle sur chaque score de qualité
for qscore in "${QS_SCORES[@]}"; do
# Créer un répertoire pour les résultats de ce Q-score
OUTPUT_DIR="demultiplexed_q${qscore}"
mkdir -p "${OUTPUT_DIR}"
# Basecalling et démultiplexage
$DORADO_BIN basecaller -x "cuda:0" --min-qscore "$qscore" --no-trim --emit-fastq $MODEL_PATH $INPUT_DIR | \
$DORADO_BIN demux --kit-name SQK-NBD114-24 --emit-fastq --output-dir "${OUTPUT_DIR}"
# Dossier pour stocker les fichiers BAM
BAM_DIR="bam_files_q${qscore}"
mkdir -p "${BAM_DIR}"
# Convertir chaque fichier FASTQ en BAM
for fastq in "${OUTPUT_DIR}"/*.fastq; do
bam_file="${BAM_DIR}/$(basename "${fastq}" .fastq).bam"
minimap2 -ax map-ont -t 8 ref_genome.mmi "${fastq}" | samtools sort -o "${bam_file}"
done
done
echo "Basecalling, démultiplexage, et conversion en BAM terminés pour tous les Q-scores."
Last updated