Capisco come assemblare il genoma da letture senza errori. Ho implementato in questo modo:
Costruisci un grafo di sovrapposizione diretto con letture come vertici e bordi come massima sovrapposizione tra due vertici. I bordi rappresentano la lunghezza della sottostringa massima sovrapposta di un suffisso di lettura con un altro prefisso di lettura. Trova il percorso che visita tutti i vertici solo una volta nel grafo di sovrapposizione. Con il grafico piccolo possiamo usare l'approccio avido: partendo dal primo modello scegli sempre l'egde del peso massimo e memorizza la superstringa comune più corta scritta da questo percorso nella stringa risultante. La stringa risultante scritta per percorso è la superstringa comune più breve di tutte le letture, ovvero il genoma assemblato.
Ad esempio
AACTAG CTAGAT
Fornisce AACTAGAT
come risultato
Ora diciamo che due letture soggette a errori hanno al massimo un errore (mancata corrispondenza):
AACTAG CTCGAT
Come puoi vedere la seconda lettura ha una sostituzione nel terzo carattere da "A" a "C" .
Quindi, come dovrebbe apparire il genoma assemblato per le letture soggette a errori? Prendo A o C alla stringa risultante? O mi manca qualcosa?
Nota: ho usato letture brevi, ad esempio, per semplicità. Lavoro con un numero molto maggiore di letture che sono lunghe 100 nucleotidi e hanno al massimo una sostituzione di carattere. Quindi questo è un grande grafico di sovrapposizione. So di poter usare il grafico De Bruijn, ma posso usare un approccio avido (come nell'esempio senza errori)?