rys. 7
dynamiczna tabela programowania używana w algorytmie 2 do przetwarzania wyodrębnionych memów na Rys. 3b. komórki i I j reprezentują wartość \(s_{I}^{j}\). Puste komórki nie są oceniane W Φ2. Ocena komórek ze znakiem krzyżowym jest pomijana w Φ2A. wartość początkowa Sj jest obliczana w Φ1. Wartość końcowa Sj i jej źródło (co maksymalizuje Sj) są podświetlane dla każdego wiersza. Najwyższy Sj (S13) to wynik wyrównania., M13 jest ostatnim MEM w wyrównaniu, a mem przed tym to MW=M3. Ponieważ W = -1, M3 jest pierwszym MEM w wyrównaniu. System punktacji dla tego wyrównania to Rm=2, Px = 3, Po = 4 i Pe=1
rys. 8
wartości pośrednie do obliczenia \(s_{I}^{j}\) na Rys. 7. Zauważ, że Sij na tym rysunku odnosi się do \(s_ {i}^{j}\)
Φ1: punktuje każdy MEM dla wszystkich jego pasujących symboli., Zauważ, że w Mj są symbole pasujące do Lj. Sj oznacza najwyższy wynik wyrównania dla wyrównania kończącego się na Mj. Inicjowanie Sj w tym kroku jest podobne do obliczania wyniku częściowego wyrównania, gdy tylko Mj jest uwzględniony w wyrównaniu. W służy do backtrackingu. Wartość -1 wskazuje, że obecny Sj jest uzyskiwany przez uwzględnienie samego Mj w wyrównaniu.
Φ2: Obliczanie Sj dla każdego MEM (Mj)., Aby obliczyć Sj, dla każdego MEM Mi, gdzie mi pojawia się przed Mj na liście, algorytm dodaje Mj do wyrównania kończącego się na Mi (rozszerzając wcześniej znalezione wyrównania) i szuka rozszerzenia, które maksymalizuje Sj (rozwiązując większy podproblem używając wcześniej rozwiązanych podproblemów).
Φ2A: pomija rozszerzenie, gdy nie jest to możliwe. Jeśli ETi>ETj, to Mi zawiera część sekwencji docelowej, która jest poza wyrównaniem kończącym się na Mj i rozszerzenie nie jest możliwe. Jeśli EQi = EQj lub ETi = ETj lub SQI≥SQJ lub STi≥STj, to jeden z MEMs całkowicie pokrywa się z drugim MEM., W tym przypadku Mi i Mj nie mogą być w zgodzie ze sobą.
Φ2B: obliczanie długości nakładania się mi i Mj. Jeśli \({MO} _ {i}^{J}\) jest mniejsze lub równe zeru, to nie ma na siebie nałożenia.
Φ2C: zachowanie kopii Mj przed wykluczeniem nakładania się.
Φ2D: jeśli istnieje nakładanie się, z wyłączeniem nakładania się z Mj
Φ2E: Obliczanie położenia końcowego Mj w T i Q.
Φ2F: Obliczanie odległości (liczby symboli) między mi i Mj w T i Q.
Φ2G: Obliczanie liczby niedopasowań i odstępów między Mi i MJ.,
Φ2H: Obliczanie kary za niedopasowanie i luki między Mi i Mj (\(p_ {I}^{j}\)). Jeśli istnieje luka, odejmuje się tylko jedną karę otwartą luki.
Φ2I: Obliczanie wyniku wyrównania \(\left (S_{I}^{J}\right)\), gdy MJ jest dodawane do wyrównania kończącego się na Mi. Wynik dla wszystkich pasujących symboli w Mj (Lj×Rm) jest dodawany do wyniku wyrównania dla wyrównania kończącego się na Mi (Si). Następnie odejmuje się karę za luki i niedopasowania między Mi i Mj\(\left (p_{I}^{J}\right)\).,
Φ2J: jeśli rozszerzenie Mj do wyrównania kończącego się w Mi spowoduje wynik \(\left (S_ {I}^{J} \ right)\) wyższy niż bieżący wynik dla Mj (Sj), to nowy wynik jest przechowywany w SJ. Również W jest ustawione na i, aby śledzić Mi, które maksymalizują wynik dla Mj.
Φ2K: przywrócenie wartości Mj przed wykluczeniem, aby Mj mógł być używany w innych rozszerzeniach wyrównania.
Φ3: Szukam MEM z najwyższym Sj. Ten MEM jest ostatnim MEM w wyrównaniu (Me)., Najwyższy wynik (Se) jest zwracany jako S, który jest najwyższym wynikiem wyrównania dla danej sekwencji. Indeks MEM, który maksymalizuje Sj jest przechowywany w e, aby rozpocząć śledzenie ode mnie.
Φ4: w wyrównaniu, najbliższy poprzedni MEM dla mnie jest ten, który maksymalizuje wynik wyrównania dla mnie. Indeks takiego Mem jest przechowywany w W. w rezultacie iteracja f←w odwiedza indeks wszystkich memów w wyrównaniu. Gdy W jest równe -1, Mf jest pierwszym MEM w wyrównaniu i iteracja jest zatrzymywana.,
w naszym algorytmie nie penalizujemy niedopasowań i luk przed pierwszym MEM i po ostatnim MEM w wyrównaniu. Skutkuje to lokalnym algorytmem wyrównywania. Biorąc pod uwagę te kary, algorytm generuje globalne wyrównanie (dodatkowy plik 1: Sekcja V).
równanie do obliczenia \(p_{I}^{j}\) W Φ2H algorytmu 2 zakłada, że nie ma pasującego symbolu między T i Q w obszarze między Mi i Mj (wszystkie symbole są liczone jako niedopasowania lub luki)., Chociaż to założenie nie jest prawdziwe dla wszystkich Mi, zawsze jest prawdziwe dla Mi, które prowadzi do maksimum \(s_{i}^{j}\), które unieważnia efekt błędnego założenia dla innych Mi. Jako dowód, Załóżmy, że istnieje pasujący symbol w obszarze między Mi i Mj. Pasującym symbolem będzie MEM (Mk). Mk jest już rozszerzony do wyrównania kończącego się na Mi. Tak więc, przy przedłużaniu Mj do Mk uzyskuje się wyższy wynik w porównaniu z przedłużaniem Mj do Mi.
Łańcuchowanie nasion colinear, jak omówiono w były szeroko stosowane w wyrównaniu dużych sekwencji, tj. wyrównanie genomu do genomu., Został on również użyty do identyfikacji regionów kandydujących do odczytu ze względu na zestaw MEMs w BWA. Algorytmy łańcuchowe z punktacją są podobne do zaproponowanego przez nas algorytmu programowania dynamicznego (DP-MEM). Istnieją jednak różnice, które sprawiają, że DP-MEM nadaje się do parowego wyrównania krótkich sekwencji. DP-MEM bierze pod uwagę, że wszystkie MEMs w pewnej wielkości luki są dostarczane na wejściu i optymalizuje liczbę iteracji w algorytmie. DP-MEM wdraża również podejście heurystyczne, aby zrekompensować efekt krótkich memów usuniętych z listy wejściowej, wynikających z przerw między memami.,
Optymalizacja
biorąc pod uwagę sekwencje o długości n, algorytm do wyodrębniania memów (podany w sekcji „ekstrakcja MEM”) wymaga operacji 2(N−1) shift i 2n−1 na wektorach bitowych (każda działa na \(\lceil \frac {n}{32} \rceil \) słów maszynowych), które skutkują algorytmem o złożoności O(n2) do wytworzenia wektorów bitowych krawędzi dla danej pary sekwencji. Złożoność funkcji, która oblicza pozycjonowanie MEMs z wektora bitowego krawędzi i sortuje je na podstawie korektora, nie została jeszcze dodana. Ponadto, jeśli M MEMs są ekstrahowane, Φ2 algorytmu 2 (DP-MEM) ma złożoność O (m2)., Biorąc pod uwagę złożoność ekstrakcji MEM i DP – mem, mem-Align jest znacznie wolniejszy od dostępnych algorytmów wyrównywania. Aby przyspieszyć proces, przedstawiamy kilka optymalizacji dla MEM-Align, które osiąga szybszy czas pracy poprzez rezygnację z dokładności. Z drugiej strony Wprowadzamy metody poprawy dokładności przy minimalnej utracie wydajności.
wyrównanie pasmowe
wyrównanie pasmowe jest znaną metodą heurystyczną przyspieszającą proces wyrównywania. Technika ta ogranicza wzór luk w wyrównaniu(dodatkowy plik 1: Sekcja VI)., W związku z tym, jeśli wyrównanie między dwoma sekwencjami nie jest zgodne z tym wzorem, algorytm nie zidentyfikuje wyrównania. W tradycyjnym programowaniu dynamicznym wyrównanie uzyskuje się po obliczeniu wartości wszystkich komórek w tabeli. Jednak przy optymalizacji wyrównania pasmowego oceniane są tylko komórki na średnicy i blisko przekątnej. gl jest szerokością pasma w pasmowym wyrównaniu, gdzie komórki dalej niż gl do średnicy nie są oceniane. Ciemniejsze komórki na Rys. 1 show the case where gl=1.,
w przeciwieństwie do tradycyjnego dynamicznego podejścia do programowania, mem-Align nie ma podobnej tabeli do zastosowania wyrównania pasmowego. Jednak okazało się, że możemy symulować ten sam efekt, ograniczając liczbę operacji zmiany w procesie ekstrakcji MEM. Na przykład, jeśli przesuniemy sekwencję zapytań do GL w prawo i w lewo, osiągniemy wyrównanie pasmowe z pasmem gl. Banded-alignment zmniejsza złożoność ekstrakcji MEM Z O(n2) do O(N. (2GL+1)), Gdzie gl jest małą i stałą wartością. Tak więc złożoność ekstrakcji MEM jest O (n), gdy stosuje się wyrównanie pasmowe., Ponadto, przy wspomnianym wyrównaniu pasmowym, prawdopodobne jest, że wydobywa się mniej memów, co przyspiesza kolejne kroki algorytmu.
krótkie usuwanie MEM
zauważyliśmy, że większość wyodrębnionych Mem jest krótka i jest wynikiem losowego dopasowania symboli. Aby przyspieszyć mem-Align, MEMs krótsze niż sl są filtrowane podczas procesu ekstrakcji MEM. Zmniejsza to liczbę memów do wyodrębnienia i przetworzenia (następnie przyspiesza algorytm). Filtrowanie krótkich MEM odbywa się poprzez rozszerzenie algorytmu 1 o zestaw operacji przesunięć i bitów (dodatkowy plik 1: Sekcja VII).,
z drugiej strony istnieją rzadkie przypadki, w których krótkie memy są częścią wyrównania; na przykład pasujący symbol otoczony niedopasowaniami. Bez posiadania wszystkich memów na liście wejściowej, DP-MEM nie jest w stanie znaleźć takiego samego wyrównania, jakie znajduje, gdy wszystkie memy istnieją na liście wejściowej. Aby zrekompensować utratę krótkich memów na wejściu, modyfikujemy Φ2H DP-MEM, aby rozważyć możliwość krótkich dopasowań między memami (dodatkowy plik 1: Sekcja VIII).
mogą wystąpić trudniejsze przypadki, w których w wyrównaniu istnieje wiele krótkich memów między dwoma memami (patrz Rys. 9)., Jedynym sposobem poprawnej identyfikacji wyniku dla obszaru między Mi i Mj w Φ2H jest zastosowanie globalnego wyrównania do tego regionu. Jednak Φ2H jest częstą operacją i powinien pozostać szybki. W związku z tym postanowiliśmy częściowo rozwiązać problem poprzez ograniczenie możliwych przypadków (metoda heurystyczna).
rys., 9
przykład, który pokazuje wiele krótkich MEM w małym obszarze między Mi i Mj w wyrównaniu
Jeśli są luki w obszarze między Mi i Mj MJ, Zakładamy, że jest tylko jedna ciągła szczelina albo na lewym lub prawym końcu obszaru. Następnie możliwe są tylko dwa wyrównania dla obszaru., Liczba pasujących symboli jest liczona w obu przypadkach w sposób sekwencyjny, a ten, który skutkuje maksymalnymi meczami, jest brany jako liczba meczów między Mi i Mj (dodatkowy plik 1: Sekcja IX). Porównywanie sekwencyjne jest kosztowną operacją i opracowujemy metodę, aby uniknąć porównywania sekwencyjnego, gdy jest to możliwe (dodatkowy plik 1: Sekcja X).
każdy inny przypadek, który nie pasuje do powyższego założenia, skutkuje wyrównaniem z niższym wynikiem., Biorąc jednak pod uwagę niski odsetek luk i niedopasowań, możliwość wystąpienia wielu luk i niedopasowań na niewielkim obszarze jest niska.
rozszerzenie efektywnego wyrównania
w Φ2 DP-MEM, Mj rozszerza wszystkie wyrównania, które kończą się {M1…Mj−1} (jeśli to możliwe). Jednak dla każdego Mj istnieje mniejszy podzbiór Ωj⊆{M1…Mj-1} taki, że rozszerzając Mj na wszystkie wyrównania kończące się Mi ω Ωj, wyrównanie kończące się Mj jest znalezione (Eq. 2). Innymi słowy, byłoby mniej \(s_{i}^{j}\) do oceny. Definicja zbioru Ωj i dowód Eq. 2 znajdują się w pliku dodatkowym 1: Sekcja XI., Definicja Ωj ma wpływ przy zastosowaniu optymalizacji usuwania krótkich MEM (dodatkowy plik 1: Sekcja XII).
$$ \max\limits_{M_{i} \in \Omega_{j}}{s_{I}^{j}} = \max\limits_{1 \leq i \leq j-1}{S_{I}^{j}} $$
(2)
wyrównanie Hybrydowe
aby zachować dokładność algorytmu, postanowił wykorzystać metodę hybrydową będącą połączeniem algorytmu mem-alignment i Smitha-Watermana. Definiujemy trzy przypadki, w których mem-Align może być niedokładne., Jeśli wyrównanie pary sekwencji spadnie do jednego z tych przypadków, używamy algorytmu Smitha-Watermana do wyrównania sekwencji. Te przypadki to:
gdy sekwencje są powtarzalne, a liczba wyodrębnionych memów przekracza próg TM. Okazało się, że mem-Align może powodować niedokładne wyrównanie podczas wyrównywania powtarzalnych sekwencji. Odpowiednia wartość TM zmniejsza szansę zgłaszania niedokładnego dostosowania z znikomym wzrostem średniego czasu przetwarzania.,
gdy obliczony wynik wyrównania dla wyrównania wygenerowanego przez mem-Align jest niższy niż próg TS. Ten przypadek najczęściej występuje, gdy występuje luka w wyrównaniu, której nie można zidentyfikować z powodu wyrównania pasmowego.
gdy nie istnieje żaden MEM dłuższy niż sl do wyodrębnienia (rzadki przypadek)., Jeśli sl jest ustawiona na wysoką wartość, a podobieństwo między sekwencjami jest niskie,
chociaż wysyłanie par sekwencji do zewnętrznego algorytmu powoduje dodatkowe obliczenia, liczba sekwencji wysłanych do zewnętrznego algorytmu pozostaje niewielka, jeśli odpowiednie wartości zostaną wybrane dla TM I TS.
pomijanie odległych memów
gdy odległość między Mi i Mj jest duża, nie jest prawdopodobne, że Mi i Mj będą sąsiadującymi memami w wyrównaniu., Dlatego algorytm pomija rozszerzenie, jeśli odległość między Mi i Mj jest dłuższa niż próg TD(dalsze zmniejszenie liczby \(s_{i}^{j}\), które ma być oceniane). Ta optymalizacja nieznacznie poprawia wydajność przy znikomym wpływie ubocznym na dokładność.