Bioinformatik Algoritmiske Aspekter hristian Nørgaard Storm Pedersen BRIS Datalogisk Institut Aarhus Universitet IT-, April, 2001
Bioinformatik Bioinformatik er udvikling og anvendelse af algoritmer og programmer til indsamling, håndtering og analyse af biologisk data ifm. undersøgelser af biologiske processer... Virkeligheden Modeller Problemer Programmer DNA: A T G G T... RNA: A U G U A G G... Protein: Met Arg Leu... Input: a[1..n],b[1..m] Output: dist(a,b) D[0,0..m]=D[0..n,0]=0 FOR i=1 TO n DO FOR j=1 TO m DO D[i,j]= min(d[i-1,j-1]+ d(a[i],b[j]), D[i-1,j]+1, D[i,j-1]+1) OD OD RETURN D[n,m] A G G T ompbio dist(a,b) Bioinformatik involverer... - kendskab til den biologiske virkelighed - formulering af modeller og beregningsproblemer - design og analyse af algoritmer - konstruktion og brug af programmer Fokus afhænger af baggrund: Datalogi, biologi, statistik, medicin... Bioinformatik 1
Plan Vi vil fokusere på sekvens-analyse... Tirsdag d. 17. april Molekylær biologi, DNA, RNA og protein Indsamling af sekvensdata, shotgun sequencing Sammenligning af to sekvenser, edit afstand, alignment Forbedringer af model og algoritme, pladsforbrug... Tirsdag d. 24. april Søgning i databaser, lokal alignment Sammenligning af flere sekvenser, multipelt alignment Andre problemer, strukturforudsigelse, DNA hips... Bioinformatik 2
Deoxyribo Nucleic Acid Bioinformatik fokuserer på molekylær og genetisk data... Et menneske består af 100 10 12 celler. Hver celle indeholder bl.a. 46 kromosomer, DNA molekylær, som lagrer genetisk information, arvemassen... 1869: DNA opdaget i køers cellekerner 1953: DNAs dobbelt-helix struktur og Watson- rick basepar A T og G beskrevet 1960: Den genetiske kode brudt... Den menneskelige arvemasse, det human genome, er ca. 3 10 9 bp langt og indeholder ca. 30.000 gener (Feb 2001). Hvert gen indkoder et protein... Bioinformatik 3
Biologiske sekvenser Et gen udtrykkes ved at dets kodende DNA transskriberes til RNA som igen translateres til et protein, en sekvens af aminosyrer... transskription A A G G T U translation TTG TG GG transskription UUG UG GG translation Leu Leu Arg DNA S {A,, G, T } transskription RNA S {A,, G, U} translation Protein S Σ, Σ = 20 Bioinformatik 4
Indsamling af sekvensdata 1940 erne: Aminosyre sekvens for insulin [Sanger et al.] 1960 erne: 77 nukleotider af trna [Holley et al., 1965] 1970 erne: 5.386 nukleotider af virus DNA [Sanger et al., Maxam and Gilbert, 1977] 1990 erne: 50.000 3.000.000.000 bp lange DNA sekvenser... DNA Shotgun Sequencing opdel i små overlappende fragmenter (300 500 bp) aflæs hver segment eksperimentielt sammensæt de aflæste segmenter gatg at at agc agat agg gaa at ta gcgc atc ggat aa at at gcg taga --------------------------- aggatgaaatatatatagcgctagatc Sequence Assembly find overlap, lav layout, find konsensus problemer hvis mange gentagelser Double-Barreled Shotgun Sequencing... Algoritmiske problemer er tæt knyttet til eksperimentielle metoder... Bioinformatik 5
Tilgængelige Genomer HAEMOPHILUS INFLUENZAE (1995) Størrelse 1.8 millioner basepar. Antal gener 1.740 HSAHAROMYES EREVISIA (GÆR) (1996) Størrelse 12.1 millioner basepar. Antal gener 6.275 AENORHABDITIS ELEGANS (ORM) (1998) Størrelse 97 millioner basepar. Antal gener 19.099 ARABIDOPSIS THALIANA (December 2000) Størrelse 125 millioner basepar. Antal gener 25.000 DROSOPHILA MELANOGASTER (FLUE) (Marts 2000) Størrelse 185 millioner basepar. Antal gener 13.601 MUS MUSULUS (Næsten færdigt, 3x dækning, Februar 2001) Størrelse 3000 millioner basepar. Antal gener 30.000 HOMO SAPIENS (Juni 2000, Februar 2001) Størrelse 3000 millioner basepar. Antal gener 30.000 Bioinformatik 6
Tilgængelig sekvensdata GenBank en database med 10.106.000 DNA sekvenser med samlet længde 11.101.000.000 bp (Dec 2000), www.ncbi.nlm.nih.gov/web/genbank/ Mange specialiserede databaser, f.eks. www.genome.ucsc.edu som lagre det humane genome. Annoteringer, opdateringer, krydsreferencer... Focus på WWW and DB teknologi... Bioinformatik 7
Evolution af genetisk materiale Genetisk materiale, DNA sekvenser, udvikles over tid ved mutationer... Translocations Inversions Genomer Duplications Insertions Gener Deletions Substitutions GTTAT ins GTTAT del TTAT sub TTGT TTGT dup TTGTTGT trans TGTTGTT inv GTTTGTT Parsimony princippet Den nemmeste vej er et godt estimat af evolutionen, dvs. sekvenser som ligner hinanden er beslægtede og opfører sig ens... Bioinformatik 8
Sammenligning af sekvenser En oplagt kilde til biologisk information... Alignment af to sekvenser Givet to sekvenser som er udviklet fra en fælles stamfar, konstruer et alignment således at baser i samme søjle er udviklet fra samme base i den fælles stamfar... : TTGTG A : TTG B : TTGT T T G T T G T insert TG, G Formulering af et beregningsproblem, rekonstruktion af evolutionen... - Hvordan ser den fælles stamfar ud? - Hvilke evolutionære hændelser kan ske? hvordan? Konstruktion af en biologisk rimelig og beregningsmæssig håndterlig evolutionær model er svært og fundamentalt problem... Bioinformatik 9
En simpel evolutionærmodel Husk parsimony princippet der siger at den nemmeste vej er et godt estimat af den evolutionære historie... Hvis hændelser er reversible, dvs. hvis s e s så også s e s, så... dist(a, B) = min { E 1 + E 2 A E 1 E 2 B},E 1,E 2 Insert Leu Leu TTGTG G = min { E 1 + E 2 A E 1 E 2 B},E 1,E 2 Leu TTG Leu Leu TTGT = min E { E A E B} G Phe TT Insert Nemmeste vej modelleres som den korteste vej eller billigste vej... Beregning af dist(a, B) og et optimalt edit-script E er et fundamentalt problem indenfor bioinformatik. Problemets kompleksitet afhænger af de tilladte hændelser og deres omkostning... Bioinformatik 10
To afstandsproblemer Inversions-afstand: Givet A = π(1,..., n) og B = π(1,..., n), der beskriver rækkefølgen af de samme gener i to organismer. Bestem det mindste antal inversioner der fører A over i B, f.eks. 4, 1, 3, 2, 5 1, 4, 3, 2, 5 1, 2, 3, 4, 5 Et af mange genome rearrangement problemer, men NP-fuldstændigt... Edit-afstand: Givet A Σ og B Σ, der beskriver to biologiske sekvenser. Bestem den billigste sekvens af subs og indels der fører A over i B, hvor en sub af a med b koster d(a, b) og en indel af k symboler koster g(k), f.eks. TTG TTGTG TTGT, pris g(3) + d(g, ) TTG TT TTGT, pris d(g, ) + g(3) Beregnelig i tid O(nm) under rimelige antagelser... Bioinformatik 11
Antagelser ifm. edit-afstand Nogle interessante spørgsmål... Hvor mange mulige edit-scripts er der mellem A og B? Hvor mange af disse skal overvejes for at sikre at et optimalt edit-script identificeres? Formulering af en algoritme kræver antagelser om omkostningsfunktionen sub-cost d(a, b) er en metrik, altså d(a, a) = 0 d(a, b) = d(b, a) d(a, b) d(a, c) + d(c, b) gap-cost g(k) er sub-additiv, altså g(k) g(k ) + g(k ), for alle k, k hvor k + k = k Evolutionen har ingen retning og vælger den nemmeste løsning... Bioinformatik 12
Edit-afstand og alignment Hvis d(a, b) er en metrik og g(k) er sub-additiv, så kan et optimalt edit-script mellem A og B udtrykkes som et alignment... T T G A T T G TTGT TGT GT T AT ATG g(1) + d(t, ) + g(1) + g(1) + g(1) T T G T A T G TTGT TGT T A ATG d(t, ) + g(2) + d(t, A) + g(2) Parvis alignment: Givet to strenge A[1.. n] og B[1.. m], en metrisk sub-cost d(a, b), og en sub-additiv gap-cost g(k). Bestem et optimal alignment af A og B... Observation: Hvis g(k) = α k, altså lineær, så er prisen for et alignment blot summen af prisen for de enkelte søjler... Bioinformatik 13
Formulering af en rekursiv løsning Vi kan beregne dist(a, B) ved at beregne prisen for et optimalt alignment Lad D(i, j) være prisen for et optimalt alignment af A[1.. i] og B[1.. j]. Pr. definition haves D(0,0)=0. Vi kan udtrykke D(i, j) rekursivt ved at betrage den sidste søjle i mulige alignments af A[1.. i] og B[1.. j]. Der er tre muligheder... A[i] B[j ], A[i] or B[j ] Dette giver anledning til følgende rekursion... D(i 1, j 1) + d(a[i], B[j]) i > 0 og j > 0 D(i, j) = min D(i 1, j) + α i > 0 og j 0 D(i, j 1) + α i 0 og j > 0 0 i = 0 og j = 0 D(n, m) er edit-afstanden mellem A og B... Bioinformatik 14
Dynamisk programmering func Dist(i,j): if D(i, j) = undef then v 1 = v 2 = v 3 = v 4 = undef if (i > 0) & (j > 0) then v 1 = Dist(i 1,j 1) + d(a[i], B[j]) if (i > 0) & (j 0) then v 2 = Dist(i 1,j) + α if (i 0) & (j > 0) then v 3 = Dist(i,j 1) + α if (i = 0) & (j = 0) then v 4 = 0 D(i, j) = min(v 1, v 2, v 3, v 4 ) endif return D(i, j) endfunc D[0.. n][0.. m] = undef; Dist(n,m) Tid og plads O(nm) Bioinformatik 15
En ikke-rekursiv implementation Jvf. rekursion afhænger indgang (i, j) i tabel D kun af indgange i samme og forrige række. Dette kan bruges til at udfylde tabel D iterativt... /* initialisering */ for i = 0 to n do D[i][0] = i α for j = 0 to m do D[0][j] = j α /* udfyld række for række */ for j = 1 to m do endfor for i = 1 to n do endfor D(i, j) = print D(n, m) min(d(i 1, j 1) + d([a[i], B[j]), D(i 1, j) + α, D(i, j 1) + α) D(n, m) er edit-afstanden, men hvordan fås et optimalt alignment? Ved back-tracking i tid O(n + m)... Bioinformatik 16
Længste fælles delsekvens Beregning af et optimalt alignment har mange anvendelser... Den længste fælles delsekvens af to strenge A[1.. n] og B[1.. m] er A[i 1 ], A[i 2 ],..., A[i k ], hvor i 1, i 2,..., i k {1, 2,..., min(n, m)} så A[i j ] = B[i j ] og k er maksimal, f.eks. LS(GATAATTGAG,GTTTAAT) = GTAAT Svarer til et optimalt alignment for passende valg af sub-cost og gap-cost. Overvej hvilke? G A T A A T T G A G G T T T A A T Vi kan således beregne LS i tid O(nm), men det er faktisk muligt at beregne LS i tid O(n log n) jvf. [Hirschberg 1977]... Bioinformatik 17
En beslægtet algoritme Ønsker ofte at fremhæve similariteter mellem to strenge. Hvis to biologiske sekvenser ligner hinanden, så har de sikkert et eller andet tilfælles... G A T A A T T G A G G T T T A A T Typisk tildeles en score/straf til mulige søjler i et alignment score s(a, b) for en match-søjle ( ) a b straf α for en gap-søjle ( ( a ) eller ) b Beregn et alignment med maksimal score sim(a, B). Dette kan beregnes tilsvarende dist(a, B), blot anvendes max istedet for min... S(i, j) = max S(i 1, j 1) + s(a[i], B[j]) i > 0 og j > 0 S(i 1, j) α i > 0 og j 0 S(i, j 1) α i 0 og j > 0 0 i = 0 og j = 0 Bioinformatik 18
Algoritmens oprindelse - V. I. Levenshtein. Binary codes capable of correcting deletions, insertions and reversals. Soviet Physics Doklady, 1966. - T. K. Vintsyuk. Speech discrimination by dynamic programming. Kibernetika, 1968. - S. B. Needleman and. D. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology, 1970. - D. Sankoff. Matching sequences under deletion/insertion constraints. Proc. of the National Academy of Science of the USA, 1972. - R. A. Wagner and M. J. Fisher. The string to string correction problem. Journal of the AM, 1974. - P. H. Sellers. On the theory and computation of evolutionary distance. SIAM Journal of Applied Mathematics, 1974. Alle omhandler samme problem, forskellige anvendelser... Bioinformatik 19
Forbedringer af model og algoritme Beregning af edit-afstand er kernen i mange anvendelser. Kan forfines vha. pris for hændelser, f.eks. substitution-cost d(x, y) and gap-cost g(k)... Hvis lineær gap-cost g(k) = ak så tid O(n 2 ), generelt tid O(n 3 ) Leu TTG T T G T A T G versus T T G T A T G d(t, ) + g(2) + d(t, A) + g(2) Insert G Leu Leu TTGTG Phe TT G Insert Leu Leu TTGT Korte insertions og deletions er sjældne... affin gap-cost g(k) = ak + b i tid O(n 2 ) [Gotoh, 1982] convex gap-cost i tid O(n 2 log n) [Miller og Myers, 1988] Anden biologisk information... indkodet protein i tid O(n 2 ) [Hein, Lyngsø og Pedersen, 1998] RNA sekundær-struktur i tid O(n 6 ) [Sankoff, 1985] Bioinformatik 20
Er tid og plads O(nm) godt nok? Afhænger af længden af typiske sekvenser... Antag n = m = 10.000 og at vores maskine kan udføre 100.000.000 op/sek, så Tid: Begrænsning af tid og plads 10.000 10.000 op 100.000.000 op/sek = 1 sek Plads: 10.000 10.000 celler 100 Mb Mange heuristikker, f.eks. kun at beregne et bånd omkring diagonalen i tabellen... T G A T T T G T Længste fælles delsekvens i tid O(n2 ) og plads O(n) En meget anvendelig teknik [Hirschberg, 1975]... men ikke anvendt i praksis før sidst i 1980 erne!! [Myers and Millers, 1989] Bioinformatik 21