Question:
Assemblage du génome à partir de lectures sujettes aux erreurs
gagro
2017-10-22 17:20:58 UTC
view on stackexchange narkive permalink

Je comprends comment assembler le génome à partir de lectures sans erreur. J'ai implémenté comme ceci:

Construisez un graphe de chevauchement dirigé avec des lectures en tant que sommets et des arêtes en tant que chevauchement maximal entre deux sommets. Les bords représentent la longueur de la sous-chaîne maximale superposée d'un suffixe de lecture avec un autre préfixe de lecture. Trouvez le chemin qui visite tous les sommets une seule fois dans le graphique de chevauchement. Avec un petit graphique, nous pouvons utiliser une approche gourmande: à partir du premier motif, choisissez toujours l'egde de poids maximum et stockez la superchaine commune la plus courte épelée par ce chemin dans la chaîne résultante. La chaîne résultante épelée par chemin est la plus courte chaîne commune de toutes les lectures, c'est-à-dire le génome assemblé.

Par exemple

  AACTAG CTAGAT  

Donne le résultat AACTAGAT

Maintenant, disons que deux lectures sujettes aux erreurs ont au plus une erreur (discordance):

  AACTAG CTCGAT  

Comme vous pouvez le voir, la deuxième lecture a une substitution dans le troisième caractère de 'A' à 'C' .

Alors, à quoi devrait ressembler le génome assemblé pour les lectures sujettes aux erreurs? Dois-je prendre A ou C à la chaîne résultante? Ou il me manque quelque chose?

Remarque: j'ai utilisé des lectures courtes par exemple pour des raisons de simplicité. Je travaille avec un nombre beaucoup plus grand de lectures qui font 100 nucléotides et ont au plus une substitution de caractère. C'est donc un gros graphique de chevauchement. Je sais que je peux utiliser le graphique De Bruijn, mais puis-je utiliser une approche gourmande (comme dans un exemple sans erreur)?

Deux réponses:
user172818
2017-10-22 19:13:23 UTC
view on stackexchange narkive permalink

Pour les lectures courtes, la solution typique et la plus largement utilisée est de corriger les erreurs de séquençage avant l'assemblage. Vous pouvez corriger les erreurs avec le spectre k-mer, un trie ou multi-alignement. Il existe de nombreux articles sur ce sujet.

La correction d'erreur seule ne résoudra pas toutes les erreurs de séquençage. Les erreurs restantes peuvent entraîner des bulles et des conseils dans le graphique de chevauchement / de Bruijn. Vous pouvez les identifier en inspectant la topologie locale du graphe d'assemblage.

Alors, quelle serait la solution de l'échantillon sujet aux erreurs ci-dessus?
Aucune solution à votre exemple. Vous ne pouvez identifier que les erreurs avec une couverture suffisante.
gringer
2017-10-22 23:47:50 UTC
view on stackexchange narkive permalink

Il est courant pour les assembleurs d'avoir un seuil de couverture pour s'assurer qu'il y a suffisamment de lectures dans la même région pour assembler correctement un contig.

Vous ne pouvez pas trouver une solution idéale à partir d'une situation où la séquence consensus est ambiguë. Si votre chevauchement était représentatif (par exemple, un variant hétérozygote dans un génome diploïde, basé sur quelques dizaines de lectures de 100 pb, plutôt que 6 pb), alors l'assemblage résultant aurait une bulle dans le graphe d'assemblage au point de variante.

  A / \ AACT GAT \ / C  

Un assembleur conservateur peut produire deux contigs assemblés correspondant à ces deux chemins, AACTAGAT et AACTCGAT. Un assembleur gourmand ne choisirait qu'un seul chemin et l'utiliserait. Les étapes d'assemblage suivantes peuvent tenter de rechercher des bulles et d'annoter les contigs assemblés avec des emplacements de variantes.

Pour tous les chevaucheurs à lecture courte grand public, s'il y a une discordance, le chevauchement sera entièrement manqué. Vous n'obtenez pas de bulle. Habituellement, vous avez besoin d'au moins 4 lectures pour voir une bulle et la bulle n'est pas basée sur une seule chaîne / graphique de chevauchement.
Oui, pour l'exemple particulier qui a été donné, une bulle ne se formerait pas. Je supposais que les lectures étaient représentatives de quelque chose avec une meilleure couverture (par exemple, chevauchement de 50 longues séquences, la moitié ayant une variante et l'autre non)


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...