Rysunek 3
trzy fazy algorytmu Bowtie dla polityki Maq-like. Podejście trójfazowe wyszukuje wyrównania dla dwóch przypadków niedopasowania od 1 do 4, minimalizując cofanie. Faza 1 wykorzystuje indeks lustrzany i wywołuje aligner, aby znaleźć wyrównania dla przypadków 1 i 2. Fazy 2 i 3 współpracują w celu znalezienia wyrównań dla przypadku 3: faza 2 znajduje częściowe wyrównania z niedopasowaniami tylko w połowie, a faza 3 próbuje rozszerzyć te częściowe wyrównania do pełnych wyrównań., Wreszcie, faza 3 wywołuje aligner, aby znaleźć wyrównania dla przypadku 4.
wyniki wydajności
oceniliśmy wydajność Bowtie za pomocą odczytów z 1000 genomów projektu pilotażowego (National Center for Biotechnology Information Short Read Archive:SRR001115). W sumie 8,84 miliona odczytów, około jednego pasa danych z instrumentu Illumina, zostało przyciętych do 35 bp i wyrównanych do ludzkiego genomu referencyjnego . O ile nie zaznaczono inaczej, odczytywane dane nie są filtrowane ani modyfikowane (poza przycinaniem) na podstawie sposobu ich wyświetlania w archiwum., Prowadzi to do około 70% do 75% odczytów dopasowujących się gdzieś do genomu. Z naszego doświadczenia wynika, że jest to typowe dla surowych danych z archiwum. Bardziej agresywne filtrowanie prowadzi do wyższych częstotliwości osiowania i szybszego osiowania.
wszystkie operacje wykonywane były na jednym procesorze. Bowtie speedupy zostały obliczone jako stosunek czasu ustawiania zegara ściennego. Zarówno zegar ścienny, jak i czas procesora są podane w celu wykazania, że obciążenie wejścia/wyjścia i niezgodność procesora nie są istotnymi czynnikami.
czas potrzebny na zbudowanie indeksu Bowtie nie został uwzględniony w czasie wykonywania Bowtie., W przeciwieństwie do konkurencyjnych narzędzi, Bowtie może ponownie użyć wstępnie obliczonego indeksu dla genomu odniesienia w wielu przebiegach wyrównania. Przewidujemy, że większość użytkowników po prostu pobierze takie indeksy z publicznego repozytorium. Strona Bowtie zawiera indeksy dla obecnych budów genomów człowieka, szympansa, myszy, psa, szczura i Arabidopsis thaliana, a także wielu innych.
wyniki uzyskano na dwóch platformach sprzętowych: desktopowej stacji roboczej z procesorem Intel Core 2 2,4 GHz i 2 GB PAMIĘCI RAM oraz wielkoformatowym serwerze z czterordzeniowym procesorem AMD Opteron 2,4 GHz i 32 GB PAMIĘCI RAM., Są one oznaczone odpowiednio ” PC ” i „server”. Zarówno na PC, jak i na serwerze działa Red Hat Enterprise Linux w wersji 4.
porównanie do SOAP i Maq
Maq jest popularnym alignerem, który jest jednym z najszybszych konkurencyjnych narzędzi open source do wyrównywania milionów odczytów Illumina do ludzkiego genomu. SOAP to kolejne narzędzie open source, które zostało zgłoszone i wykorzystane w projektach o krótkim czytaniu .
Tabela 1 przedstawia wydajność i czułość Bowtie v0.9.6, SOAP v1.10 i Maq v0.6.6. SOAP nie może być uruchomiony na komputerze, ponieważ ilość pamięci SOAP przekracza fizyczną pamięć komputera. Mydło.,zastosowano wersję binarną mydła contiga. Dla porównania z SOAP, Bowtie został wywołany za pomocą '- v 2′, aby naśladować domyślną politykę dopasowania SOAP (która pozwala na maksymalnie dwa niedopasowania w wyrównaniu i ignoruje wartości jakości), oraz za pomocą '–maxns 5′, aby symulować domyślną politykę filtrowania odczytów SOAP z pięcioma lub więcej bazami no-confidence. Dla porównania MAQ Bowtie jest uruchamiany z jego domyślną polityką, która naśladuje domyślną politykę MAQ dopuszczającą do dwóch niedopasowań w pierwszych 28 bazach i wymuszającą ogólny limit 70 na sumie wartości jakości we wszystkich niedopasowanych pozycjach odczytu., Aby footprint pamięci Bowtie jest bardziej porównywalny do Maq, Bowtie jest wywoływany z opcją „- z ” we wszystkich eksperymentach, aby zapewnić, że tylko indeks forward lub mirror jest rezydentny w pamięci w tym samym czasie.
Liczba odczytów wskazuje, że SOAP (67,3%) i Bowtie-v 2 (67,4%) mają porównywalną czułość. Z odczytów wyrównanych przez SOAP lub Bowtie, 99,7% było wyrównanych przez oba, 0,2% było wyrównane przez Bowtie, ale nie SOAP, a 0,1% było wyrównane przez SOAP, ale nie Bowtie. Maq (74,7%) i Bowtie (71,9%) również mają mniej więcej porównywalną czułość, chociaż Bowtie pozostaje o 2,8%., Z odczytów wyrównanych przez Maq lub Bowtie, 96,0% było wyrównanych przez oba, 0,1% było wyrównane przez Bowtie, ale nie Maq, a 3,9% było wyrównane przez Maq, ale nie Bowtie. Z odczytów mapowanych przez Maq, ale nie Bowtie, prawie wszystkie są spowodowane elastycznością algorytmu wyrównywania Maq, który pozwala niektórym wyrównaniom mieć trzy niedopasowania w zalążku. Pozostałe odczyty mapowane przez Maq, ale nie Bowtie są spowodowane pułapem cofania Bowtie.
dokumentacja Maq wspomina, że odczyty zawierające „artefakty poly-A” mogą negatywnie wpływać na wydajność Maq., Tabela 2 przedstawia wydajność i czułość Bowtie i Maq, gdy zestaw odczytu jest filtrowany za pomocą polecenia MAQ 'catfilter' w celu wyeliminowania artefaktów poly-A. Filtr eliminuje 438,145 z 8,839,010 odsłon. Inne parametry eksperymentalne są identyczne z tymi z eksperymentów w tabeli 1, i te same obserwacje dotyczące względnej czułości Bowtie i Maq stosuje się tutaj.
Długość odczytu i wydajność
wraz z poprawą technologii sekwencjonowania, długość odczytu rośnie poza 30-bp do 50-bp powszechnie spotykanych obecnie w publicznych bazach danych., Bowtie, Maq i SOAP obsługują odczyty długości do odpowiednio 1,024, 63 i 60 bp, a wersje Maq 0.7.0 i późniejsze obsługują odczyty długości do 127 bp. Tabela 3 pokazuje wyniki wydajności, gdy trzy narzędzia są używane do wyrównania trzech zestawów 2 M untrimmed odczytów, Zestaw 36-bp, zestaw 50-bp i zestaw 76-bp, do ludzkiego genomu na platformie serwerowej. Każdy zestaw 2 M jest losowo pobierany z większego zestawu (NCBI Short Read Archive: SRR003084 dla 36-bp, SRR003092 dla 50-bp, SRR003196 dla 76-bp)., Odczyty próbkowano w taki sposób, że trzy zestawy 2 M mają jednolity poziom błędu dla podstawy, obliczony na podstawie jakości Phred dla podstawy. Wszystkie odczyty przechodzą przez „catfilter” Maq.
Tabela 3 zmienna długość odczytu za pomocą Bowtie, Maq i SOAP
Bowtie jest uruchamiany zarówno w domyślnym trybie MAQ, jak i w trybie SOAP '-V 2′. Bowtie otrzymuje również opcję „- z”, aby upewnić się, że tylko indeks forward lub mirror jest rezydentny w pamięci w tym samym czasie. Maq v0.7.1 został użyty zamiast Maq v0. 6. 6 dla zestawu 76-bp, ponieważ v0. 6.,6 nie może wyrównać odczytów dłuższych niż 63 bp. SOAP nie był uruchamiany na zestawie 76-bp, ponieważ nie obsługuje odczytów dłuższych niż 60 bp.
wyniki pokazują, że algorytm Maq skaluje się lepiej ogólnie do dłuższych długości odczytu niż Bowtie czy SOAP. Jednak Bowtie w trybie SOAP-like '- v 2 ' również skaluje się bardzo dobrze. Bowtie w domyślnym trybie Maq-like skaluje się dobrze od odczytów 36-bp do 50-bp, ale jest znacznie wolniejszy dla odczytów 76-bp, chociaż nadal jest o rząd wielkości szybszy niż Maq.,
wydajność równoległa
wyrównanie może być równoległe poprzez dystrybucję odczytów między współbieżnymi wątkami wyszukiwania. Bowtie pozwala użytkownikowi określić żądaną liczbę wątków( opcja-p); Bowtie uruchamia określoną liczbę wątków za pomocą biblioteki pthreads. Wątki Bowtie synchronizują się ze sobą podczas pobierania odczytów, wysyłania wyników, przełączania między indeksami i wykonywania różnych form globalnej księgowości, takich jak oznaczanie odczytu jako „gotowe”., W przeciwnym razie wątki mogą działać równolegle, znacznie przyspieszając wyrównanie na komputerach z wieloma rdzeniami procesora. Obraz pamięci indeksu jest współdzielony przez wszystkie wątki, więc footprint nie zwiększa się znacząco, gdy używa się wielu wątków. Tabela 4 pokazuje wyniki wydajności dla uruchomienia Bowtie v0. 9. 6 na serwerze czterordzeniowym z jednym, dwoma i czterema wątkami.,
table 4 Bowtie równoległe wyrównanie wydajności
Budynek indeks
Bowtie wykorzystuje elastyczny algorytm indeksowania, które mogą być skonfigurowane do handlu off między wykorzystaniem pamięci i czasu pracy. Tabela 5 ilustruje ten kompromis podczas indeksowania całego ludzkiego genomu referencyjnego (NCBI build 36.3, contigs). Uruchamianie odbywało się na platformie serwerowej. Indekser był uruchamiany cztery razy z różnymi wyższymi limitami zużycia pamięci.,
table 5 Bowtie index building performance
Podane czasy są korzystnie porównywane z czasami wyrównywania w konkurencyjnych narzędziach, które wykonują indeksowanie podczas wyrównywania. Mniej niż 5 godzin jest wymagane dla Bowtie zarówno zbudować i zapytanie całego ludzkiego indeksu z 8.84 mln odczytów z projektu 1000 genomu (NCBI Short Read Archive: SRR001115) na serwerze, ponad sześciokrotnie szybciej niż równoważny MAQ uruchomić., Najniższy wiersz pokazuje, że Bowtie indexer, z odpowiednimi argumentami, jest wystarczająco wydajny, aby działać na typowej stacji roboczej z 2 GB PAMIĘCI RAM. Dodatkowy plik danych 1 (dodatkowe dyskusje 3 i 4) wyjaśnia algorytm i zawartość wynikowego indeksu.
oprogramowanie
Bowtie jest napisane w C++ i korzysta z biblioteki SeqAn . Konwerter do formatu mapowania Maq wykorzystuje kod z Maq.