> For the complete documentation index, see [llms.txt](https://aleksandre80.gitbook.io/stage/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aleksandre80.gitbook.io/stage/basecalling-avec-dorado/basecalling-dorado-+-demultiplexage/quel-qscore.md).

# 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 :

$$
Q=−10log
10
​
P
$$

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).

```bash
/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
```

<table><thead><tr><th width="140">DDN</th><th width="123">N° dossier</th><th>Echantillon</th><th>FC</th><th width="151">illumina</th><th width="152">Nanopore</th><th width="175">Profondeur (x) c.13</th><th width="109">VAF(%) c.13 C>T</th><th width="144">Profondeur (x) c.371</th><th>VAF(%)c.371 G>A</th><th></th><th width="155">illumina</th><th width="148">Nanopore</th><th width="176">Profondeur (x) c.13</th><th width="158">VAF(%) c.13 C>T</th><th width="185">Profondeur (x) c.371</th><th width="170">VAF(%) c.371 G>A</th></tr></thead><tbody><tr><td>25/12/1945</td><td>2023-3726</td><td>RB16</td><td>FLG-114</td><td>RAS</td><td>RAS</td><td>1750</td><td>24</td><td>1258</td><td>11</td><td>Minion</td><td>RAS</td><td>RAS</td><td>16441</td><td>11</td><td>14670</td><td>11</td></tr><tr><td>05/11/1942</td><td>2024-0849</td><td>RB17</td><td>FLG-114</td><td>RAS</td><td>RAS</td><td>2683</td><td>24</td><td>1959</td><td>12</td><td>Minion</td><td>RAS</td><td>RAS</td><td>27768</td><td>12</td><td>26159</td><td>11</td></tr><tr><td>13/11/1962</td><td>2024-0851</td><td>RB18</td><td>FLG-114</td><td>POS/c.290C>A</td><td>POS/c.290C>A</td><td>1563</td><td>24</td><td>10681</td><td>12</td><td>Minion</td><td>POS/c.290C>A</td><td>POS/c.290C>A</td><td>11817</td><td>11</td><td>10202</td><td>11</td></tr><tr><td>05/01/1947</td><td>2024-0882</td><td>RB19</td><td>FLG-114</td><td>RAS</td><td>RAS</td><td>1313</td><td>26</td><td>1003</td><td>14</td><td>Minion</td><td>RAS</td><td>RAS</td><td>10599</td><td>11</td><td>9934</td><td>10</td></tr><tr><td>01/11/1948</td><td>2024-0869</td><td>RB20</td><td>FLG-114</td><td>RAS</td><td>RAS</td><td>2085</td><td>29</td><td>1749</td><td>12</td><td>Minion</td><td>RAS</td><td>RAS</td><td>23943</td><td>13</td><td>22449</td><td>11</td></tr><tr><td>18/08/1984</td><td>2024-0325</td><td>RB21</td><td>FLG-114</td><td>POS/c.290C>A</td><td>POS/c.290C>A</td><td>1556</td><td>23</td><td>1171</td><td>12</td><td>Minion</td><td>POS/c.290C>A</td><td>POS/c.290C>A</td><td>15205</td><td>10</td><td>13343</td><td>10</td></tr><tr><td>02/04/1970</td><td>220691295</td><td>RB22</td><td>FLG-114</td><td>POS/c.424G>A</td><td>POS/c.424G>A</td><td>1548</td><td>29</td><td>1374</td><td>13</td><td>Minion</td><td>POS/c.424G>A</td><td>POS/c.424G>A</td><td>15311</td><td>13</td><td>15079</td><td>11</td></tr><tr><td>16/03/1968</td><td>203301144</td><td>RB23</td><td>FLG-114</td><td>POS/c.424G>A</td><td>POS/c.424G>A</td><td>1595</td><td>25</td><td>1128</td><td>10</td><td>Minion</td><td>POS/c.424G>A</td><td>POS/c.424G>A</td><td>12567</td><td>11</td><td>11631</td><td>11</td></tr></tbody></table>

<figure><img src="https://1679832805-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwdhlAbAoKEwQdCISDrUh%2Fuploads%2FTOxu1vhXdYa4Q5qkSXAb%2FRB09-gridion-1%20seul%20bam%20bam0.png?alt=media&amp;token=bb41e9d7-cc47-4d21-a0e2-9e8c98e070aa" alt=""><figcaption><p>RB09 Gridion 1 seul bam (bam0)</p></figcaption></figure>

## qscore 0

<table><thead><tr><th align="center">Barcode</th><th data-type="number">Nbr Bases</th><th align="center">371 C > T %</th><th data-type="number">Nbr Bases</th><th align="center">13 C > T %</th><th align="center">13 C > G %</th></tr></thead><tbody><tr><td align="center">1 POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>690</td><td align="center">8</td><td>723</td><td align="center">8</td><td align="center">5</td></tr><tr><td align="center">10</td><td>666</td><td align="center">9</td><td>707</td><td align="center">7</td><td align="center">6</td></tr><tr><td align="center">11</td><td>927</td><td align="center">9</td><td>959</td><td align="center">9</td><td align="center">6</td></tr></tbody></table>

