Figura 3
Le tre fasi dell’algoritmo Bowtie per la politica simile a Maq. Un approccio trifase trova allineamenti per due casi di mancata corrispondenza da 1 a 4 riducendo al minimo il backtracking. La fase 1 utilizza l’indice mirror e richiama l’allineatore per trovare gli allineamenti per i casi 1 e 2. Le fasi 2 e 3 cooperano per trovare allineamenti per il caso 3: la fase 2 trova allineamenti parziali con disallineamenti solo nell’hi-half e la fase 3 tenta di estendere tali allineamenti parziali in allineamenti completi., Infine, la fase 3 richiama l’allineatore per trovare gli allineamenti per il caso 4.
Risultati delle prestazioni
Abbiamo valutato le prestazioni di Bowtie utilizzando letture dal progetto pilota 1,000 Genomi (National Center for Biotechnology Information Short Read Archive:SRR001115). Un totale di 8,84 milioni di letture, circa una corsia di dati da uno strumento Illumina, sono stati tagliati a 35 bp e allineati al genoma umano di riferimento . Se non diversamente specificato, i dati letti non vengono filtrati o modificati (oltre al ritaglio) dal modo in cui appaiono nell’archivio., Questo porta a circa il 70% al 75% delle letture allineando da qualche parte al genoma. Nella nostra esperienza, questo è tipico per i dati grezzi dall’archivio. Un filtraggio più aggressivo porta a tassi di allineamento più elevati e un allineamento più veloce.
Tutte le esecuzioni sono state eseguite su una singola CPU. Gli speedup di Bowtie sono stati calcolati come un rapporto tra i tempi di allineamento dell’orologio da parete. Sia l’orologio da parete che i tempi della CPU sono dati per dimostrare che il carico di input/output e la contesa della CPU non sono fattori significativi.
Il tempo necessario per costruire l’indice Bowtie non è stato incluso nei tempi di esecuzione Bowtie., A differenza di strumenti concorrenti, Bowtie può riutilizzare un indice pre-calcolato per il genoma di riferimento in molte piste di allineamento. Prevediamo che la maggior parte degli utenti scaricherà semplicemente tali indici da un repository pubblico. Il sito Bowtie fornisce indici per le attuali build dei genomi umani, scimpanzé, topo, cane, ratto e Arabidopsis thaliana, così come molti altri.
I risultati sono stati ottenuti su due piattaforme hardware: una workstation desktop con processore Intel Core 2 da 2,4 GHz e 2 GB di RAM; e un server di grande memoria con un processore AMD Opteron da 2,4 GHz a quattro core e 32 GB di RAM., Questi sono indicati rispettivamente ‘ PC ‘e’ server’. Sia il PC che il server eseguono Red Hat Enterprise Linux COME versione 4.
Confronto con SOAP e Maq
Maq è un allineatore popolare che è tra i più veloci strumenti open source concorrenti per allineare milioni di Illumina legge al genoma umano. SOAP è un altro strumento open source che è stato segnalato e utilizzato in progetti di breve lettura .
La tabella 1 presenta le prestazioni e la sensibilità di Bowtie v0.9.6, SOAP v1.10 e Maq v0.6.6. Impossibile eseguire SOAP sul PC perché l’ingombro di memoria di SOAP supera la memoria fisica del PC. Il sapone.,è stata utilizzata la versione di contig del binario SOAP. Per il confronto con SOAP, Bowtie è stato invocato con ‘ – v 2 ‘per imitare la politica di corrispondenza predefinita di SOAP (che consente fino a due disallineamenti nell’allineamento e ignora i valori di qualità) e con’ max maxns 5 ‘ per simulare la politica predefinita di SOAP di filtrare le letture con cinque o più basi di sfiducia. Per il confronto Maq, Bowtie viene eseguito con la sua politica predefinita, che imita la politica predefinita di Maq di consentire fino a due disallineamenti nelle prime 28 basi e di imporre un limite complessivo di 70 sulla somma dei valori di qualità in tutte le posizioni di lettura non corrispondenti., Per rendere l’impronta di memoria di Bowtie più paragonabile a quella di Maq, Bowtie viene invocato con l’opzione’ – z ‘ in tutti gli esperimenti per garantire che solo l’indice forward o mirror sia residente in memoria contemporaneamente.
Il numero di letture allineate indica che SOAP (67,3%) e Bowtie-v 2 (67,4%) hanno sensibilità comparabili. Delle letture allineate da SOAP o Bowtie, il 99,7% era allineato da entrambi, lo 0,2% era allineato da Bowtie ma non da SOAP e lo 0,1% era allineato da SOAP ma non da Bowtie. Anche Maq (74,7%) e Bowtie (71,9%) hanno una sensibilità approssimativamente paragonabile, sebbene Bowtie sia in ritardo del 2,8%., Tra le letture allineate da Maq o Bowtie, il 96,0% era allineato da entrambi, lo 0,1% era allineato da Bowtie ma non da Maq, e il 3,9% era allineato da Maq ma non da Bowtie. Delle letture mappate da Maq ma non da Bowtie, quasi tutte sono dovute a una flessibilità nell’algoritmo di allineamento di Maq che consente ad alcuni allineamenti di avere tre disallineamenti nel seme. Il resto delle letture mappate da Maq ma non Bowtie sono dovute al soffitto backtracking di Bowtie.
La documentazione di Maq menziona che le letture contenenti “artefatti poly-A” possono compromettere le prestazioni di Maq., La Tabella 2 presenta le prestazioni e la sensibilità di Bowtie e Maq quando il set di lettura viene filtrato utilizzando il comando ‘catfilter’ di Maq per eliminare gli artefatti poly-A. Il filtro elimina 438.145 su 8.839.010 letture. Altri parametri sperimentali sono identici a quelli degli esperimenti nella Tabella 1, e le stesse osservazioni sulla sensibilità relativa di Bowtie e Maq si applicano qui.
Lunghezza e prestazioni di lettura
Man mano che la tecnologia di sequenziamento migliora, le lunghezze di lettura stanno crescendo oltre i 30-bp a 50-bp comunemente visti nei database pubblici oggi., Bowtie, Maq e SOAP supportano letture di lunghezze fino a 1.024, 63 e 60 bp, rispettivamente, e le versioni Maq 0.7.0 e successive supportano lunghezze di lettura fino a 127 bp. La tabella 3 mostra i risultati delle prestazioni quando i tre strumenti vengono utilizzati ciascuno per allineare tre serie di letture non tagliate di 2 M, un set di 36 bp, un set di 50 bp e un set di 76 bp, al genoma umano sulla piattaforma server. Ogni set di 2 M è casualmente campionato da un set più grande (NCBI breve Lettura Archivio: SRR003084 per 36-bp, SRR003092 per 50-bp, SRR003196 per 76-bp)., Le letture sono state campionate in modo tale che le tre serie di 2 M abbiano un tasso di errore uniforme per base, calcolato in base alle qualità Phred per base. Tutte le letture passano attraverso il “catfilter” di Maq.
Tabella 3 Lunghezza di lettura variabile usando Bowtie, Maq e SOAP
Bowtie viene eseguito sia nella modalità predefinita simile a Maq che nella modalità SOAP ‘-v 2′. Bowtie è anche dato il’ – z ‘ opzione per garantire che solo il forward o mirror index è residente in memoria in una sola volta. Maq v0.7.1 è stato utilizzato al posto di Maq v0.6.6 per il set 76-bp perché v0. 6.,6 impossibile allineare le letture più lunghe di 63 bp. SOAP non è stato eseguito sul set 76-bp perché non supporta letture più lunghe di 60 bp.
I risultati mostrano che l’algoritmo di Maq scala meglio in generale a lunghezze di lettura più lunghe rispetto a Bowtie o SOAP. Tuttavia, Bowtie in modalità SOAP-like ‘- v 2 ‘ scala anche molto bene. Bowtie nella sua modalità predefinita Maq-like scala bene da 36-bp a 50-bp legge, ma è sostanzialmente più lento per 76-bp legge, anche se è ancora più di un ordine di grandezza più veloce di Maq.,
Prestazioni parallele
L’allineamento può essere parallelizzato distribuendo le letture tra thread di ricerca simultanei. Bowtie consente all’utente di specificare un numero desiderato di thread (opzione-p); Bowtie avvia quindi il numero specificato di thread utilizzando la libreria pthreads. I thread Bowtie si sincronizzano tra loro durante il recupero delle letture, l’output dei risultati, il passaggio da un indice all’altro e l’esecuzione di varie forme di contabilità globale, come contrassegnare una lettura come “fatta”., In caso contrario, i thread sono liberi di operare in parallelo, accelerando sostanzialmente l’allineamento su computer con più core del processore. L’immagine di memoria dell’indice è condivisa da tutti i thread e quindi l’impronta non aumenta sostanzialmente quando vengono utilizzati più thread. La tabella 4 mostra i risultati delle prestazioni per l’esecuzione di Bowtie v0.9. 6 sul server a quattro core con uno, due e quattro thread.,
Tabella 4 Bowtie parallel alignment performance
Index building
Bowtie utilizza un algoritmo di indicizzazione flessibile che può essere configurato per scambiare tra l’utilizzo della memoria e il tempo di esecuzione. La tabella 5 illustra questo compromesso quando si indicizza l’intero genoma umano di riferimento (NCBI build 36.3, contigs). Le esecuzioni sono state eseguite sulla piattaforma server. L’indicizzatore è stato eseguito quattro volte con diversi limiti superiori sull’utilizzo della memoria.,
Tabella 5 Bowtie index building performance
I tempi riportati si confrontano favorevolmente con i tempi di allineamento degli strumenti concorrenti che eseguono l’indicizzazione durante l’allineamento. Meno di 5 ore è necessario per Bowtie sia per costruire e interrogare un indice intero umano con 8,84 milioni di letture dal progetto genoma 1,000 (NCBI breve Read Archive: SRR001115) su un server, più di sei volte più veloce rispetto alla corsa Maq equivalente., La riga più in basso illustra che l’indicizzatore Bowtie, con argomenti appropriati, è abbastanza efficiente in memoria da funzionare su una tipica workstation con 2 GB di RAM. File di dati aggiuntivi 1 (Discussioni supplementari 3 e 4) spiega l’algoritmo e il contenuto dell’indice risultante.
Software
Bowtie è scritto in C++ e utilizza la libreria SeqAn . Il convertitore nel formato di mappatura Maq utilizza il codice da Maq.