Podstawy informatyki z bioinformatyką Materiały do wykładów
Czym jest informatyka? Czym jest informatyka? Informatyka to ogół dyscyplin naukowych i technicznych zajmujących się informacją. Teorie informatyczne dotyczą operowania na informacji: jej przedstawianiem, przechowywaniem, uzyskiwaniem, porządkowaniem i przetwarzaniem
Informacja - ilość informacji Bit [b] binary digit (ang. cyfra dwójkowa) najmniejsza jednostka informacji zdolna do przechowania jednej z dwóch wartości Bajt [B] (ang. byte - binary term) to podstawowa komórka pamięci zdolna do przechowania jednego znaku, najczęściej o pojemności 8 bitów.
Informacja - ilość informacji Jednostki większe tworzone są przez dodanie odpowiednich przedrostków: 1 KB 1 Kilobajt = 1,024 bajty 1 MB 1 Megabajt = 1,048,576 bajty 1 GB 1 Gigabajt = 1,073,741,824 bajty [K] = 2 10 [M] = 2 20 [G] = 2 30
Informacja - ilość informacji Standardowa dyskietka 1,44 MB moŝe pomieścić około 1,5 miliona znaków czyli około 300 stron maszynopisu. 1MB około 1 minuty muzyki, lub ksiąŝka 1GB film DivX ;-), genom człowieka 1TB duŝa biblioteka 1PB pamięć człowieka
Systemy liczbowe Systemy liczbowe System liczbowy to precyzyjnie zdefiniowany sposób tworzenia liczb ze znaków cyfrowych. Dla kaŝdego systemu liczbowego istnieje określony zbiór cyfr i zestaw reguł, które umoŝliwiają budowanie z tych cyfr większych liczb oraz wykonywanie na nich operacji arytmetycznych Systemy liczbowe dzielą się na: pozycyjne niepozycyjne
Systemy liczbowe Systemy liczbowe 123 1111011 CXXIII 7B 173 dec bin rom he oct
Systemy liczbowe Systemy liczbowe niepozycyjny System rzymski I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000, Dostępne cyfry: I V X L C D M liczba rzymska CCCLXV reprezentuje C 100 C 100 C 100 L 50 X 10 V 5 IV, IX, XL, XC, CD, CM 100 + 100 + 100 + 50 + 10 + 5 = 365
Systemy liczbowe Systemy liczbowe niepozycyjny System rzymski I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000, Dostępne cyfry: I V X L C D M liczba rzymska CMXL reprezentuje CM 900 XL 40 IV, IX, XL, XC, CD, CM 900 + 40 = 940
Systemy liczbowe Systemy liczbowe System rzymski nie jest systemem pozycyjnym W systemach pozycyjnych: liczba dostępnych w danym systemie cyfr nazywana jest podstawą tego systemu. Waga ( znaczenie ) i-tej pozycji równa jest podstawie podniesionej do i-tej potęgi
Systemy liczbowe Systemy liczbowe pozycyjny System dziesiętny Podstawa: 10 Dostępne cyfry: 0 1 2 3 4 5 6 7 8 9 czyli liczbę 365 reprezentuje 0 3 6 5 10 3 10 2 10 1 10 0 1000 100 10 1 0 1000 + 3 100 + 6 10 + 5 1 = 365
Systemy liczbowe Systemy liczbowe pozycyjny System dwójkowy Podstawa: Dostępne cyfry: 0 1 czyli liczba 1111011 reprezentuje 1 2 2 1 2 6 1 2 5 1 2 4 1 2 3 0 2 2 1 1 2 0 64 32 16 8 4 2 1 1 64+1 32+1 16+1 8+0 4+1 2+1 1 = 123
Systemy liczbowe Systemy liczbowe 123 / 2 61 / 2 30 / 2 15 / 2 7 / 2 3 / 2 1 / 2 0 1 1 1 1 0 1 1 1111011
Liczby ujemne - notacja U2 5: 0101-5: 1??? -5: 1101-8 4 2 1-5: 1 0 1 1 Liczby dodatnie zapisywane są w sposób tradycyjny W przypadku liczb ujemnych najstarszy (najbardziej znaczący) bit to bit znaku (1 dla liczb ujemnych 0 dla dodatnich). Bit znaku ma równieŝ swoją wagę - ujemną
Liczby ujemne - notacja U2 Aby z dwójkowej liczby dodatniej otrzymać, odpowiadającą jej, liczbę ujemną naleŝy: zanegować wszystkie bity liczby dodatniej (0 1 i 1 0) następnie do wyniku dodać 1. 5: 0101 ~5: 1010-5: + 1011 +1-5: 1011 0: 0000
Liczby ujemne - notacja U2 Liczba jaką oznacza dany ciąg znaków cyfrowych zaleŝna jest od systemu liczenia w jakim ta liczba została zapisana: 11111111 jedenaście milionów sto jedenaście tysięcy sto jedenaście (system dziesiętny) 11111111 dwieście pięćdziesiąt pięć (system binarny) 11111111 minus jeden (system binarny, notacja U2) 11111101 + 00000001 = 11111110 Bin: dwieście pięćdziesiąt trzy plus jeden wynosi dwieście pięćdziesiąt cztery U2: minus trzy plus jeden wynosi minus dwa
Digitalizacja (dyskretyzacja ( dyskretyzacja) Digitalizacja to zamiana informacji analogowej na postać cyfrową, moŝliwą do zapisania na nośniku cyfrowym Płyta CD audio: 44100 próbek 16 bitowych na sekundę 2 kanały (stereo) długość ścieŝki ok. 6 [km]
Digitalizacja (dyskretyzacja ( dyskretyzacja) 0000000000000000 0000000000000000 0000000000000000 0000010110000000 000011 1111100000 0011111111110000 0011111111110000 0001111111110000 000111111111 0000 0001111111100000 0000101101000000 0000001100000000 0000001110000000 0 000011110000000 0000011111000000 240 bitów czyli 30 bajtów Obraz 800600 to 480000 pikseli czyli 59 KB (czarno-biały) Obraz 800600(3 kolory) czyli 2 bity na piksel = 118 KB
Kompresja danych Kompresja danych 000000000000000000000000000000000000000000000000000001011000000 000001111111000000011111111110000001111111111000000011111111100 000001111111110000000111111110000000001011010000000000001100000 000000000111000000000000111100000000000011111000000 Przykładowy prosty algorytm kompresji: XXY - ilość powtórzeń y - rodzaj znaku 530011010021110071070101060101070091070091070081090011010021010 011120021140031120041120051060 530 011 010 021 110 071 070 101 060 101 070 091 070 091 070 081 090 011 010 021 010 011 120 021 140 031 120 041 120 051 060
Kompresja danych Kompresja danych Rodzaje algorytmów kompresji kompresja bezstratna - kompresja danych: zip, rar, inne kompresja stratna - kompresja dźwięku i obrazu: jpeg, mpeg, mp3 00000000011111100000000000000010000000010000000 090 061 150 011 080 011 070 00000000011111100000000000000000000000000000000 090 061 320
Liczby rzeczywiste Liczby rzeczywiste Komputer jako narzędzie wprowadza do obliczeń błędy mające swoje źródło w: zamianie procesów nieskończonych na skończone dokładności reprezentowania liczb w komputerze (zaokrąglenia) PowyŜszych błędów praktycznie nie da się wyeliminować. MoŜna jednak minimalizować ich wpływ na ostateczny wynik obliczeń
Liczby rzeczywiste zapis stałopozycyjny Na przykład definiujemy: ABCD,abcd wówczas w systemie dziesiętnym np. 2005,0310 2*10 3 + 0*10 2 + 0*10 1 + 5*10 0,0*10-1 + 3*10-2 + 1*10-3 + 0*10-4 (-10000, 10000) popełniany błąd 0,00005 0,0001-10000 0 10000
Liczby rzeczywiste zapis stałopozycyjny w systemie binarnym np. 1011,1101 (11,8125) (10) 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0,1*2-1 + 1*2-2 + 0*2-3 + 1*2-4 Zakres części ułamkowej: [0, (2 n -1)/2 n )
Liczby rzeczywiste konwersja 1,5 (10) =?? (2) na 3 bitach ułamkowych 1,5 * 2 3 = 1,5 * 8 = 12 12 % 2 = 0 6 % 2 = 0 3 % 2 = 1 1 % 2 = 1 czyli wynik 1100 1,5 (10) = 1,1 (2) Aby liczbę W przedstawić w systemie o podstawie p na m cyfrach ułamkowych naleŝy: 1 pomnoŝyć W przez p m ; jeŝeli pozostał ułamek, to W nie moŝna przedstawić dokładnie w systemie p na m cyfrach ułamkowych. NaleŜy wówczas zaokrąglić otrzymaną liczbę 2 obliczyć kolejne cyfry nowej wartości W 3 oddzielić przecinkiem m ostatnich cyfr W; jeŝeli jest mniej cyfr niŝ m, to naleŝy dopisać z lewej strony odpowiednią liczbę zer
Liczby rzeczywiste komplikacje 1,1 (10) =?? (2) na 8 bitach ułamkowych 1,1 * 2 8 = 1,1 * 256 = 281,6 282 % 2 = 0 141 % 2 = 1 70 % 2 = 0 35 % 2 = 1 17 % 2 = 1 8 % 2 = 0 4 % 2 = 0 2 % 2 = 0 1 % 2 = 1 czyli wynik 100011010 1,1 (10) = 1,00011010 (2) 1,1 (10) = 1,00011010 (2) 1 + 1/16 + 1/32 + 1/128 = 1 + 13/128 = 1,1015625 Błąd = 0,0015625
Liczby rzeczywiste zapis zmiennopozycyjny Dowolną liczbę rzeczywistą róŝną od zera moŝna zapisać w postaci: = s * m * p c m- mantysa c - cecha s - znak liczby (1 lub -1) 1,4E2 0,14E3 1400,0E-1 14,0E1 Dla systemu binarnego p=2 a mantysa [0,5 1)
Liczby rzeczywiste zapis zmiennopozycyjny s sc bn-t-2 bn-t-2... b0 b-1 b-2... b-t znak n-t-1 bitów cechy t bitów mantysy n bitowa reprezentacja liczby rzeczywistej mantysa - decyduje o dokładności zmiennopozycyjnego przedstawienia liczby rzeczywistej, a błąd wynikający z jej obcięcia jest mniejszy od 2 -t cecha - określa zakres reprezentowanych w ten sposób liczb rzeczywistych
Liczby rzeczywiste Liczby rzeczywiste 0,5*2 Cmin < 1,0*2 Cma Czasami podczas obliczeń cecha spada poniŝej Cmin, wynik wówczas przybliŝany jest zerem (tzw. niedomiar) Gdy cecha rośnie powyŝej Cma to obliczenia są przerywane i generowany jest błąd (tzw. nadmiar) -10000 0 10000-10000 0 10000
Błędy - przypomnienie błąd bezwzględny: błąd względny: a a a a a a a a α - wartość przybliŝona α - wartość dokładna podczas dodawania i odejmowania błędy bezwzględne składników się sumują. podczas mnoŝenia i dzielenia sumowaniu ulegają błędy względne składników
Błędy zapis zmiennopozycyjny 0,50000-0,46875 = 1/32 (0)1000 (1)00 - (0)1111 (1)01 = (0)1000 (1)00 - (0)01111 (1)00 = (Uzgodnienie cech) (0)1000 (1)00 - (0)0111 (1)00 = = (0)0001 (1)00 (Normalizacja mantysy) = (0)1000 (1)11 = 1/16 czyli błąd = 100%!!
Wnioski Liczby rzeczywiste (w większości przypadków) nie mogą być przedstawione w komputerze dokładnie (reprezentacja w pamięci) Skutkuje to równieŝ przybliŝonym charakterem większości obliczeń numerycznych (zaokrąglenia, stabilność numeryczna) Czyli praktycznie Ŝadne obliczenia na liczbach rzeczywistych nie są dokładne a stanowią jedynie lepsze lub gorsze przybliŝenie wyniku
Źródła błędów Błędy danych wejściowych Błędy zaokrągleń podczas obliczeń Błędy obcięcia e = 1 + + 2 2 + 3 3! +K Uproszczenia modelu matematycznego Błędy człowieka i "maszynowe"
Metody numeryczne Metody numeryczne (ang. numerical analysis), to dział matematyki (informatyki) zajmujący się metodami przybliŝonego rozwiązywania określonych problemów matematycznych, najczęściej nierealizowalnych bezpośrednio na komputerach. Metody numeryczne obejmują: aproksymację i interpolację, numeryczne róŝniczkowanie i całkowanie, rozwiązywanie układów równań, rachunek macierzowy, analizę i minimalizowanie błędów zaokrągleń...
Interpolacja Interpolacja X Y X X X X 0 X 1 2 k n y=f() y=f() f( ) f( ) f( ) 0 1 2 ( ) ( )( ) ( )( ) ( ) ( )( ) ( )( ) ( ) = + + = n j n j j j j j j j n j j j n y W 0 1 1 1 0 1 1 1 0 L L L L ( ) ( ) ( ) = = = n j n j i i i j i j n y W 0, 0
Aproksymacja Aproksymacja Poszukiwanie funkcji dającej dokładne wartości w węzłach interpolacji często nie ma sensu X Y X X X X 0 X 1 2 k n y = A + B f( ) f( ) f( ) 0 1 2 ( ) ( ) ( ) [ ] 2 0 1 0 1 1 0 0 ) ( ) ( ) ( ) ( ) ( ) ( ) (,,, ) ( i i n i i n n n f F w f F f F a a a a a a F = + + + = = L K ϕ ϕ ϕ
Regresja liniowa Regresja liniowa X Y X X X X 0 X 1 2 k n y = A + B f( ) f( ) f( ) 0 1 2 AX Y B y A n i i n i i i = = = = 0 2 0 = = = = n i i n i i n i i i y y r 0 2 0 2 0 N Y X XY y N X X n i n i n i n i n i n i n i = = = = = = = = = 0 0 0 0 2 0 0 2 0 2 i - odchylenie od średniego y i - odchylenie od średniego y
Rozwiązywanie układu równań liniowych Rozwiązywanie układu równań liniowych Eliminacja Gaussa Eliminacja Gaussa Banalne analityczne rozwiązanie układu równań nie jest dla komputera proste. = + = + = + 0 2 6 9 5 3 2 1 3 2 1 3 1 = 0 6 9 1 1 2 1 1 1 1 0 5 3 2 1
Rozwiązywanie układu równań liniowych Rozwiązywanie układu równań liniowych Eliminacja Gaussa Eliminacja Gaussa Etapy rozwiązywania układu równań: Eliminacja kolejnych zmiennych Sprowadzenie macierzy do postaci macierzy trójkątnej Redukcja wsteczna = 0 6 9 1 1 2 1 1 1 1 0 5 3 2 1 *(-1/5) *(-2/5) = 3,6 4,2 9 0,6 1 0 1,2 1 0 1 0 5 3 2 1 *1
Rozwiązywanie układu równań liniowych Eliminacja Gaussa Etapy rozwiązywania układu równań: Eliminacja kolejnych zmiennych Sprowadzenie macierzy do postaci macierzy trójkątnej Redukcja wsteczna 5 0 0 3 2 1 = = = 0 1 0 9 0,6 0,6 4,2 1 1,2 0,6 1 2 3 ( 1,2 ( 1 ) ) ( 1 ) 0 ( 3 ) 5 1 = = = = 9 4,2 0,6 1 3 2
Rozwiązywanie układu równań liniowych Eliminacja Gaussa a a b ( ) ( ) ( 1 ) ( 1 ) 1 11 i ( + 1 ) ( ) k ij 1 + = a ( k + 1 ) ( k ) = a a b ( ) ( 2 ) ( 2 ) 2 22 i 1 12 k ij a a ( ) ( ) k ik a ( ) ( ) ( k ) k ik a a k kk b ( ) k kk ( k = 1,2, L, n 1 ) ( i, j = k + 1, k + 2, L, n ) 2 2 + + K K LLLLLLLLLLLL k + + k kj a a a 1 2 n ( ) ( n ) n nn n, a n n n ( ) k kk = = = b b b 0 1 2 n Czyli przypadek ogólny dla dowolnego układu równań liniowych. Gdy macierz nie daje się zredukować do macierzy Trójkątnej (dzielenie przez zero), oznacza to, Ŝe układ nie ma rozwiązania
Całkowanie numeryczne metoda trapezów Y y=f() y = b a f ( )d h a = 0 1 2 3 n-1 n = b X s ( + ) y 0 y 1 1 1 = h S = h y 0 + y 1 + y 2 + K + y n 1 + y n 2 2 2
Całkowanie numeryczne metoda parabol Y f y=f() y = h a = 0 1 2 n-2 n-1 n = b s 1 ( y + 4 y ) = h + i i + 1 y i 3 + 2 1 S K 3 ( y + y + 2 ( y + y + K + y ) + ( y + y + ) ) = h 0 n 2 4 n 2 4 1 3 + y n 1 b a ( )d X
Metody iteracyjne Metody iteracyjne iteratio (łac) - 'powtarzanie iteracja - kolejne powtórzenie danej operacji/przekształcenia odniesione do wyniku poprzedniego jej wykonania metody iteracyjne - metody rozwiązywania problemów poprzez wielokrotne powtarzanie takich samych przekształceń kolejnych wyników cząstkowych. Kolejne iteracje najczęściej systematycznie zbliŝają się do ostatecznego rozwiązania i osiągają je z określoną dokładnością
Metody iteracyjne Rozwiązywanie równań nieliniowych f() = 0 Y y = f() X 0 X
Metody iteracyjne Rozwiązywanie równań nieliniowych f() = 0 ϕ() = ψ() Y f( ) 0 y=ϕ() y=ψ() Odcięte punktów przecięcia tych wykresów stanowią pierwiastki wyjściowego równania f() = 0 X 0 X
Metody iteracyjne Rozwiązywanie równań nieliniowych y=f() y=, y=f() n+1 = f( n ) Y f( 2 ) f( ) 1 y = y = f() 1 = f( 0 ) 2 = f( 1 ) 3 = f( 2 ) 4 = f( 3 )... f( ) 0 X X X X 0 1 2 3 X
Metody iteracyjne Rozwiązywanie równań nieliniowych Czasami zamiast zbliŝać się systematycznie do punktu przecięcia, kolejne przybliŝenia krąŝą wokół właściwego rozwiązania Y f( ) 0 f( ) 2 y = f() y = f( ) 3 f( ) 1 X 0 X X X X 2 4 3 1 X
Metody iteracyjne Rozwiązywanie równań nieliniowych PowaŜniejszym problemem jest brak zbieŝności ZbieŜność jest pewna gdy f () <1 ZbieŜność jest tym szybsza im mniejsza jest f () Y f( 2 ) f( ) 1 f( ) 0 y = y = f() X 2 1 0 X X X
Rozwiązywanie równań nieliniowych Metoda połowienia (bisekcji ( bisekcji) Dokładnie jeden pierwiastek funkcji y=f() znajduje się w przedziale a; b Y f(b ) y=f() Funkcja ma w punktach a i b róŝne znaki [ f(a) f(b) < 0 ] f( ) f(a ) a b X Zachowując powyŝszy warunek dziel kolejno przedział a; b na połowy zbliŝając się do rozwiązania b + a = 2 1 i i + 1 = i 2 ( b a )
Rozwiązywanie równań nieliniowych Metoda Newtona Metoda dosyć szybko zbieŝna (znacznie szybciej od metody bisekcji) Y f(b) y=f() Czasami nie jest łatwo znaleźć wartość pochodnej w punkcie i f(1) f(2) f(a) i + 1 a 2 1 = i f f ( i ) ( ) i Koniec gdy f( i ) dostatecznie bliska 0 oraz i + 1 i < ε b X
Poszukiwanie minimum funkcji (minimalizacja funkcji) Często problem ten sprowadza się do rozwiązania f ()=0, jednak czasami wyznaczenie pochodnej jest zbyt skomplikowane lub funkcja f nie jest róŝniczkowalna y=f() a b
Poszukiwanie minimum funkcji (minimalizacja funkcji) Aby zmniejszyć przedział zawierający minimum wystarczy policzyć wartość funkcji w dwóch punktach 1 i 2 takich Ŝe: a < 1 < 2 < b Wówczas, gdy: f( 1 ) f( 2 ), to m a; 2 f( 1 ) > f( 2 ), to m 1 ; b Przy równym podziale: b 2 ( b a ) i a i 0 = 3 i 0 y=f() a 1 m 2 b
Minimalizacja funkcji metoda symple (simpleks simpleks) Dla n zmiennych tworzony jest n+1 wymiarowy obiekt 4 podstawowe operacje: a. odbicie b.rozciągnięcie c. spłaszczenie d.kontrakcja a b PowyŜsze operacje wzgl. środka cięŝkości c d
Minimalizacja funkcji metoda symple (simpleks simpleks)
Algorytmika Algorytm przepis na rozwiązanie zadania z konkretnej klasy zadań, zawierający opis obiektów wraz z precyzyjnym i jednoznacznym opisem czynności, które naleŝy wykonać na tych obiektach, aby to zadanie rozwiązać w skończonej liczbie kroków. Muhammed ibn Musa al-chorezmi (820 r.n.e.)
Algorytmika Cechy algorytmu skończoność określoność (jednoznaczność) ogólność (uniwersalność) efektywność
Algorytmika Sposoby zapisu algorytmu: lista kroków (język potoczny) schemat blokowy (diagram przepływowy) diagram N-S (diagram Nassi-Schneidermana) zapis w języku formalnym zapis w postaci programu (algorytm zapisany w języku programowania)
Algorytmika Sposoby zapisu algorytmu Lista kroków 1. wczytaj a, b, c 2. oblicz d=b 2-4ac 3. jeŝeli d<0 to wtedy: 3.1 wypisz Brak pierwiastków 3.2 idź do 8 4. jeŝeli d=0 to wtedy: 4.1 oblicz =-b/(2a) 4.2 wypisz 4.3 idź do 8 5. oblicz 1 =-b-sqrt(d)/2a 6. oblicz 2 =-b+sqrt(d)/2a 7. wypisz 1, 2 8. koniec
Algorytmika Sposoby zapisu algorytmu Schemat blokowy blok operacji jednostkowych blok operacji we/wy blok decyzyjny początek, koniec,... P K N T
Algorytmika Sposoby zapisu algorytmu Schemat blokowy dodatki podprogramy pętle inne...
Algorytmika Sposoby zapisu algorytmu Zasady budowy schematów blokowych: KaŜda operacja jest umieszczona w bloku Kolejność wykonywania poszczególnych operacji definiują strzałki (połączenia pomiędzy blokami) Strzałki łączą bloki lub bloki z innymi strzałkami (brak rozgałęzień strzałek!!!!) KaŜdy schemat ma dokładnie 1 blok startu i co najmniej 1 koniec Z dowolnego bloku istnieje "droga" do końca algorytmu (brak ślepych uliczek itp.)
Algorytmika Sposoby zapisu algorytmu Diagram NS (Nassi-Schneidermana) Operacja podstawowa Warunek Tak Nie Wejście Wyjście Warunek Warunek
Algorytmika Sposoby zapisu algorytmu Schemat blokowy i diagram NS P We: a,b,c Nie d:=b*b-4*a*c d>=0 T d=0 N 1, 2 "Brak pierwiastków" N Brak pierw. T Policz 1 Wy:X1,X2 Wy: X1 K a, b, c d := b*b-4*a*c d >= 0 Nie d = 0 1 := -(b-d)/(2*a) 2 := -(b+d)/(2*a) "Dwa pierw." 1, 2 Tak Tak 1 := -b/(2*a) "Jeden pierw." 1
Algorytmika Sposoby zapisu algorytmu Jako program (BASIC, PASCAL, C, FORTRAN...) begin Read(a, b, c); d := b*b-4*a*c; if d<0 then begin Writeln("Brak pierwiastków); end else if d>0 then begin 1 := (-b-sqrt(d))/(2*a); 2 := (-b+sqrt(d))/(2*a); Write("Dwa pierwiastki: 1="); Writeln(1); Write(" 2="); Writeln(2); end else begin 1 := -b/(2*a) Write("Jeden pierwisatek: 1 ="); Writeln(1); end end.
Mała dygresja (przypisania i porównania) := == = X = X + 1 X := X + 1 X == X + 1 := operator przypisania (PASCAL) == operator porównania (C, REXX) = operator porównania (PASCAL) operator przypisania (C) WyraŜenie logiczne, zawsze fałszywe
Mała dygresja (zamiana zmiennych) X = 3, Y = 1 X := Y Y := X X = 1, Y = 1 X = 3, Y = 1 t := X X := Y Y := t X = 1, Y = 3
Algorytmika Podstawowe rodzaje algorytmów Liniowy P We: a,b c := (a+b) / 2 Wy: c K
Algorytmika Podstawowe rodzaje algorytmów Rozgałęziony P We: a,b,c d = 0 N d := b*b-4*a*c T 1 := -(b-sqrt(d)) / (2*a) 2 := -(b+sqrt(d)) / (2*a) d >= 0 N T := -b / (2*a) Brak Pierwiastków Jeden pierw.: Dwa pierw.: 1, 2 K K K
Algorytmika Podstawowe rodzaje algorytmów Z powtórzeniami (iteracyjne, zaw. pętle) Pewne operacje Pewne operacje Warunek T Warunek T N N Warunek Warunek
Algorytmika Podstawowe rodzaje algorytmów Typy algorytmów iteracyjnych (pętli) pierwszego rodzaju drugiego rodzaju z kontrolowanym wejściem z kontrolowanym wyjściem Wykonanie pętli gdy warunek (jest) lub (nie jest) spełniony
Algorytmika wariacje na temat pętli ZałoŜenie początkowe: i = 0 i := i + 1 i := i + 1 obliczenia obliczenia i<10 N T i<10 T N i : 0,10 11 razy i = 10 i : 0,9 10 razy i = 10 i>=10 T i : 0,9 10 razy i = 10 N i := i + 1 obliczenia
Algorytmika wariacje na temat pętli ZagnieŜdŜanie pętli i := i + 1 obliczenia Inne obliczenia T i<10 N T e>0.1 N i := i + 1 obliczenia i<10 N j<10 N T T j := j + 1
Algorytmika Podprogramy P We: n S:=1; i:=1 S := Sil(n) i := i + 1 i > n N S := S * i T Wy: S K Sil(n) S:=1; i:=1 i := i + 1 i > n N S := S * i T S Sil(n) n = 0 N T S := 1 S:=n*Sil(n-1) S
Przykładowy zapis algorytmu obliczania wartości wyraŝenia n! P We: n S:=1; i:=1 N i > n T Wy: S i := i + 1 S := S * i n S := 1 i := 1 i <= n S := S * i i := i + 1 S K
Algorytmika Podstawowe techniki programistyczne algorytmy rekurencyjne (rekursja) algorytmy zachłanne ( Ŝarłoczne ) metoda dziel i rządź ( dziel i zwycięŝaj ) programowanie dynamiczne algorytmy z powrotami
Algorytmika Chwila relaksu - WieŜe z Hanoi 1. Przenieś najmniejszy krąŝek o jedno miejsce w prawo 2. Wykonaj jedyną dozwoloną operację, nienaruszającą najmniejszego krąŝka 3. Wróć do 1
Algorytmika Chwila relaksu - WieŜe z Hanoi 4 1 5 2 6 3 7
Algorytmika ZłoŜoność obliczeniowa ZłoŜoność obliczeniowa algorytmu określa ilość zasobów komputera potrzebną do realizacji tego algorytmu złoŝoność czasowa złoŝoność pamięciowa pesymistyczna oczekiwana
Algorytmika ZłoŜoność obliczeniowa Algorytm wyszukiwania nazwiska w ksiąŝce telefonicznej dla n elementów 2n operacji MoŜna inaczej? dla n elementów n+2 operacji dla n elementów log 2 n operacji
Algorytmika ZłoŜoność obliczeniowa Funkcja do której proporcjonalna jest złoŝoność danego algorytmu to tak zwana złoŝoność teoretyczna, i oznaczana jest ona najczęściej O. O(log 2 N) - logarytmiczna O(N) - liniowa O(Nlog 2 N) - liniowo-logarytmiczna O(N 2 ) - kwadratowa O(N k ) - wielomianowa O(2 N ) - wykładnicza
Algorytmika ZłoŜoność obliczeniowa dane Log 2 N N Nlog 2 N N 2 2 N 10 4 10 40 100 1024 20 5 20 100 400 1000000 50 6 50 300 2500 10 15 100 7 100 700 10000 10 30 1000 10 1000 10000 1000000 10 301
Algorytmika ZłoŜoność obliczeniowa 10 40 N 2 10 35 N N 1,2 N 10 30 N 10 10 25 10 20 Liczba mikrosekund od Wielkiego Wybuchu 10 15 Bilion Miliard N 5 N 3 Liczba mikrosekund w ciągu jednego dnia Milion 1000 100 10 5N 2 4 8 16 32 64 128 256 512 1024 2048
Algorytmika Podstawowe struktury danych Typy proste typy całkowite 7 0 15 8 typy rzeczywiste (zmiennopozycyjne) znak cecha mantysa
Algorytmika Podstawowe struktury danych Tablice (macierze) 1,1 1,2 1,8 2,1 2,2 2,8 1,1 1,2 1,8 2,1 2,2 2,8 T[3,2] =... T[3][2] =... T[1,2,5] =... T[1][2][5] =... T[4] =...
Algorytmika Podstawowe struktury danych Stosy (LIFO) SZCZYT DANE 3 DANE 2 następny następny Kolejki (FIFO) początek DANE 1 DANE 2 koniec następny następny DANE 1 NULL DANE 3 NULL
Algorytmika Podstawowe struktury danych Drzewa Korzeń DANE Lewy Prawy DANE DANE Lewy Prawy Lewy Prawy
Algorytmika Etapy rozwiązywania problemu 1. Sformułowanie zadania 2. Precyzyjna definicja zbioru dozwolonych wejść 3. Precyzyjna definicja spodziewanych wyników, jako funkcja danych wejściowych 4. Poszukiwanie metody rozwiązania problemu czyli algorytmu 5. Przedstawienie algorytmu w jednej/kilku postaciach 6. Analiza poprawności rozwiązania 7. Testowanie dla róŝnych danych, ocena efektywności
Przykład - opracowanie schematu blokowego dla sortowania bąbelkowego 1 2 3 4 5 Z B C D A min ma Dane: N, T[N] 1. dla wszystkich kolejnych par wykonuj: jeŝeli zła kolejność elementów w parze, to zamień te elementy miejscami 2. powtórz punkt pierwszy (N-1) razy, (gdzie N to liczba elementów)
Przykład Przykład - opracowanie schematu opracowanie schematu blokowego dla sortowania bąbelkowego blokowego dla sortowania bąbelkowego Z B D C A B Z D C A B C D Z A B C Z D A B C A D Z Zamień Zamień Zamień Zamień B C D A Z B A D C Z A B D C Z 1 2 3 4
Przykład - opracowanie schematu blokowego dla sortowania bąbelkowego Uszczegółowienie punktu 1 Z B C D A Z B C D A dla wszystkich kolejnych par wykonuj: jeŝeli zła kolejność elementów w parze, to zamień te elementy miejscami dla i zwiększającego się od 2 do N wykonuj: - jeŝeli ( T[i] < T[i-1] ) to wtedy: zamień miejscami T[i] T[i-1]
Przykład - opracowanie schematu blokowego dla sortowania bąbelkowego Uzupełnienie algorytmu o punkt 2 powtórz punkt pierwszy (N-1) razy, (gdzie N to liczba elementów) dla k zmniejszającego się od N do 2 wykonuj - dla i zwiększającego się od 2 do N wykonuj: - jeŝeli ( T[i] < T[i-1] ) to wtedy: zamień miejscami T[i] T[i-1] punkt pierwszy A to juŝ cały algorytm
Przykład - opracowanie schematu blokowego dla sortowania bąbelkowego Drobna optymalizacja Z B C D A dla k zmniejszającego się od N do 2 wykonuj B B B - dla i zwiększającego się od 2 do N wykonuj: Z C C - jeŝeli ( T[i] < T[i-1] ) to wtedy: zamień C miejscami T[i] Z T[i-1] D D D Z A A A dla k zmniejszającego się od N do 2 wykonuj - dla i zwiększającego się od 2 do k wykonuj: - jeŝeli ( T[i] < T[i-1] ) to wtedy: zamień miejscami T[i] T[i-1] B C D A Z
Przykład - opracowanie schematu blokowego dla sortowania bąbelkowego P P Wcz. N,T[N] Wcz. N,T[N] DO k := N,2,-1 k := N DO i := 2,k i := 2 Zamień T[i],T[i-1] T T[i] < T[i-1] N ENDDO i N Zamień T[i],T[i-1] T T[i] < T[i-1] I = k N N i := i + 1 k := k - 1 T N ENDDO k T N k = 2 T T Wyp. T[N] Wyp. T[N] K K
John von Neumann Koncepcja komputera procesor (ALU/CPU) pamięć urządzenia wejścia/wyjścia identyczna wewnętrzna reprezentacja danych i instrukcji instrukcje (program) i dane umieszczone są w tej samej wewnętrznej pamięci samodostęp - program moŝe wykonywać operacje zarówno na swoich danych jak i instrukcjach
Konsekwencje architektury według koncepcji von Neumanna 100 5 105 10 112 1 249 1 - JMP 5 - CPX 10 - BNE 100 - LDA 105 - ADA # LDA 5 ADA # 10 STA 1 RTS CPX 105 BNE 112 JMP 249 112 - STA 249 - RTS
Automat von Neumann a Uniwersalny konstruktor Do samoreprodukcji potrzebny jest sam automat, rezerwuar części z których moŝna go złoŝyć oraz plan konstrukcyjny Plan moŝe być zakodowany np. w systemie dwójkowym reprezentowanym w dowolny sposób Konstrukcja takiego automatu moŝe być dosyć dowolna. Od całej zautomatyzowanej fabryki, poprzez roboty rodem z filmów SF do mikroautomatów (nanotechnologia)
Automat von Neumann a Plan konstrukcyjny CH 3 CH 3 CH 3 CH 3 CH 3 CH 2 CH 2 CH 2 CH 2 CH 2 CH 2 CH 3 CH 3 C H CH 3 1 CH 2 0 0 1 0 1 1 0 0 1 0 1 1 1 0
Automat von Neumann a Plan konstrukcyjny CH 3 CH 3 CH 3 CH 3 CH 3 CH 2 CH 2 CH 2 CH 2 CH 2 CH 2 CH 3 CH 3 C H CH 3 1 CH 2 0 NH 2 NH 2 N N N N O N N C H C H
A tymczasem... A tymczasem... James Watson i Francis Crick - 1953
Funkcja i struktura DNA Funkcja i struktura DNA O O P O O O N N N NH 2 N O O P O O O N O N N NH NH 2 OH OH O O P O O Adenina O OH Tymina O N NH O O O P O O Guanina O OH Cytozyna NH 2 N N O Cząsteczka DNA zawiera 4 typy związków: A,G,T,C sumaryczna ilość (A+G) równa jest ilości (C+T) ilość cząsteczek A równa jest ilości cząsteczek T ilość cząsteczek G równa jest ilości cząsteczek C
Funkcja i struktura DNA Funkcja i struktura DNA 5 O O P O O O O O P O O N N N N N O O N N O N O O P O O O N O P O O O N O O O N N O P O O O N N N OH 3 5 O 3 OH N NH 2 N N N 1
Funkcja i struktura DNA Funkcja i struktura DNA N N N N N Cukier H H N N O O Cukier H N N O N Cukier H H N N N N O N Cukier H H H A T G C A T C G A T T A G C A T C G G C G C
Funkcja i struktura DNA Funkcja i struktura DNA
Replikacja,, transkrypcja, translacja DNA Replikacja DNA Transkrypcja RNA Translacja Białko
Replikacja,, transkrypcja, translacja
Replikacja,, transkrypcja, translacja DNA RNA Transkrypcja Transkrypcja (DNA RNA) ryboza zamiast dezoksyrybozy jednoniciowe uracyl (U) zamiast tyminy (T) Translacja Białko
Replikacja,, transkrypcja, translacja DNA: ATGTGTGGAATTGTTGGCGCGATCGCGCAA RNA: Transkrypcja AUGUGUGGAAUUGUUGGCGCGAUCGCGCAA Białko: Translacja MCGIVGAIAQ
Kod genetyczny Kod genetyczny U U Phe Phe Leu Leu C Ser Ser Ser Ser A Tyr Tyr Stop Stop C Leu Leu Leu Leu Pro Pro Pro Pro His His Gln Gln A Ile Ile Ile Met Thr Thr Thr Thr Asn Asn Lys Lys G Val Val Val Val Ala Ala Ala Ala Asp Asp Glu Glu G Cys Cys Stop Trp Arg Arg Arg Arg Ser Ser Arg Arg Gly Gly Gly Gly U C A G U C A G U C A G U C A G Kolejne trójki nukleotydów kodują kolejne aminokwasy 3 kodony są nonsensowne Ponadto kod jest: ciągły i bezprzecinkowy uniwersalny zdegenerowany
Translacja 5 AUGCGCGGAUCCCCCACCUGA 3 Met Arg Gly Ser Pro Thr Stop (M R G S P T)
Transkrypcja, translacja Transkrypcja, translacja Polimeraza RNA Duple DNA Rybosom Kierunek transkrypcji Kierunek translacji R H 2 N COOH O R H 2 N R HN HOOC NH O R
D Białka - struktura pierwszorzędowa T D T E V I A H L V N W E L K Q G mrna A S A G L A V V D A E G H M T R L R R L G mrna
Aminokwasy - nazwy A Ala alanina C Cys cysteina D Asp kw. asparaginowy E Glu kw. glutaminowy F Phe fenyloalanina G Gly glicyna H His histydyna I Ile izoleucyna K Lys lizyna L Leu leucyna M Met metionina N Asn asparagina P Pro prolina Q Gln glutamina R Arg arginina S Ser seryna T Thr treonina V Val walina W Trp tryptofan Y Tyr tyrozyna
Aminokwasy - struktury H 2 N COOH H 2 N COOH H 2 N COOH Glicyna Alanina Valina H 2 N COOH Leucyna H 2 N COOH Izoleucyna Prolina N H COOH OH N H H 2 N COOH H 2 N COOH H 2 N COOH Fenyloalanina Tyrozyna Tryptofan
Aminokwasy - struktury SH SCH 3 H 2 N COOH H 2 N COOH Cysteina Metionina OH COOH CONH 2 H 2 N COOH H 2 N COOH H 2 N COOH Seryna Kw. asparaginowy Asparagina OH COOH CONH 2 H 2 N COOH Treonina H 2 N COOH Kw. glutaminowy H 2 N COOH Glutamina
Aminokwasy - struktury HN HN NH 2 NH 2 H N N H 2 N COOH H 2 N COOH H 2 N COOH Arginina Lizyna Histydyna
Aminokwasy - właściwości drobne alifatyczne małe polarne hydrofobowe naładowane aromatyczne naładowane dodatnio
Białka - struktura drugorzędowa T D T E V I A H L V N W E L K Q G O R H 2 N R HN HOOC NH O R
Białka - struktura drugorzędowa D A S A G L A V V D A E G H M T R L R R L G
Białka - struktura trzeciorzędowa
Białka - struktura czwartorzędowa
Bioinformatyka Bioinformatyka to nauka wykorzystująca matematykę a w szczególności informatykę do rozwiązywania problemów z zakresu biologii i biologii molekularnej. Dysponujemy sekwencją nukleotydową aminokwasową
Gęstość informacji Gęstość informacji ATGTGTGGTATTTTTGGTTACGTCAATTTCT CVVFLVTSISWSTRVEVKSGIFGYVNFLVDK {ATGC} 2 bity na pozycję {20 a.k.} > 4 bity na pozycję
Problem ramki odczytu Problem ramki odczytu --- UUCUCGGACCUGGAGAUUCACAGU --- UUC UCGGACCUGGAG AUU CAC AGU 5 3 ramka 1 Phe Ser Asp Leu Glu Ile His Ser U UCUCGGACCUGGAGAUUCACA GU 5 3 ramka 2 Ser Arg Thr Trp Arg Phe Thr 5 3 ramka 3 UU CUCGGACCUGGAGAU UCACAG U Leu Gly Pro Gly Asp Ser Gln
Sekwencje nukleotydów i aminokwasów Sekwencje nukleotydów i aminokwasów 60 nukleotydów 20 kodonów ATGTGTGGTATTTTTGGTTACGTCAATTTCT TGGTCGACAAGAGTAGAGGTGAAATCATT 5'3' Ramka 1 Met C G I F G Y V N F L V D K S R G E I I 5'3' Ramka 2 C V V F L V T S I S W S T R V E V K S 5'3' Ramka 3 V W Y F W L R Q F L G R Q E Stop R Stop N H
Podobieństwa i homologie Podobieństwa i homologie Rodzina białek identyczne aminokwasy (% identity) podobne aminokwasy (% similarity) homologia (homology) Komputer i internet - wymarzone narzędzia
Szukanie sekwencji w bazie danych Szukanie sekwencji w bazie danych Ponad 3,185,498 sekwencji Ponad 1,044,150,180 amiokwasów
Istotność wyniku przeszukiwania (Prawdopodobieństwo strzelenia byka ) Prawdopodobieństwo trafienia 1 aminokwasu 1/20 dwóch kolejnych (1/20) 2. W bazie danych zawierającej N "liter" sekwencja n liter wystąpi N*(1/20) n razy. KV KVR KVRA KVRAS KVRASV KVRASVK KVRASVKK KVRASVKKL 488559 28592 2077 124 23 8 4 1
Istotność wyniku przeszukiwania (Prawdopodobieństwo strzelenia byka ) Wyniki poszukiwania sekwencji aminokwasów: BEZYBEZYBEZ w bazie sekwencyjnej Swiss-Prot
Bioinformatyka od sekwencji do funkcji Podobna sekwencja podobna struktura podobna funkcja Dwa (lub więcej) białka uznaje się za homologiczne, jeŝeli wywodzą się od wspólnego przodka. Powszechnie stosowane pojęcia "duŝej homologii" itp. odnoszą się do podobieństwa struktury lub sekwencji, a NIE homologii jako takiej Informacja, Ŝe pewne sekwencje są homologiczne jest najczęściej domniemaniem (na podstawie podobieństwa) a nie eksperymentalnie potwierdzonym faktem.
Bioinformatyka od sekwencji do funkcji DuŜe podobieństwo sekwencji implikuje homologię Czy sekwencje bardzo mało podobne mogą być homologiczne? podobieństwo rozciąga się na długim odcinku łańcucha i jest statystycznie istotne podobny wzorzec aminokwasów występuje w większej liczbie sekwencji nikłe podobieństwo sekwencji jest połączone z wysokim, eksperymentalnie potwierdzonym, podobieństwem struktury
Homologia Alternatywa - konwergentna ewolucja. Podobieństwo wynika z podobnej funkcji Konkluzja: wystąpienie statystycznie istotnego podobieństwa sekwencji lub struktury dwóch białek (lub ich domen), sugeruje ich pochodzenie od wspólnego przodka, czyli homologii. Homologia poprawnie nałoŝonych sekwencji implikuje "homologię" odpowiednich aminokwasów. Aminokwasy identyczne, to aminokwasy "zakonserwowane"
Homologia - niuanse Funkcja struktura białka konserwacja struktury Wiele niewątpliwie homologicznych białek o bardzo podobnej strukturze wykazuje nikłe podobieństwo sekwencji Czy podobieństwo struktury implikuje homologię? Baza PDB zawiera ponad 20 tysięcy róŝnych struktur, ale posiadają one stosunkowo niewiele róŝnych topologii
Przykładowa struktura Przykładowa struktura
Przykładowa struktura Przykładowa struktura
Przykładowa struktura Przykładowa struktura
Przykładowa struktura Przykładowa struktura
Porównywanie sekwencji Porównywanie sekwencji (A) (B) CGIFAYMNYRVPKTR CGIFAYMNYRVPKTR C GIFAYMNYRVPKTR CG IFAYMNYRVPKTR CGI FAYMNYRVPKTR...
Porównywanie sekwencji Porównywanie sekwencji Co z sekwencjami identycznymi np. "tylko" w 90%? RóŜne aminokwasy wymieniają się z róŝnym prawdopodobieństwem. RóŜne właściwości fizykochemiczne. "Aminoacids substitution matri (macierz podstawienia aminokwasów) S = k ln ij p q i ij p j
Aminoacids substitution matri A R N D C Q E G H I L K M... 5-2 9-1 0 8-1 -1 2 9-2 -3-2 -2 16 0 2 1-1 -4 8-1 -1-1 2-2 2 7 1-3 0-2 -3-2 -3 8-2 0 1 0-4 0 0-2 13-1 -3-2 -4-4 -3-4 -4-3 6-2 -2-3 -3-2 -2-2 -4-2 2 6-1 3 0 0-3 1 1-2 -1-3 -2 6-1 -1-2 -3-3 -1-2 -2 1 1 3-1 7.................................... A R N D C Q E G H I L K M F P S T W Y...
Porównywanie sekwencji Porównywanie sekwencji CGIFAYMNYRVPKTR CGIGAYMNYRIPKTR CGIFAYMNYRVPKTR CGIGAYMNYRIPKTR *** ******:**** CGIFAYMNYRVPKTR CGIMNYRVPKTR CGIFAYMNYRVPKTR CGIMNYRVPKTR *** * : CGIFAYMNYRVPKTR CGI---MNYRVPKTR *** ********* gaps - przerwy
Porównywanie sekwencji Porównywanie sekwencji Punktacja ( score ) to suma punktów dla kaŝdej pozycji IARCH IKCN IARCH IKCN * IARCH I-KCN * :*. IARCH IK-CN * *. S = (6) + (-1) + (-3) + (-2) = 0 S = (6) + (-12) + (3) + (16) + (1) = 14 S = (6) + (-1) + (-12) + (16) + (1) = 10
Porównywanie sekwencji algorytm Needleman-Wunsch A: IARCHKV B: IKCNIL Macierz w : BLOSUM50 gap penalty : -8 - I K C N I L - I A R C H K V 0-8 -16-24 -32-40 -48-8 -56 5-3 -11-19 -27-35 -43 i -16-3 4 0-8 -16-21 -29-24 -11-4 0 13 5-3 -11-32 -19-12 -5 5 14 6-2 -40-27 -20-13 -3 6 11 10-48 -35-28 -21-11 -2 3 12 H i, j = ma H H H i 1, j 1 i, j 1 i 1, j + + + w w w A A i i,,, B IARCHKV I-KCNIL score B i
Porównywanie sekwencji Porównywanie sekwencji A B Global alignement (dopasowywanie globalne) A B
Porównywanie sekwencji Porównywanie sekwencji Local alignement (dopasowywanie lokalne)
Porównania sekwencji - przykład global alignment scoring matri: BLOSUM50, gap penalties: -14/-4 13.8% identity; Global alignment score: -155 10 20 30 40 50 XYZ AAQ-TNAPWGLARISSTSPGTSTYYYDESAGQGSCVYVIDTGIEASHPEFEGRAQMVKTY....: :... :.:. :.:....:... ABC IVEGSDAEIGMSPWQVMLFRKSPQELLCGASLISDRWVLTAAHCLLYPPWD---KNFTEN 10 20 30 40 50 60 70 80 90 100 110 XYZ YYSSRDGNGHGTHCAGTVGSRTYGVVKKTQLFGVKVLDDNGSGQYSTIIAGMDFVASDKN : :. :.......:..:..... :: ABC DLLVRIGKHSRTRYERNI--EKISMLEKIYIHPRYNWRENLDRDIALMKLKKPVAFSDYI 60 70 80 90 100 110 120 130 140 150 160 170 XYZ NRNC-PKGVVASLSLGGGYSSSVNSAAARLQSSGVMVAVAAGNNNADARNYSPASEPSVC. : :.:. :.::.. :... :.... :. :... : : :: ABC HPVCLPDRETAASLLQAGYKGRV-TGWGNLKETWT-ANVGKGQPSVLQVVNLPIVERPVC 120 130 140 150 160 170 ------------------------------------------------------------------- 240 250 260 270 XYZ TLGKTTAASACRYIADTANKGDLSNIPFGTVNLL--AYNNYQA.:....: :.:.. :...... ABC QMGIVSWGEGC----DRDGKYGFYTHVFRLKKWIQKVIDQFGE 230 240 250
Porównania sekwencji - przykład local alignment 32.4% identity in 34 aa overlap; score: 35 E(10,000): 8.5e+03 100 110 120 XYZ DDNGSGQYSTIIAGMDFVA-SDKNNRNCPKGVVA :.. :..: :: : ::: :.:. ABC DEGKRGDACEGDSGGPFVMKSPFNNRWYQMGIVS 200 210 220 26.1% identity in 23 aa overlap; score: 33 E(10,000): 9.4e+03 50 60 XYZ PEFEGRAQMVKTYYYSSRDGNGH :. : :... :. : :. ABC PDRETAASLLQAGYKGRVTGWGN 130 140 22.6% identity in 31 aa overlap; score: 33 E(10,000): 9.4e+03 20 30 40 XYZ RISSTSPGTSTYYYDESAGQGSCVYVIDTGI :.... :... :: :. :.. : ABC RVTGWGNLKETWTANVGKGQPSVLQVVNLPI 140 150 160
Przeszukiwanie sekwencyjnych baz danych FASTA - homologiczne sekwencje zawierają wspólne "słowa", czyli krótkie (2,3,4 literowe) zakonserwowane fragmenty. Parametr "k-tuple" (3) definiuje długość słowa. BLAST - (Basic Local Alignment Search Tool) szuka słów o długości W (3), z oceną nałoŝenia przynajmniej T. Parametry W i T definiują szybkość i czułość
Istotność wyniku przeszukiwania (Prawdopodobieństwo strzelenia byka ) Wyniki poszukiwania sekwencji aminokwasów: BEZYBEZYBEZ w bazie sekwencyjnej Swiss-Prot przy pomocy serwisu BLAST 3,185,498 sequences; 1,044,150,180 total letters
Dopasowanie wielu sekwencji (multiple sequence alignement) 10 20 30 40 50 GFA1_C CGIFGYVNFLVDKSRGEIIDNLIEGLQRLEYRGYDSAGIAV---DGKLTKDPSNGDEEYM ::: :...... :.:::.:::::::::::.::.:..:. GLMS_E CGIVGAI------AQRDVAEILLEGLRRLEYRGYDSAGLAVVDAEGHMTR---------- 10 20 30 40 CGIFGYVNFLVDKSRGEIIDNLIEGLQRLEYRGYDSAGIAVDGKLTKDPSNGDEEYMDSI CGIVGAIAQR------DVAEILLEGLRRLEYRGYDSAGLAVVDAEG-----------HMT CGIVGYVGRD------LALPIVLGALERLEYRGYDSAGVALIE------------DGKLI CGIVGYVGFR------NATDVLLDGLRRLEYRGYDSAGIAVRT------------PEGLK CGLVGYVGQR------PACGVVMDALRRMEYRGYDSSGIALINGSAK--------SGNLT CGIVACILKD-----GSAAPVLLECVRRLEYRGYDSVGIATS-------------DPMIR CGIIGYIGP------RKASDVIVEGLKRLEYRGYDSAGIATCY------------EGKIF CGIIGLAFAEG----NSVAGALVRGLKRLEYRGYDSMGVAVIEP-----------PGRLV CGIVGMVGEN------LKLEDLVTSLQKLEYRGYDSAGIAYLG-------------DSFG CGIVGIVGHQ------PVSERLVEALEPLEYRGYDSAGVATMDAG------------TLQ CGIVGYIGDS------EKKSILLEGLKELEYRGYDSAGLAVLS------------ANRLE CGIVGVVGSK------NATDILMQGLEKLEYRGYDSAGIFVNGQ-----------ETAAK CGIFGYLGNQ------DGVSIVLEGLAKLEYRGYDSAGLAAVV------------EQELF CGIIGYVGEG------SCRDVLINGLDKLSYRGYDSAGIAFIK------------NSKIN **:.. :: : :.****** *:
Dopasowanie wielu sekwencji (multiple sequence alignement) Porównanie wielu sekwencji (ang. Multiple sequence alignment), szczególnie sekwencji o nikłym podobieństwie, pozwala precyzyjniej zidentyfikować naprawdę istotne aminokwasy dla danej rodziny białek MSA najczęściej jest niezbędnym etapem przed dalszą próbą przewidywania drugo- i trzeciorzędowej struktury białka