## qscore 9 (par défaut)

|  Barcode | Nbr Bases | 371 C > T % | Nbr Bases | 13 C > T % | 13 C > G % |
| :------: | :-------: | :---------: | :-------: | ---------- | ---------- |
|   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

<table><thead><tr><th align="center">Barcode</th><th data-type="number">Nbr Bases</th><th align="center">371 C > T %</th><th data-type="number">Nbr Bases</th><th align="center">13 C > T %</th><th align="center">13 C > G %</th></tr></thead><tbody><tr><td align="center">1 POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>562</td><td align="center">5</td><td>589</td><td align="center">5</td><td align="center">3</td></tr><tr><td align="center">10</td><td>539</td><td align="center">6</td><td>585</td><td align="center">4</td><td align="center">4</td></tr><tr><td align="center">11</td><td>711</td><td align="center">6</td><td>770</td><td align="center">4</td><td align="center">5</td></tr><tr><td align="center">Tous POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>69222</td><td align="center">5</td><td>71956</td><td align="center">5</td><td align="center">3</td></tr><tr><td align="center">10</td><td>68312</td><td align="center">5</td><td>72931</td><td align="center">5</td><td align="center">3</td></tr><tr><td align="center">11</td><td>80929</td><td align="center">5</td><td>84629</td><td align="center">5</td><td align="center">3</td></tr></tbody></table>

## qscore 15

<table><thead><tr><th align="center">Barcode</th><th data-type="number">Nbr Bases</th><th align="center">371 C > T %</th><th data-type="number">Nbr Bases</th><th align="center">13 C > T %</th><th align="center">13 C > G %</th></tr></thead><tbody><tr><td align="center">1 POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>522</td><td align="center">5</td><td>566</td><td align="center">5</td><td align="center">3</td></tr><tr><td align="center">10</td><td>523</td><td align="center">6</td><td>559</td><td align="center">4</td><td align="center">4</td></tr><tr><td align="center">11</td><td>675</td><td align="center">6</td><td>742</td><td align="center">5</td><td align="center">4</td></tr></tbody></table>

## qscore 17

<table><thead><tr><th align="center">Barcode</th><th data-type="number">Nbr Bases</th><th align="center">371 C > T %</th><th data-type="number">Nbr Bases</th><th align="center">13 C > T %</th><th align="center">13 C > G %</th></tr></thead><tbody><tr><td align="center">1 POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>436</td><td align="center">5</td><td>465</td><td align="center">5</td><td align="center">3</td></tr><tr><td align="center">10</td><td>444</td><td align="center">5</td><td>455</td><td align="center">4</td><td align="center">4</td></tr><tr><td align="center">11</td><td>567</td><td align="center">5</td><td>619</td><td align="center">4</td><td align="center">3</td></tr><tr><td align="center">Tous POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>55636</td><td align="center">5</td><td>58835</td><td align="center">4</td><td align="center">2</td></tr><tr><td align="center">10</td><td>54870</td><td align="center">5</td><td>59291</td><td align="center">4</td><td align="center">2</td></tr><tr><td align="center">11</td><td>65218</td><td align="center">5</td><td>69171</td><td align="center">4</td><td align="center">3</td></tr></tbody></table>

<figure><img src="https://1679832805-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwdhlAbAoKEwQdCISDrUh%2Fuploads%2FYAKcVgquPCNskT1nhjXE%2FRB10-Q17.png?alt=media&amp;token=62e6d8a4-7fb9-4088-a8c7-5f3cd2b877d6" alt=""><figcaption><p>RB10-Qscore17 bam merged</p></figcaption></figure>

<figure><img src="https://1679832805-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwdhlAbAoKEwQdCISDrUh%2Fuploads%2F0RCKYig0GWGDaiJhAGZp%2FRB11-Q17.png?alt=media&amp;token=7bf9341e-555b-46b1-9b96-0054282b82dd" alt=""><figcaption><p>RB11-Qscore17 bam merged</p></figcaption></figure>

## qscore 19

<table><thead><tr><th align="center">Barcode</th><th data-type="number">Nbr Bases</th><th align="center">371 C > T %</th><th data-type="number">Nbr Bases</th><th align="center">13 C > T %</th><th align="center">13 C > G %</th></tr></thead><tbody><tr><td align="center">1 POD</td><td>null</td><td align="center"></td><td>null</td><td align="center"></td><td align="center"></td></tr><tr><td align="center">9</td><td>246</td><td align="center">4</td><td>271</td><td align="center">4</td><td align="center">3</td></tr><tr><td align="center">10</td><td>252</td><td align="center">6</td><td>266</td><td align="center">3</td><td align="center">2</td></tr><tr><td align="center">11</td><td>306</td><td align="center">4</td><td>351</td><td align="center">4</td><td align="center">4</td></tr></tbody></table>

## 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.&#x20;

```bash
#!/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."

```
