W kierunku równoległej implementacji pakietu T-Coffee Adrian Rospondek 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V a.rospondek@poczta.fm Streszczenie Artykuł ten prezentuje pakiet używany do porównywania sekwencji biologicznych oraz jego analizę pod kątem równoległej implementacji. 1 Wstęp 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ępna wersja ma numer 3.93 [1]. Dopasowanie wielu sekwencji genetycznych jest techniką często używaną w procesie ich analizy, gdyż pomaga znaleźć odpowiedź na pytanie, czy dane sekwencje są ze sobą spokrewnione. Z kolei stwierdzenie pokrewieństwa stanowi wstęp do wielu innych, bardziej złożonych działań, takich jak np. rekonstrukcja filogenetyczna, identyfikacja wspólnych motywów, modelowanie struktur drugorzędowych 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 satysfakcjonujący z biologicznego punktu widzenia. Po drugie, tworzenie najlepszego (lub optymalnego), według przyjętego kryterium, dopasowania przeważnie charakteryzuje bardzo duża złożoność obliczeniowa i dokładne rozwiązanie można uzyskać jedynie dla niewielkiej liczby spokrewnionych sekwencji. Obecnie analizuje się zbiory zawierające często setki długich sekwencji, co znacznie wydłuża czas obliczeń. Można go jednak zredukować stosując przetwarzanie równoległe. Problem dopasowania wielu sekwencji Sekwencje można rozpatrywać jako słowa nad pewnym alfabetem Σ. W przypadku sekwencji nukleinowych zawiera on cztery litery i są to: {A,C,T,G} dla DNA oraz {A,C,U, G} dla RNA. Natomiast do zapisu sekwencji białkowych używa się alfabetu dwudziestoliterowego, gdyż jest dwadzieścia aminokwasów tworzących białka. 1
Spokrewnione sekwencje ewoluując od wspólnego przodka ulegały procesowi mutacji i selekcji. Przejawami mutacji są substytucje zmieniające jedną literę w inną a także insercje i delecje, które odpowiednio wstawiają lub usuwają litery [1]. Rysunek 1 przedstawia przykładowe dopasowanie trzech sekwencji. Jak można zauważyć, dopasowanie polega na umieszczeniu wszystkich sekwencji jedna pod drugą i wprowadzeniu przerw (znak - ) w celu wyrównania ich długości. Reszty 1 znajdujące się w tej samej kolumnie są homologiczne w sensie strukturalnym i ewolucyjnym. W idealnym przypadku wszystkie one zajmują podobną pozycję w strukturze trójwymiarowej oraz pochodzą od wspólnego przodka. Nie zawsze jednak każda kolumna dopasowania zawiera wyłącznie homologiczne reszty. Jeżeli w jakiejś sekwencji brakuje odpowiedniej litery, na jej miejsce wstawiana jest przerwa. Przerwy odnoszą się do insercji i delecji. AXO1 RAT NCA 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ę dwa typy dopasowań: globalne - obejmujące pełny zakres sekwencji branych do analizy i lokalne, w których bierze się pod uwagę tylko wyraźnie homologiczne fragmenty, jednocześnie ignorując pozostałe części sekwencji []. 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ę wynik. Dopasowaniem optymalnym jest to, dla którego ten wynik jest najwyższy..1 Model oceny W przypadku dwóch sekwencji wynik całego dopasowania jest sumą wartości przypisywanych każdej parze dopasowanych liter i każdej przerwie. Reszty identyczne oraz substytucje konserwatywne (zastępujące daną resztę inną ale o podobnych właściwościach fizykochemicznych) są bardziej prawdopodobne i dlatego otrzymują wartości dodatnie. Z kolei zmiany niekonserwatywne (w tym przerwy) występują rzadziej, więc przypisuje się im wartości ujemne. Taką funkcję oceny można wyrazić następującym wzorem: SCORE(s 1,s ) = l i=1 score(s 1 (i),s (i)) + γ(g j ) (1) j gdzie s 1 i s to dopasowane sekwencje o długości l, s x (i) to i ta litera sekwencji s x a g j to długość j te j przerwy. Żeby obliczyć wynik dopasowania musimy zdefiniować funkcje score i γ określające zakładany przez nas model ewolucyjny. Pierwsza z nich opisuje prawdopodobieństwo wystąpienia pary (a, b) wśród wszystkich możliwych par. Zazwyczaj wartości tej funkcji dla każdej kombinacji układa się w symetryczną macierz, zwaną macierza substytucji. Przykład stanowią zaprojektowane dla białek zbiory macierzy BLOSUM i PAM. Ponieważ 1 Terminem reszta określa się pojedynczą literę.
powstały one w wyniku statystycznej analizy dużej liczby dopasowań, są 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ć liniową: γ(g) = g q lub aficzną: γ(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ć aficzną stosuje się, gdy przerwy o długości jednego i kilku znaków są prawie tak samo prawdopodobne. Model oceny dopasowania wielu sekwencji jest bardziej skomplikowany. Teoretycznie powinien on uwzględniać całą wiedzę na temat struktur drugorzędowych oraz ewolucyjnej historii analizowanych sekwencji. Niestety w większości przypadków trzeba zastosować pewne uproszczenia, wynikające z braku tych informacji. Zakładając, że poszczególne kolumny dopasowania są niezależne, jego całkowity wynik można zapisać tak: SCORE(A) = l i=1 score(a i ) + Γ () gdzie A i to i ta kolumna dopasowania A a Γ to pewna ogólna funkcja wartościująca przerwy. Kolumny ocenia się za pomocą tzw. sumy par, zdefiniowanej jako suma wartości substytucji dla każdej pary reszt [3].. Poszukiwanie dopasowania Rozpatrując problem dopasowania sekwencji, trzeba podkreślić konieczność dysponowania algorytmem na znalezienie optymalnego, według przyjętego przez nas kryterium oceny, rozwiązania. Dopasowanie dwóch sekwencji tworzy się za pomocą techniki zwanej programowaniem dynamicznym. Główną ideą tego podejścia jest budowanie optymalnego dopasowania na podstawie optymalnych dopasowań poprzednich subsekwencji [4]. Jako modelu oceny używa się macierzy substytucji i kar za przerwy. Oczywiście technikę tą można uogólnić, jednak dla większej liczby sekwencji okazuje się być bardzo niepraktyczna ze względu na dużą złożoność. Wprawdzie istnieje zmodyfikowany algorytm redukujący ilość niezbędnych obliczeń [5], ale potrafi on dopasować nie więcej niż dziesięć 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 porządku. Na początku, przy pomocy standardowego podejścia, dopasowuje się dwie najmniej różniące się sekwencje. Następnie do tego dopasowania stopniowo dokładane są pozostałe. Kolejność w jakiej się to odbywa, zwykle opisuje tzw. drzewo przewodnie (ang. guide tree) będące prostym przybliżeniem rzeczywistego drzewa filogenetycznego. Metoda ta ma jednak wadę wynikającą z faktu, że pośrednie dopasowania nie mogą być modyfikowane, nawet jeśli kolidują z dodanymi później sekwencjami. Popełnione we wczesnym etapie błędy odbijają się na jakości końcowego dopasowania. Drzewo filogenetyczne reprezentuje relację pomiędzy sekwencjami wynikającą z ich ewolucyjnej historii. 3
3 Algorytm T-Coffee Ogólnie metoda T-Coffee opiera się na progresywnej strategii budowania dopasowania wielu sekwencji, jednak unika najpoważniejszej wady tego podejścia (opisanej w rozdziale.). Najpierw robi dopasowanie dla każdej możliwej pary sekwencji ze zbioru wejściowego i uzyskane tą drogą informacje gromadzi w bibliotece. Następnie biblioteka ta jest wykorzystywana podczas tworzenia ostatecznego dopasowania. W ten sposób wyniki pośrednie powstają w oparciu o wiedzę na temat wszystkich sekwencji a nie tylko tych, które są analizowane na danym etapie. Skutkiem tego jest znacznie mniejsze prawdopodobieństwo wystąpienia błędu. Inną charakterystyczną cechą T-Coffee jest zdolność łączenia informacji pochodzących z różnych źródeł. Elastyczność tą uzyskano dzięki bibliotece, stanowiącej niejako inerfejs pomiędzy algorytmem progresywnego dopasowania a dowolną metodą porównywania sekwencji. Najczęściej bibliotekę tworzy się na podstawie globalnych i lokalnych podwójnych dopasowań. W specjalnym trybie, używanym wyłącznie do analizy białek, dodatkowo uwzględnia się dane o ich trójwymiarowej strukturze. Tryb ten nazwano 3D- Coffee i to właśnie na nim skupimy się w dalszej części artykułu. Jak wynika z rysunku, metoda T-Coffee składa się z dwóch faz, którymi są: tworzenie biblioteki i budowanie dopasowania. TWORZENIE BIBLIOTEK PREKOMPILOWANYCH TWORZENIE BIBLIOTEKI PODSTAWOWEJ 1 FAZA ROZSZERZANIE BIBLIOTEKI FAZA PROGRESYWNE DOPASOWANIE SEKWENCJI BUDOWANIE DRZEWA PRZEWODNIEGO Rys. : Ogólny schemat metody T-Coffee. 3.1 Tworzenie biblioteki Biblioteki prekompilowane Domyślnie T-Coffee tworzy dwie prekompilowane biblioteki. Obie zawierają informacje o każdej z n n par sekwencji, gdzie n jest ich liczbą. Pierwsza to zbiór dopasowań globalnych. Druga przechowuje dziesięć najlepiej ocenionych, nie nakładających się na siebie, lokalnych dopasowań poszczególnych par sekwencji. W trybie 3D-Coffee procedura jest trochę inna. Oprócz biblioteki dopasowań globalnych, tworzonych przy użyciu programowania dynamicznego, są jeszcze dwie, zawierające dopasowania par sekwencji białkowych bazujące na danych o ich strukturze przestrzennej. W pierwszej z nich są 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, wykorzystujący strukturę 3D do obliczenia zależnej od pozycji macierzy substytucji [10]. SAP używany jest, gdy dane strukturalne dostępne są 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 są wagi równe procentowej identyczności sekwencji, z których dopasowania pochodzą. Biblioteka podstawowa Kolejnym krokiem jest połączenie wszystkich prekompilowanych bibliotekach w jedną. Osiąga się to poprzez proste dodawanie. Jeżeli któraś para reszt występuje więcej niż raz, w wyjściowej bibliotece ma ona wagę równą 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ększyć wartość informacji w niej zawartej, poddaje się ją procesowi rozszerzania. Polega on na sprawdzaniu trójek reszt. Każdą dopasowaną parę liter sprawdza się pod kątem zgodności z pozostałymi literami ze wszystkich sekwencji. Mając parę reszt (r 1,r ) i wagę w 1 przypisaną im w bibliotece podstawowej oraz resztę r 3 bada się, czy występują dopasowania r 1 z r 3 i r 3 z r. Jeżeli taka sytuacja ma miejsce, to wartość w 1 jest modyfikowana tak, że w 1 = w 1 + min(w 13,w 3 ). Całkowite rozszerzenie wymaga sprawdzenia wszystkich możliwych trójek (r i,r j,r k ). 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. Budowanie dopasowania Jak już wspomniano, T-Coffee generuje ostateczne dopasowanie używając strategii progresywnej. Najpierw jednak oblicza macierz odległości, zawierającą przybliżone wartości ewolucyjnych dystansów między sekwencjami. Następnie wykorzystuje ją do utworzenia drzewa przewodniego. Zgodnie z wyznaczonym przez nie porządkiem, sekwencje są dopasowywane za pomocą zwykłego programowania dynamicznego, z tą różnicą, że zamiast macierzy substytucji i kar za przerwy używa się 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ę pakietowi T-Coffee pod kątem jego równoległej implementacji. Analizując algorytm, a przede wszystkim kod źródłowy programu, można w nim wyodrębnić kilka podzadań, które przedstawiono na rysunku 3. Zanim T-Coffee zacznie generować biblioteki prekompilowane, sprawdza dostępność danych strukturalnych dla każdej sekwencji ze zbioru wejściowego. W tym celu przeszukuje bazę RCSB [13] i pobiera z niej potrzebne informacje w postaci plików PDB. 5
T0 T1 T T3 T4 T5 T6 T7 T8 T9 T10 Rys. 3: Dekompozycja pakietu T-Coffee na podzadania z uwzględnieniem ich zależności. T 0 inicjalizacja, T 1 wczytywanie danych, T pobieranie plików PDB, T 3 preprocesing, T 4 biblioteka globalna, T 5 biblioteka SAP, T 6 biblioteka Fugue, T 7 biblioteka rozszerzona, T 8 macierz dystansów, T 9 drzewo, T 10 ostateczne dopasowanie. W zależności od liczby sekwencji i przepustowości łącza może to potrwać od kilku do kilkudziesięciu sekund. Wyprodukowanie biblioteki globalnej i biblioteki SAP wymaga obliczenia odpowiednio n 1 n 1 i n n podwójnych dopasowań, gdzie n 1 to licza wszystkich sekwencji a n to liczba sekwencji z dostępną strukturą 3D. W większości przypadków n będzie mniejsze od n 1. 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 (n 1 n ) n żądań a każde z nich może zająć od kilkudziesięciu sekund do kilku minut. Obliczając macierz dystansów trzeba dopasować n 1 n 1 par sekwencji. Zadania T 4, T 5 i T 8 składają się z niezależnych podwójnych dopasowań co bardzo ułatwia ich zrównoleglenie. Jedyna kwestia jaką trzeba wziąść pod uwagę to staranne rozdzielenie obliczeń. Używana do tworzenia drzewa przewodniego metoda przyłaczania sasiadów [8] jest szybka, dlatego zadanie T 9 zajmuje niewielki procent całkowitego czasu wykonania. Tak więc przyspieszenie uzyskane z jego paralelizacji byłoby nieznaczne. 6
Chociaż progresywne dopasowanie można zaimplementować w sposób równoległy, trudno jest osiągnąć satysfakcjonujące zrównoważenie obciążenia. Dopasowania odpowiadające węzłom z tego samego poziomu nie zależą od siebie, więc mogą być przydzielone do oddzielnych procesorów. Jednak im bliżej korzenia tym mniej węzłów, co sprawia, że stosunek liczby sekwencji do liczby jednostek przetwarzających maleje. 5 Podsumowanie Wymienione powyżej cechy pakietu T-Coffee ułatwiają jego wydajną paralelizację. Planuje się, że wersja równoległa będzie przeznaczona na architekturę z pamięcią rozproszoną bazującą na klastrze komputerów klasy PC i zaprogramowana przy użyciu standardu MPI [11] w oparciu o model master worker. Master zajmie się wczytaniem i wstępnym przetworzeniem danych (sekwencji i struktur) oraz rozesłaniem ich do wszystkich workerów. Następnie zbierze wygenerowane przez nich biblioteki i złączy w jedną, którą podda procesowi rozszerzania. Master będzie również odpowiedzialny za wygenerowanie drzewa przewodniego i utworzenie dopasowań związanych z węzłami na górnych poziomach tego drzewa. Dopasowania z dolnych poziomów zostaną przydzielone workerom. Będą one także uczestniczyć w obliczaniu macierzy dystansów. Literatura [1] M. Kimura. The Neutral Theory of Molecular Evolution. Cambridge Univ. Press, 1983. [] 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 09, 1989. [4] W. Miller, W. R. Pearson. Dynamic programming algorithms for biological sequence comparison. Methods Enzymol., 10: 575 601, 199. [5] H. Carrillo, D. J. Lipman. The multiple sequence alignment problem in biology. SIAM J. Appl. Math., 48: 1073 108, 1988. [6] S. F. Altschul, J. D. Kececioglu, D. J. Lipman. A tool for multiple sequence alignment. In Proc. Natl. Acad. Sci. USA, 86: 441 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., 0(): 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 45, 1987. [9] C. A. Orengo, W. R. Taylor. Protein structure alignment. J. Mol. Biol., 08: 1, 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: 43 57, 001. [11] W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir. MPI: The Complete Reference, volume. The MIT Press, 1998. [1] Strona domowa pakietu T-Coffee. http://igs-server.cnrs-mrs.fr/ cnotred/, 006. [13] RCSB. http://www.rcsb.org/pdb/cgi/export.cgi/, 006. [14] Serwer Fugue. http://www-cryst.bioc.cam.ac.uk/cgi-bin/cgiwrap/kenji/fugue/align.cgi/, 006. 8