WSTĘP DO BIOINFORMATYKI Konspekt wykładu - wiosna 2018/19 Witold Dyrka 14 marca 2019 1 Wprowadzenie 1.1 Definicje bioinformatyki Według polskiej Wikipedii [1], Bioinformatyka interdyscyplinarna dziedzina nauki wykorzystująca metody i narzędzia informatyczne do rozwiązywania problemów z nauk biologicznych. Bioinformatyka obejmuje rozwój metod obliczeniowych służących do badania struktury, funkcji i ewolucji genów, genomów i białek. Ponadto odpowiada za rozwój metod wykorzystywanych do zarządzania i analizy informacji biologicznej gromadzonej w toku badań genomicznych oraz badań prowadzonych z zastosowaniem wysokoprzepustowych technik eksperymentalnych. Z bioinformatyką powiązane są: genomika, proteomika, metabolomika, transkryptomika i konektomika. Portal bioinformatics.org określa bioinformatykę w podobny sposób [2]: (definicja szeroka) Bioinformatyka to zastosowanie komputerów do przetwarzania informacji pochodzenia biologicznego (od sekwencji DNA po obrazy radiologiczne); (definicja wąska) Bioinformatyka to molekularna biologia obliczeniowa. To samo źródło rozróżnia bioinformatykę klasyczną (pregenomową) oraz postgenomową. Tę pierwszą Fredj Tekaia z Instytutu Pasteura definiuje [2] jako metody matematyczne, statystyczne i obliczeniowe mające na celu rozwiązanie problemów biologicznych z wykorzystaniem sekwencji DNA i aminokwasów oraz powiązanych informacji. Tę drugą dobrze charakteryzuje spektrum zainteresowań czołowego czasopisma naukowego Bioinformatics, obejmujące m.in [3]: Analiza genomu: składanie genomu, analiza porównawcza, adnotacja genomów, identyfikacja genów, miejsc składania, sekwencji promotorowych; Analiza sekwencji: dopasowania wielu sekwencji, znajdowanie i grupowanie sekwencji podobnych, odkrywanie domen i motywów, przewidywanie funkcji, miejsc funkcyjnych i in. Filogenetyka: estymacja podobieństwa ewolucyjnego, jego wykorzystanie w analizie sekwencji, modele ewolucji molekularnej, analizy porównawcze; Bioinformatyka strukturalna: przewidywanie, analiza i porównywanie struktur, metody oceny modeli strukturalnych, metody dokowania, przewidywanie funkcji, projektowanie białek; Ekspresja genów: analiza ekspresji, w tym na podst. mikromacierzy, sekwencjonowanie RNA, proteomika oraz spektroskopia masowa; 1
Genetyka i analiza populacyjna: metody analizy i symulacji w zakresie genetyki; Biologia systemów: algorytmy, zastosowania, bazy danych, metody reprezentacji, symulacji i wizualizacji danych na pozimie całej komórki (sieci interakcji białek, sieci regulacyjne, szlaki metaboliczne i sygnałowe); Eksploracja danych i tekstu: wyodrębnienianie informacji biologicznej z tekstów, baz danych itp.; narzędzia reprezentacji, porządkowania i rozpowszechniania tej informacji; metody wnioskowania; Bazy danych i ontologie: biologiczne bazy i hurtowanie danych, serwisy internetowe, ontologie biologiczne, e-nauka; Informatyka bioobrazów: metody pozyskiwania i analizy obrazów mikroskopowych. 1.2 Podstawy biologiczne Wybrane pojęcia z zakresu biologii molekularnej istotne z punktu widzenia bioinformatyki: organizm pro- i eukariotyczny, chromosom, rybosom; centralny dogmat biologii molekularnej, transkrypcja, translacja; kwasy nukleinowe: kwas deoksyrybonukleinowy (DNA), kwas rybonukleinowy (RNA), nukleotyd, zasada azotowa: adenina, guanina (puryny), cytozyna, tymina, uracyl (piramidyny), pary zasad: adeninatymina/uracyl i cytozyna-guanina, szkielet nici kwasu nukleinowego, 5 - i 3 -koniec, podwójna nić DNA, komplementarność nici, nić kodująca, nić wzorcowa, RNA matrycowe, RNA funkcyjne, RNA transferowe; białko: łańcuch aminokwasów, modyfikacje potranslacyjne, struktura przestrzenna, hipoteza termodynamiczna (Afinsena); gen: lokus (l.mn. loci), kodon, kodon startu, kodon stopu, otwarta ramka odczytu, egzon, intron, sekwencja regulatorowa, promotor, sekwencja kodująca (CDS), splicing; genotyp, fenotyp, selekcja naturalna, selekcja negatywna 1.3 Metody sekwencjonowania Przykładem współczesnych wysokoprzepustowych metod sekwencjonowania DNA są: sekwencjonowanie przez syntezę [4], sekwencjonowanie nanoporowe [5]. 1.4 Bioinformatyczne bazy danych Publicznie dostępne bazy danych sekwencji molekularnych (i nie tylko) prowadzą: NCBI National Center for Biotechnology Information (GenBank), EBI European Bioinformatics Institute (EMBL), DDBJ DNA Data Bank of Japan, ktore wymieniają sie wzajemnie zgłaszanymi danymi. Aktualnie znajduje się w nich ponad 200 mln sekwencji nukleotydów składających się z 300 mld zasad [6]. Do bazy NCBI zdalny programistyczny dostęp zapewniają narzędzia Entrez Utilities [7]. 2
2 Podobieństwo par sekwencji Zdecydowana większość podobieństwa pomiędzy sekwencjami DNA, RNA oraz kodowanych przez nie białek, nie licząc bardzo krótkich, ma źródło we wspólnym pochodzeniu, czyli homologii. Różnice pomiędzy sekwencjami homologicznymi powstają w wyniku mutacji, w tym substytucji (mutacje punktowe) oraz insercji/delecji. 2.1 Algorytm kropkowy Podstawowym narzędziem wizualnego porównania sekwencji nukleotydów lub aminokwasów jest wykres kropkowy (ang. dot plot). Jest on blisko spokrewniony z wykresem rekurencji krzyżowej stosowanym w przetwarzaniu sygnałów. Niech x = x 1,..., x n oraz y = y 1,..., y m są sekwencjami nukleotydów (lub aminokwasów). Macierz kropkowa R = (r ij ) n m jest macierzą binarną taką, że: { 1 jeśli x i = y j r ij = 0 w przeciwnym wypadku Przykładowy macierz kropkowa została przedstawiony poniżej: GAAGCCAGCAAGT Filtrowanie macierzy kropkowej. Identyczne ciągi nukleotydów układają się w linie na przekątnych macierzy kropkowej. Za wskazujące na homologię można uznać linie o długości k, przy dopuszczalnej różnicach na s pozycjach. Filtrując macierz kropkową, należy pozostawić jedynie te kropki, które leżą na jednej z linii spełniających powyższe warunki. Formalnie, odfiltrowana macierz R = (r ij ) n m składa się z takich elementów, że: { r ij r ij jeśli l [0, k 1] tr(r [i l,..., i + k 1 l; j l,..., j + k 1 l]) k s = 0 w przeciwnym wypadku, gdzie A [i,..., i + p, j,..., j + q] oznacza podmacierz A składającą się z wierszy i,..., i + p oraz kolumn j,..., j + q, a tr(a) oznacza ślad macierzy A (sumę elementów na jej przekątnej). Przykładowy wykres kropkowy, odfiltrowany dla parametrów okna k = 4 i progu błędów s = 1, został przedstawiony poniżej. Dopasowania liter przed filtracją zaznaczono znakiem., dopasowania pozostałe po filtracji - znakiem + : GAAGCCAGCAAGT G+ + +. C +. + A.. +.+. A....+ G... + T + 3
Powyższy wykres kropkowy sugeruje, że sekwencje mogły mieć wspólnego przodka, który posiadał fragmenty GC.A oraz AGT. Pierwszy z nich uległ mutacji punktowej na trzeciej pozycji. Pomiędzy fragmentami wystąpiła insercja względnie delecja, ponieważ oba fragmenty nie leżą na jednej przekątnej. W rzeczywistości przykład ten nie pozwala na miarodajną ocenę homologii ze względu na zbyt krótkie okno k = 4, które przy progu błędów s = 1 wymaga dopasowania jedynie pojedynczego kodonu - co jest prawdopodobne losowo. W przypadku sekwencji nukleotydów okno powinno być o znacznie dłuższe (np. k = 10, s = 3). Złożoność obliczeniowa Pseudokod algorytmu tworzącego macierz kropkową (bez filtracji) został przedstawiony poniżej: 1: function R = computedotmatrix(x, y) 2: begin 3: n = length(x) 4: m = length(y) 5: for i = 1 to n # (i=1; i<=n; i++) 6: for j = 1 to m 7: begin 8: if x[i] == y[j] 9: R[i, j] = 1 10: else 11: R[i, j] = 0 12: end 13: return R 14: end Czasowa złożoność obliczeniowa algorytmu jest to liczba operacji podstawowych (takich jak podstawienie, porównanie, dodawanie itp.) potrzebnych do realizacji zadania w zależności od rozmiaru wejścia. Przedstawiony wyżej algorytm składa się z następujących operacji podstawowych: 2 podstawień (linie 3-4) 1 podstawienia licznika pętli (linia 5) n inkrementacji licznika pętli (linia 5) n + 1 sprawdzeń warunku pętli (linia 5) n powtórzeń pętli wewnętrznej (linie 6-12) 1 podstawienia licznika pętli (linia 6) m inkrementacji licznika pętli (linia 6) m + 1 sprawdzeń warunku pętli (linia 6) m powtórzeń ciała pętli (linie 8-11) 1 sprawdzenia zgodności liter (linia 8) 1 podstawienia wartości macierzy kropkowej (linia 9 lub 11) Łączna liczba operacja wynosi: T(n, m) = 2 + 1 + n + (n + 1) + n (1 + m + (m + 1) + m (1 + 1)) = 2n + 4 + n (4m + 2) = 4(nm + n + 1). Dla wartości n > 0, m > 1, iloczyn nm n + 1, dlatego pomnożenie tego pierwszego o pewną stałą c 8 pozwala otrzymać asymptotyczne górne ograniczenie na T(n, m): (n 0, m 0, c > 0) (n n 0, m m 0 ) T(n, m) = 4(nm + n + 1) c nm. Złożoność czasowa algorytmu tworzenia macierzy kropkowej jest więc rzędu co najwyżej rzędu nm, co zapisuje się O(nm). 4
W praktyce, w przypadku szacowania złożoności obliczeniowej czasowej zwykle wystarczy zbadać liczbę powtórzeń pętli (nie dotyczy to algorytmów rekurencyjnych). Przestrzenna złożoność obliczeniowa to rozmiar wykorzystanej pamięci. W przedstawionym algorytmie można wyróżnić następujące alokacje pamięci: n + m - rozmiar sekwencji wejściowych x i y (linia 1) 2 zmienne przechowujące rozmiar sekwencji wejściowych (linie 3-4) 2 zmienne przechowujące liczniki pętli (linie 5-6) nm - rozmiar macierzy kropkowej (linie 9 i 11) Zatem, złożoność obliczeniowa przestrzenna wynosi: (n 0, m 0, c > 0) (n n 0, m m 0 ) S(n, m) = nm + n + m + 4 c nm O(nm). CIĄG DALSZY NASTĄPI Literatura [1] Bioinformatyka - Wikipedia, wolna encyklopedia. https://pl.wikipedia.org/wiki/bioinformatyka [2] Bioinformatics - Bioinformatics.Org Wiki. https://www.bioinformatics.org/wiki/bioinformatics [3] Scope guidelines Bioinformatics Oxford Academic. https://academic.oup.com/bioinformatics/pages/scope guidelines [4] An introduction to Next-Generation Sequencing Technology. https://www.illumina.com/content/dam/illumina-marketing /documents/products/illumina sequencing introduction.pdf [5] How it works. https://nanoporetech.com/how-it-works [6] GeneBank and WGS Statistics. https://www.ncbi.nlm.nih.gov/genbank/statistics/ [7] Sayers E. A General Introduction to the E-utilities. In: Entrez Programming Utilities Help. https://www.ncbi.nlm.nih.gov/books/nbk25497/ 5