Domanda:
In che modo l'algoritmo BWA-MEM assegna le sue qualità di mappatura?
Karel Brinda
2017-05-31 02:36:46 UTC
view on stackexchange narkive permalink

Esiste una risorsa (carta, post di blog, sintesi di Github, ecc.) che descrive l'algoritmo BWA-MEM per l'assegnazione delle qualità di mappatura? Ricordo vagamente di aver visto da qualche parte una formula per le letture SE, che assomigliava a

$ C * (s_1 - s_2) / s_1, $

dove $ s_1 $ e $ s_2 $ indicava i punteggi di allineamento dei due migliori allineamenti e C era una costante.

Credo che una reimplementazione di questo algoritmo in un linguaggio di scripting potrebbe essere molto utile per la comunità di bioinfo. Ad esempio, a volte provo vari metodi di mappatura e alcuni di essi tendono a trovare buoni allineamenti, ma non riescono ad assegnare qualità appropriate. Pertanto, vorrei riassegnare tutte le qualità di mappatura in un file SAM con l'algoritmo BWA-MEM.

Btw. Questo algoritmo deve essere già stato implementato al di fuori di BWA, vedere il documento BWA-MEM:

GEM non calcola la qualità della mappatura. La sua qualità di mappatura è stimata con un algoritmo simile a BWA con allineamenti non ottimali disponibili.

Sfortunatamente, il BWA-MEM paper repo contiene solo il risultante. eval .

Aggiornamento: la domanda non riguarda l'algoritmo per calcolare i punteggi di allineamento. Le qualità di mappatura e i punteggi di allineamento sono due cose diverse:

  • Il punteggio di allineamento quantifica la somiglianza tra due sequenze (ad esempio, una sequenza di lettura e una sequenza di riferimento)
  • Qualità della mappatura (MAQ) quantifica la probabilità che una lettura sia allineata a una posizione sbagliata.

Anche gli allineamenti con punteggi alti possono avere una qualità di mappatura molto bassa.

Sfortunatamente non conosco la risposta per BWA-MEM (dato che differisce da BWA!) Ma praticamente tutti gli altri strumenti sono descritti qui: https://sequencing.qcfail.com/articles/mapq-values-are-really- utile-ma-la-loro-implementazione-è-un-pasticcio /
Forse questa pagina può aiutare http://genome.sph.umich.edu/wiki/Mapping_Quality_Scores. Una volta che conosci le posizioni migliori e alternative in cui una lettura può essere allineata (o anche solo la migliore e la seconda migliore?) Non è troppo difficile da implementare immagino.
Una risposta:
Kamil S Jaron
2017-05-31 03:15:54 UTC
view on stackexchange narkive permalink

Sì, bwa-mem è stato pubblicato come prestampa

L'estensione seed di BWA-MEM differisce dall'estensione seed standard in due aspetti. In primo luogo, supponiamo che in un certo passaggio di estensione arriviamo alla posizione di riferimento x con il miglior punteggio di estensione ottenuto alla posizione della query y.

...

In secondo luogo, mentre estendi un seme, BWA -MEM cerca di tenere traccia del miglior punteggio di estensione che raggiunge la fine della sequenza di query

E c'è una descrizione dell'algoritmo di punteggio direttamente nel codice sorgente di bwa-mem (righe 22 - 44), ma forse l'unica soluzione è davvero leggere il codice sorgente.

La ringrazio per la risposta. Tuttavia, la domanda riguarda più l'assegnazione delle qualità di mappatura. Anche le letture con un punteggio di allineamento molto alto possono avere una qualità di mappatura pari a zero.
Hai controllato il codice sorgente? linea 22-44.
@KamilSJaron Wow, è terribilmente difficile da capire. Il [codice effettivo] (https://github.com/lh3/bwa/blob/master/bwamem.c#L945-L969) purtroppo non è migliore. :-( In ogni caso, potresti aggiornare la tua risposta per includerla in modo più evidente?
@ KamilSJaron l'ho fatto e non è ancora del tutto chiaro per me anche nel caso più semplice delle letture single-end.
Beh, non avevo intenzione di spiegare effettivamente il punteggio (dal momento che davvero non lo so e la domanda posta esplicitamente sulle risorse). Sapevo solo del prestampa e mi è venuta anche l'idea di guardare il codice sorgente, dove ho trovato quelle 22 righe di matematica che sembravano spiegare il punteggio.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...