Adrian Rospondek - W kierunku równoległej implementacji pakietu
Transkrypt
Adrian Rospondek - W kierunku równoległej implementacji pakietu
W kierunku równoległej implementacji pakietu T-Coffee Adrian Rospondek1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V [email protected] Streszczenie Artykuł ten prezentuje pakiet używany do porównywania sekwencji biologicznych oraz jego analiz˛e pod katem ˛ równoległej implementacji. 1 Wst˛ep T-Coffee to pakiet, który robi dopasowanie wielu sekwencji. Może on działać na dwóch rodzajach sekwencji biologicznych: DNA i białkach. Pakiet ten jest rozwijany w Centre National de la Recherche Scientifique we Francji pod kierownictwem Cedrica Notredame’a jako oprogramowanie darmowe o otwartym kodzie źródłowym. Najnowsza dost˛epna wersja ma numer 3.93 [12]. Dopasowanie wielu sekwencji genetycznych jest technika˛ cz˛esto używana˛ w procesie ich analizy, gdyż pomaga znaleźć odpowiedź na pytanie, czy dane sekwencje sa˛ ze soba˛ spokrewnione. Z kolei stwierdzenie pokrewieństwa stanowi wst˛ep do wielu innych, bardziej złożonych działań, takich jak np. rekonstrukcja filogenetyczna, identyfikacja wspólnych motywów, modelowanie struktur drugorz˛edowych czy przewidywanie pełnionych funkcji. Niestety zbudowanie dokładnego dopasowania może być trudne, przede wszystkim z dwóch powodów. Po pierwsze, problemem jest dobranie modelu oceny jakości, który byłby satysfakcjonujacy ˛ z biologicznego punktu widzenia. Po drugie, tworzenie najlepszego (lub optymalnego), według przyj˛etego kryterium, dopasowania przeważnie charakteryzuje bardzo duża złożoność obliczeniowa i dokładne rozwiazanie ˛ można uzyskać jedynie dla niewielkiej liczby spokrewnionych sekwencji. Obecnie analizuje si˛e zbiory zawierajace ˛ cz˛esto setki długich sekwencji, co znacznie wydłuża czas obliczeń. Można go jednak zredukować stosujac ˛ przetwarzanie równoległe. 2 Problem dopasowania wielu sekwencji Sekwencje można rozpatrywać jako słowa nad pewnym alfabetem Σ. W przypadku sekwencji nukleinowych zawiera on cztery litery i sa˛ to: {A,C, T, G} dla DNA oraz {A,C,U, G} dla RNA. Natomiast do zapisu sekwencji białkowych używa si˛e alfabetu dwudziestoliterowego, gdyż jest dwadzieścia aminokwasów tworzacych ˛ białka. 1 Spokrewnione sekwencje ewoluujac ˛ od wspólnego przodka ulegały procesowi mutacji i selekcji. Przejawami mutacji sa˛ substytucje zmieniajace ˛ jedna˛ liter˛e w inna˛ a także insercje i delecje, które odpowiednio wstawiaja˛ lub usuwaja˛ litery [1]. Rysunek 1 przedstawia przykładowe dopasowanie trzech sekwencji. Jak można zauważyć, dopasowanie polega na umieszczeniu wszystkich sekwencji jedna pod druga˛ i wprowadzeniu przerw (znak ’-’) w celu wyrównania ich długości. Reszty1 znajdujace ˛ si˛e w tej samej kolumnie sa˛ homologiczne w sensie strukturalnym i ewolucyjnym. W idealnym przypadku wszystkie one zajmuja˛ podobna˛ pozycj˛e w strukturze trójwymiarowej oraz pochodza˛ od wspólnego przodka. Nie zawsze jednak każda kolumna dopasowania zawiera wyłacznie ˛ homologiczne reszty. Jeżeli w jakiejś sekwencji brakuje odpowiedniej litery, na jej miejsce wstawiana jest przerwa. Przerwy odnosza˛ si˛e do insercji i delecji. AXO1 RAT NCA2 HUMAN NRG DROME ----DINVGDNLTLQCHASHDPTMDLTFTWTLDDFPIDF IVNATANLGQSVTLVCDAEGF--PEPTMSWTKDGEQ--I PQNYEVAAGQSATFRCNEAHDDTLEIEIDWWKDGQS--I ........G..+.+.C.+.........+.W........+ Rys. 1: Przykładowe dopasowanie fragmentów trzech sekwencji z rodziny immunoglobulin. W ostatniej linijce zaznaczono reszty identyczne (litera) lub konserwatywne (+). Generalnie rozróżnia si˛e dwa typy dopasowań: globalne - obejmujace ˛ pełny zakres sekwencji branych do analizy i lokalne, w których bierze si˛e pod uwag˛e tylko wyraźnie homologiczne fragmenty, jednocześnie ignorujac ˛ pozostałe cz˛eści sekwencji [2]. Oczywiście dla danego zbioru sekwencji można wygenerować wiele różnych dopasowań, spośród których należy wybrać jedno najlepsze. W tym celu do każdego z nich przypisuje si˛e wynik. Dopasowaniem optymalnym jest to, dla którego ten wynik jest najwyższy. 2.1 Model oceny W przypadku dwóch sekwencji wynik całego dopasowania jest suma˛ wartości przypisywanych każdej parze dopasowanych liter i każdej przerwie. Reszty identyczne oraz substytucje konserwatywne (zast˛epujace ˛ dana˛ reszt˛e inna˛ ale o podobnych właściwościach fizykochemicznych) sa˛ bardziej prawdopodobne i dlatego otrzymuja˛ wartości dodatnie. Z kolei zmiany niekonserwatywne (w tym przerwy) wyst˛epuja˛ rzadziej, wi˛ec przypisuje si˛e im wartości ujemne. Taka˛ funkcj˛e oceny można wyrazić nast˛epujacym ˛ wzorem: l SCORE(s1 , s2 ) = ∑ score(s1 (i), s2 (i)) + ∑ γ(g j ) (1) j i=1 gdzie s1 i s2 to dopasowane sekwencje o długości l, sx (i) to i − ta litera sekwencji sx a g j to długość j − te j przerwy. Żeby obliczyć wynik dopasowania musimy zdefiniować funkcje score i γ określajace ˛ zakładany przez nas model ewolucyjny. Pierwsza z nich opisuje prawdopodobieństwo wystapienia ˛ pary (a, b) wśród wszystkich możliwych par. Zazwyczaj wartości tej funkcji dla każdej kombinacji układa si˛e w symetryczna˛ macierz, zwana˛ macierza˛ substytucji. Przykład stanowia˛ zaprojektowane dla białek zbiory macierzy BLOSUM i PAM. Ponieważ 1 Terminem reszta określa si˛e pojedyncza˛ liter˛e. 2 powstały one w wyniku statystycznej analizy dużej liczby dopasowań, sa˛ zbyt ogólne, co czasami utrudnia ich używanie. Funkcja γ zwraca wartość kary dla danej przerwy o długości g. Może ona mieć postać liniowa: ˛ γ(g) = −g · q lub aficzna: ˛ γ(g) = −q − (g − 1) · w, gdzie q to kara za otwarcie przerwy a w to kara za jej przedłużanie. Zazwyczaj w jest mniejsze od q. Postać aficzna˛ stosuje si˛e, gdy przerwy o długości jednego i kilku znaków sa˛ prawie tak samo prawdopodobne. Model oceny dopasowania wielu sekwencji jest bardziej skomplikowany. Teoretycznie powinien on uwzgl˛edniać cała˛ wiedz˛e na temat struktur drugorz˛edowych oraz ewolucyjnej historii analizowanych sekwencji. Niestety w wi˛ekszości przypadków trzeba zastosować pewne uproszczenia, wynikajace ˛ z braku tych informacji. Zakładajac, ˛ że poszczególne kolumny dopasowania sa˛ niezależne, jego całkowity wynik można zapisać tak: l SCORE(A) = ∑ score(Ai ) + Γ (2) i=1 gdzie Ai to i − ta kolumna dopasowania A a Γ to pewna ogólna funkcja wartościujaca ˛ przerwy. Kolumny ocenia si˛e za pomoca˛ tzw. sumy par, zdefiniowanej jako suma wartości substytucji dla każdej pary reszt [3]. 2.2 Poszukiwanie dopasowania Rozpatrujac ˛ problem dopasowania sekwencji, trzeba podkreślić konieczność dysponowania algorytmem na znalezienie optymalnego, według przyj˛etego przez nas kryterium oceny, rozwiazania. ˛ Dopasowanie dwóch sekwencji tworzy si˛e za pomoca˛ techniki zwanej programowaniem dynamicznym. Główna˛ idea˛ tego podejścia jest budowanie optymalnego dopasowania na podstawie optymalnych dopasowań poprzednich subsekwencji [4]. Jako modelu oceny używa si˛e macierzy substytucji i kar za przerwy. Oczywiście technik˛e ta˛ można uogólnić, jednak dla wi˛ekszej liczby sekwencji okazuje si˛e być bardzo niepraktyczna ze wzgl˛edu na duża˛ złożoność. Wprawdzie istnieje zmodyfikowany algorytm redukujacy ˛ ilość niezb˛ednych obliczeń [5], ale potrafi on dopasować nie wi˛ecej niż dziesi˛eć blisko spokrewnionych sekwencji [6]. Najpowszechniej używanym i zarazem najprostszym sposobem poradzenia sobie ze zbiorem sekwencji jest heurystyczna metoda, oparta na strategii progresywnego dopasowania [7]. Polega ona na budowaniu końcowego rezultatu krok po kroku, według pewnego ustalonego porzadku. ˛ Na poczatku, ˛ przy pomocy standardowego podejścia, dopasowuje si˛e dwie najmniej różniace ˛ si˛e sekwencje. Nast˛epnie do tego dopasowania stopniowo dokładane sa˛ pozostałe. Kolejność w jakiej si˛e to odbywa, zwykle opisuje tzw. drzewo przewodnie (ang. guide tree) b˛edace ˛ prostym przybliżeniem rzeczywistego drzewa filogenetycznego2 . Metoda ta ma jednak wad˛e wynikajac ˛ a˛ z faktu, że pośrednie dopasowania nie moga˛ być modyfikowane, nawet jeśli koliduja˛ z dodanymi później sekwencjami. Popełnione we wczesnym etapie bł˛edy odbijaja˛ si˛e na jakości końcowego dopasowania. 2 Drzewo filogenetyczne reprezentuje relacj˛e pomi˛edzy sekwencjami wynikajac ˛ a˛ z ich ewolucyjnej hi- storii. 3 3 Algorytm T-Coffee Ogólnie metoda T-Coffee opiera si˛e na progresywnej strategii budowania dopasowania wielu sekwencji, jednak unika najpoważniejszej wady tego podejścia (opisanej w rozdziale 2.2). Najpierw robi dopasowanie dla każdej możliwej pary sekwencji ze zbioru wejściowego i uzyskane ta˛ droga˛ informacje gromadzi w bibliotece. Nast˛epnie biblioteka ta jest wykorzystywana podczas tworzenia ostatecznego dopasowania. W ten sposób wyniki pośrednie powstaja˛ w oparciu o wiedz˛e na temat wszystkich sekwencji a nie tylko tych, które sa˛ analizowane na danym etapie. Skutkiem tego jest znacznie mniejsze prawdopodobieństwo wystapienia ˛ bł˛edu. Inna˛ charakterystyczna˛ cecha˛ T-Coffee jest zdolność łaczenia ˛ informacji pochodza˛ cych z różnych źródeł. Elastyczność ta˛ uzyskano dzi˛eki bibliotece, stanowiacej ˛ niejako inerfejs pomi˛edzy algorytmem progresywnego dopasowania a dowolna˛ metoda˛ porównywania sekwencji. Najcz˛eściej bibliotek˛e tworzy si˛e na podstawie globalnych i lokalnych podwójnych dopasowań. W specjalnym trybie, używanym wyłacznie ˛ do analizy białek, dodatkowo uwzgl˛ednia si˛e dane o ich trójwymiarowej strukturze. Tryb ten nazwano 3DCoffee i to właśnie na nim skupimy si˛e w dalszej cz˛eści artykułu. Jak wynika z rysunku 2, metoda T-Coffee składa si˛e z dwóch faz, którymi sa: ˛ tworzenie biblioteki i budowanie dopasowania. TWORZENIE BIBLIOTEK TWORZENIE BIBLIOTEKI PREKOMPILOWANYCH PODSTAWOWEJ 1 FAZA ROZSZERZANIE BIBLIOTEKI 2 FAZA PROGRESYWNE DOPASOWANIE SEKWENCJI BUDOWANIE DRZEWA PRZEWODNIEGO Rys. 2: Ogólny schemat metody T-Coffee. 3.1 Tworzenie biblioteki Biblioteki prekompilowane Domyślnie T-Coffee tworzy dwie prekompilowane biblioteki. Obie zawieraja˛ informacje 2 o każdej z n 2−n par sekwencji, gdzie n jest ich liczba.˛ Pierwsza to zbiór dopasowań globalnych. Druga przechowuje dziesi˛eć najlepiej ocenionych, nie nakładajacych ˛ si˛e na siebie, lokalnych dopasowań poszczególnych par sekwencji. W trybie 3D-Coffee procedura jest troch˛e inna. Oprócz biblioteki dopasowań globalnych, tworzonych przy użyciu programowania dynamicznego, sa˛ jeszcze dwie, zawierajace ˛ dopasowania par sekwencji białkowych bazujace ˛ na danych o ich strukturze przestrzennej. W pierwszej z nich sa˛ dopasowania budowane programem SAP, który generuje 4 wyniki na podstawie superpozycji dwóch struktur [9]. Druga to zbiór dopasowań utworzonych przez pakiet Fugue, wykorzystujacy ˛ struktur˛e 3D do obliczenia zależnej od pozycji macierzy substytucji [10]. SAP używany jest, gdy dane strukturalne dost˛epne sa˛ dla obu sekwencji, Fugue – gdy tylko dla jednej z nich. Każde dopasowanie reprezentowane jest w bibliotece jako lista sparowanych reszt. Do poszczególnych par przypisane sa˛ wagi równe procentowej identyczności sekwencji, z których dopasowania pochodza.˛ Biblioteka podstawowa Kolejnym krokiem jest połaczenie ˛ wszystkich prekompilowanych bibliotekach w jedna.˛ Osiaga ˛ si˛e to poprzez proste dodawanie. Jeżeli któraś para reszt wyst˛epuje wi˛ecej niż raz, w wyjściowej bibliotece ma ona wag˛e równa˛ sumie wag, jakie otrzymała do tej pory. Rozszerzanie biblioteki Biblioteka podstawowa może być bezpośrednio użyta podczas budowy dopasowania. Jednak aby zwi˛ekszyć wartość informacji w niej zawartej, poddaje si˛e ja˛ procesowi rozszerzania. Polega on na sprawdzaniu trójek reszt. Każda˛ dopasowana˛ par˛e liter sprawdza si˛e pod katem ˛ zgodności z pozostałymi literami ze wszystkich sekwencji. Majac ˛ par˛e reszt (r1 , r2 ) i wag˛e w12 przypisana˛ im w bibliotece podstawowej oraz reszt˛e r3 bada si˛e, czy wyst˛epuja˛ dopasowania r1 z r3 i r3 z r2 . Jeżeli taka sytuacja ma miejsce, to wartość w12 jest modyfikowana tak, że w12 = w12 + min(w13 , w32 ). Całkowite rozszerzenie wymaga sprawdzenia wszystkich możliwych trójek (ri , r j , rk ). Po zakończeniu tej operacji, każda waga odzwierciedla podobieństwo sekwencji, z których pochodzi dana para liter i jej zgodność z pozostałymi parami w bibliotece podstawowej. 3.2 Budowanie dopasowania Jak już wspomniano, T-Coffee generuje ostateczne dopasowanie używajac ˛ strategii progresywnej. Najpierw jednak oblicza macierz odległości, zawierajac ˛ a˛ przybliżone wartości ewolucyjnych dystansów mi˛edzy sekwencjami. Nast˛epnie wykorzystuje ja˛ do utworzenia drzewa przewodniego. Zgodnie z wyznaczonym przez nie porzadkiem, ˛ sekwencje sa˛ dopasowywane za pomoca˛ zwykłego programowania dynamicznego, z ta˛ różnica,˛ że zamiast macierzy substytucji i kar za przerwy używa si˛e wag z biblioteki rozszerzonej. W ten sposób uzyskano zależny od pozycji reszt w sekwencjach model oceny. 4 Analiza T-Coffee Teraz przyjrzymy si˛e pakietowi T-Coffee pod katem ˛ jego równoległej implementacji. Analizujac ˛ algorytm, a przede wszystkim kod źródłowy programu, można w nim wyodr˛ebnić kilka podzadań, które przedstawiono na rysunku 3. Zanim T-Coffee zacznie generować biblioteki prekompilowane, sprawdza dost˛epność danych strukturalnych dla każdej sekwencji ze zbioru wejściowego. W tym celu przeszukuje baz˛e RCSB [13] i pobiera z niej potrzebne informacje w postaci plików PDB. 5 T0 T2 T1 T3 T4 T5 T6 T7 T8 T9 T10 Rys. 3: Dekompozycja pakietu T-Coffee na podzadania z uwzgl˛ednieniem ich zależności. T0 – inicjalizacja, T1 – wczytywanie danych, T2 – pobieranie plików PDB, T3 – preprocesing, T4 – biblioteka “globalna”, T5 – biblioteka “SAP”, T6 – biblioteka “Fugue”, T7 – biblioteka rozszerzona, T8 – macierz dystansów, T9 – drzewo, T10 – ostateczne dopasowanie. W zależności od liczby sekwencji i przepustowości łacza ˛ może to potrwać od kilku do kilkudziesi˛eciu sekund. Wyprodukowanie biblioteki “globalnej” i biblioteki “SAP” wymaga obliczenia odpon2 −n n2 −n wiednio 1 2 1 i 2 2 2 podwójnych dopasowań, gdzie n1 to licza wszystkich sekwencji a n2 to liczba sekwencji z dost˛epna˛ struktura˛ 3D. W wi˛ekszości przypadków n2 b˛edzie mniejsze od n1 . W celu utworzenia trzeciej biblioteki T-Coffee korzysta z oficjalnego serwera Fugue [14], do którego wysyła pary sekwencja – struktura aby otrzymać gotowe dopasowanie. Proces ten jest czasochłonny, gdyż cała biblioteka wymaga (n1 − n2 ) · n2 żadań ˛ a każde z nich może zajać ˛ od kilkudziesi˛eciu sekund do kilku minut. n2 −n Obliczajac ˛ macierz dystansów trzeba dopasować 1 2 1 par sekwencji. Zadania T4 , T5 i T8 składaja˛ si˛e z niezależnych podwójnych dopasowań co bardzo ułatwia ich zrównoleglenie. Jedyna kwestia jaka˛ trzeba wziaść ˛ pod uwag˛e to staranne rozdzielenie obliczeń. Używana do tworzenia drzewa przewodniego metoda przyłaczania ˛ sasiadów ˛ [8] jest szybka, dlatego zadanie T9 zajmuje niewielki procent całkowitego czasu wykonania. Tak wi˛ec przyspieszenie uzyskane z jego paralelizacji byłoby nieznaczne. 6 Chociaż progresywne dopasowanie można zaimplementować w sposób równoległy, trudno jest osiagn ˛ ać ˛ satysfakcjonujace ˛ zrównoważenie obciażenia. ˛ Dopasowania odpowiadajace ˛ w˛ezłom z tego samego poziomu nie zależa˛ od siebie, wi˛ec moga˛ być przydzielone do oddzielnych procesorów. Jednak im bliżej korzenia tym mniej w˛ezłów, co sprawia, że stosunek liczby sekwencji do liczby jednostek przetwarzajacych ˛ maleje. 5 Podsumowanie Wymienione powyżej cechy pakietu T-Coffee ułatwiaja˛ jego wydajna˛ paralelizacj˛e. Planuje si˛e, że wersja równoległa b˛edzie przeznaczona na architektur˛e z pami˛ecia˛ rozproszona˛ bazujac ˛ a˛ na klastrze komputerów klasy PC i zaprogramowana przy użyciu standardu MPI [11] w oparciu o model master–worker. Master zajmie si˛e wczytaniem i wst˛epnym przetworzeniem danych (sekwencji i struktur) oraz rozesłaniem ich do wszystkich workerów. Nast˛epnie zbierze wygenerowane przez nich biblioteki i złaczy ˛ w jedna,˛ która˛ podda procesowi rozszerzania. Master b˛edzie również odpowiedzialny za wygenerowanie drzewa przewodniego i utworzenie dopasowań zwiazanych ˛ z w˛ezłami na górnych poziomach tego drzewa. Dopasowania z dolnych poziomów zostana˛ przydzielone workerom. B˛eda˛ one także uczestniczyć w obliczaniu macierzy dystansów. Literatura [1] M. Kimura. The Neutral Theory of Molecular Evolution. Cambridge Univ. Press, 1983. [2] M. S. Waterman. Introduction to Computational Biology. Chapman & Hall, 1995. [3] S. F. Altschul, D. J. Lipman. Trees, stars and multiple biological sequence alignment. SIAM J. Appl. Math., 49: 197–209, 1989. [4] W. Miller, W. R. Pearson. Dynamic programming algorithms for biological sequence comparison. Methods Enzymol., 210: 575–601, 1992. [5] H. Carrillo, D. J. Lipman. The multiple sequence alignment problem in biology. SIAM J. Appl. Math., 48: 1073–1082, 1988. [6] S. F. Altschul, J. D. Kececioglu, D. J. Lipman. A tool for multiple sequence alignment. In Proc. Natl. Acad. Sci. USA, 86: 4412–4415, 1989. [7] B. Hesper, P. Hogeweg. The alignment of sets of sequences and the construction of phylogenetic trees: an integrated method. J. Mol. Biol., 20(2): 175–186, 1984. [8] M. Nei, N. Saitou. The neighbor-joining method: a new method for reconstructing phylogenetic trees. Mol. Biol. Evol., 4(4): 406–425, 1987. [9] C. A. Orengo, W. R. Taylor. Protein structure alignment. J. Mol. Biol., 208: 1–22, 1989. 7 [10] T. L. Blundell, K. Mizuguchi, J. Shi. FUGUE: sequence – structure homology recognition using environment-specific substitution tables and structure-dependent gap penalties. J. Mol. Biol., 310: 243–257, 2001. [11] W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir. MPI: The Complete Reference, volume 2. The MIT Press, 1998. [12] Strona domowa pakietu T-Coffee. http://igs-server.cnrs-mrs.fr/∼cnotred/, 2006. [13] RCSB. http://www.rcsb.org/pdb/cgi/export.cgi/, 2006. [14] Serwer Fugue. http://www-cryst.bioc.cam.ac.uk/cgi-bin/cgiwrap/kenji/fugue/align.cgi/, 2006. 8