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