You are on page 1of 54

Bioinformatiki algoritmi

Analiza DNK sekvenci

Petar Velikovi
Matematika gimnazija, Nedelja informatike

30. mart 2015.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

Bioinformatika

Bioinformatika (bioinformatics): polje raunarstva koje razvija


algoritme, strukture podataka i softverske alate za analizu
biolokih podataka.

Pored raunarskih nauka i biologije, obuhvata i elemente


statistike, matematike i inenjerstva.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

Bioinformatiki algoritmi
Bioinformatiki algoritmi pripadaju raznim oblastima:
Teorija grafova;
Vetaka inteligencija;
Analiza podataka (data mining);
Obrada slika;
Raunarska simulacija;
...

Bioinformatiki algoritmi prouavaju pojave na gotovo svim


nivoima organizacije unutar nekog organizma:
Tkiva;
elije;
Putevi (Pathways);
Biohemijske reakcije;
Biomolekuli (DNK, RNK, proteini. . . )
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

DNK
Dezoksiribonukleinska kiselina (deoxyribonucleic acid,
skraeno DNK/DNA): molekul koji u sebi sadri genetike
instrukcije neophodne za razvoj i funkcionisanje gotovo svih
ivih organizama.
Sastoji se od dve niti isprepletane u formi dvostrukog heliksa:

Niti se sastoje od niza osnovnih baza, tj. nukleotida:


Adenin (A);
Timin (T);
Citozin (C);
Guanin (G).
Nukleotidi su uvek komplementarni (A-T, C-G), tako da je za
analizu dovoljno znati jednu nit DNK.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

Transkripcija gena
Glavna funkcija DNK je uvanje "recepta" za sintezu proteina.
Proteini se dobijaju 3D uvrtanjem nekog niza amino-kiselina;
deo DNK koji sadri informacije neophodne za sintezu jednog
takvog niza se naziva gen.
Sinteza proteina poinje prepisivanjem (transkripcijom)
neophodnog gena u RNK molekul (informacioni
RNK/messenger RNA (iRNK/mRNA)).
Ribonukleinska kiselina (ribonucleic acid, skraeno
RNK/RNA) je molekul slian DNK, s tim to je timin zamenjen
uracilom (U) i sastoji se od samo jedne niti.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

Translacija u protein

Unutar iRNK, nukleotidi se dele u grupe od po tri susedna, koje


se zovu kodoni.

Svaki kodon ili odgovara jednoj amino-kiselini, ili je specijalan


stop kodon. Stop kodoni su UAG, UAA i UGA.

Prevoenje (translacija) iRNK u niz amino-kiselina se radi


kodon po kodon, sve dok se ne doe do stop kodona.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Uvod u bioinformatiku
DNK
Sinteza proteina

Sinteza proteina sumarizovano

... GTGCATCTGACTCCTGAGGAGTAG ...


... CACGTAGACTGAGGACTCCTCATC ...

DNK

transkripcija
GUGCAUCUGACUCCUGAGGAGUAG

iRNK

translacija
V

Petar Velikovi

E STOP

protein

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

DNK mutacije
Struktura DNK nije konstantna, nego je podlona
mutacijama; ovo je deo prirodne selekcije i nain kojim nove,
prilagoenije vrste organizama nastaju od starijih.
Neki tipovi mutacija:
Supstitucija:
TGCATTGCGTAGGC
TGCATTCCGTAGGC
Insercija/delecija:
TGCATT---TAGGC
TGCATTCCGTAGGC
Inverzija:
TGCATTGCGTAGGC
TGCGCGTTATAGGC

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Problem poravnanja
Ovo nas dovodi do glavnog problema koji emo razmatrati:
problem poravnanja DNK sekvenci (DNA sequence
alignment).
Pretpostavimo da imamo dve DNK sekvence, koje pripadaju
dvema razliitim vrstama. Zadatak je da identifikujemo sline
( nemutirane) regione izmeu njih.
Razlikujemo dva odvojena problema:
Globalno poravnanje: poravnanje celokupnih sekvenci;
Lokalno poravnanje: pronalaenje regiona visoke slinosti.

Poravnanjem takoe odredjujemo i koliko su dve DNK


sekvence "udaljene" jedna od druge.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Hamming distanca
Najjednostavniji algoritam za poravnanje razmatra samo
supstitucije kao mogue mutacije.
Udaljenost se onda rauna kao Hamming distanca izmeu
sekvenci; broj mesta na kojima se nukleotidi razlikuju.
Hamming("ATCG", "ACCG") = 1
O(n) algoritam za raunanje trivijalan (uz potencijalne
optimizacije ako vie puta raunamo distancu nad
podstringovima iste sekvence. . . Quals 2015: Retrovirus)

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Dinamiko programiranje

Hamming distanca nije dobra metrika u optem sluaju, npr:


Hamming("ATATATAT", "TATATATA") = 8

Za korektniji rezultat, neophodno je prei na algoritme


dinamikog programiranja.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Najdui zajedniki podniz (LCS)


Najjednostavniji ovakav algoritam je najdui zajedniki podniz
(Longest Common Subsequence, LCS), koji dozvoljava samo
insercije i delecije. Podniz je niz koji se dobije potencijalnim
brisanjem nekih elemenata originalnog niza.
LCS("AGCATT", "TGTCAT") = "GCAT"
LCS("ATATATAT", "TATATATA") = "ATATATA"
= Optimalna poravnanja:
A-G-CATT
-ATATATAT
-TGTCA-T
TATATATALCS je standardni takmiarski algoritam
(IOI 2000: Palindromes).
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

LCS
LCS algoritam:
Ulaz: sekvence X (duine n) i Y (duine m).
Definiimo LCS(i, j) (i n, j m) kao duinu najdueg
zajednikog podniza od prefiksa X[1..i] i Y [1..j]. Optimalna
duina je onda LCS(n, m); sam podniz se izvlai backtrack-om
kroz tabelu.
Bazni sluajevi: LCS(i, 0) = LCS(0, j) = 0.
(
LCS(i 1, j 1) + 1
LCS(i, j) =
max(LCS(i 1, j), LCS(i, j 1))

X[i] = Y [j]
X[i] 6= Y [j]

Vremenska i memorijska sloenost: O(n m).


Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch algoritam
Needleman-Wunsch algoritam:
Modifikacija LCS algoritma u kojoj su dozvoljene supstitucije;
dati su i "skorovi" za svaku akciju:
m za isti nukleotid;
s za supstituciju;
d za inserciju/deleciju.

Optimalno poravnanje postie najvii skor.


Definiemo N W (i, j) slino kao i LCS(i, j).
Vremenska i memorijska sloenost algoritma je i dalje O(n m).

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, contd
Bazni sluajevi: N W (i, 0) = N W (0, i) = i d.

N W (i 1, j 1) + score(i, j)
N W (i, j) = max N W (i 1, j) d

N W (i, j 1) d
(
m X[i] = Y [j]
score(i, j) =
s X[i] 6= Y [j]
Primetiti: LCS(i, j) je N W (i, j) sa parametrima:
m = 1;
s = +;
d = 0.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, primer
NeedlemanWunsch("CATGT", "ACGCTG")
m=2
s=d=1

C
A
T
G
T

0
1
2
3
4
5

0
0
-1
-2
-3
-4
-5

A
1
-1

Petar Velikovi

C
2
-2

G
3
-3

C
4
-4

T
5
-5

G
6
-6

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, primer
NeedlemanWunsch("CATGT", "ACGCTG")
m=2
s=d=1

C
A
T
G
T

0
1
2
3
4
5

0
0
-1
-2
-3
-4
-5

A
1
-1
-1
1
0
-1
-2

Petar Velikovi

C
2
-2
1
0
0
-1
-2

G
3
-3
0
0
-1
2
1

C
4
-4
-1
-1
-1
1
1

T
5
-5
-2
-2
1
0
3

G
6
-6
-3
-3
0
3
2

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, primer
NeedlemanWunsch("CATGT", "ACGCTG")
m=2
s=d=1
A C G C T G
0 1 2 3 4 5 6
0
0 -1 -2 -3 -4 -5 -6
C 1 -1 -1 1 0 -1 -2 -3
A 2 -2 1 0 0 -1 -2 -3
T 3 -3 0 0 -1 -1 1 0
G 4 -4 -1 -1 2 1 0 3
T 5 -5 -2 -2 1 1 3 2
-C-ATGT
ACGCTGPetar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, primer
NeedlemanWunsch("CATGT", "ACGCTG")
m=2
s=d=1
A C G C T G
0 1 2 3 4 5 6
0
0 -1 -2 -3 -4 -5 -6
C 1 -1 -1 1 0 -1 -2 -3
A 2 -2 1 0 0 -1 -2 -3
T 3 -3 0 0 -1 -1 1 0
G 4 -4 -1 -1 2 1 0 3
T 5 -5 -2 -2 1 1 3 2
-CA-TGT
ACGCTGPetar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Needleman-Wunsch, primer
NeedlemanWunsch("CATGT", "ACGCTG")
m=2
s=d=1
A C G C T G
0 1 2 3 4 5 6
0
0 -1 -2 -3 -4 -5 -6
C 1 -1 -1 1 0 -1 -2 -3
A 2 -2 1 0 0 -1 -2 -3
T 3 -3 0 0 -1 -1 1 0
G 4 -4 -1 -1 2 1 0 3
T 5 -5 -2 -2 1 1 3 2
CATG-T-ACGCTG
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Smith-Waterman algoritam
Smith-Waterman algoritam:
Modifikacija N-W algoritma koja rauna optimalna lokalna
poravnanja; skor nikad ne pada ispod nule.
Definiimo SW (i, j) kao optimalan skor lokalnog poravnanja
koje se zavrava na i-toj poziciji prve i j-toj poziciji druge
sekvence.
Uglavnom rekonstruiemo sva poravnanja sa SW (i, j) > t.
Bazni sluajevi: SW (i, 0) = SW (0, j) = 0.

SW (i 1, j 1) + score(i, j)
SW (i, j) = max

SW (i 1, j) d

SW (i, j 1) d
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Optimizacija memorijske sloenosti

Sve dosadanje metode su vremenske i memorijske sloenosti


O(n m).
Nepraktino za dugake sekvence duina ljudskog genoma
3 109 nukleotida!
Memorijska sloenost postaje problem daleko pre vremenske!
Ispostavlja se da moemo optimizovati memorijsku sloenost
na O(n) bez da rtvujemo vremensku sloenost.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Kljune opservacije

Ukoliko nas interesuje samo optimalan skor globalnog


poravnanja (polje u donjem-desnom oku Needleman-Wunsch
matrice), a ne i samo poravnanje, nije potrebno vie od O(n)
memorije. (Zato?)

Definiimo funkciju N W Score(X, Y ) koja vraa poslednji


red Needleman-Wunsch tabele za sekvence X i Y .

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Hirschberg-ov algoritam
Hirschberg-ov algoritam:
Ukoliko je |X| 2 ili |Y | 2, odraditi regularan
Needleman-Wunsch algoritam nad X i Y .
Definisati sledee parametre:
xmid = |X|
2 ;
ScoreL[] = N W Score(X[1..xmid ], Y );
ScoreR[] = N W Score(reverse(X[xmid + 1..|X|]), reverse(Y ));
m
ymid = argmax (ScoreL[i] + ScoreR[m i]).
i=0

Primetiti da jedno od optimalnih poravnanja sigurno prolazi


kroz polje (xmid , ymid ) u matrici, tako da sada moemo
rekurzivno podeliti upit na dva dela:
Hirschberg(X[1..x_mid], Y[1..y_mid]);
Hirschberg(X[x_mid+1, |X|], Y[y_mid+1, |Y|]);
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Hirschberg-ov algoritam sloenost


Memorijska sloenost Hirschberg-ovog algoritma je O(n); uvek
u memoriji pamtimo najvie dva reda Needleman-Wunsch
matrice.
U jednom pozivu algoritma, radimo dva N-W upita nad
polovinama prve sekvence
i celom drugom, to je ukupne

sloenosti 2 n2 m = nm; u najgorem sluaju, ukupan broj
operacija nije vei od:
1 1
1
nm = 2nm = O(n m)
T (n, m) nm(1+ + +. . . )
2 4
1 21
Dakle, Hirschberg-ov algoritam uspeno sniava memorijsku
sloenost Needleman-Wunsch algoritma ne rtvujui pri tom
vremensku sloenost.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Kratko skretanje affine gap penalty


Dosadanji modeli su davali fiksnu cenu inserciji i deleciji
svakog nukleotida pojedinano.
U praksi, insercije/delecije se uglavnom odvijaju na veim
blokovima nukleotida odjednom, tako da je ova cena
neadekvatna.
Realnija je tzv. afina cena, gde dajemo "poetnu" cenu d za
poetak neke insercije/delecije, a zatim neku (jeftiniju) cenu e
za svaku susednu inserciju/deleciju: (n) = d + (n 1)e za
inserciju/deleciju n susednih nukleotida.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Heuristiki pristup

Dinamiko programiranje je vremenski i memorijski optimalan


metod ukoliko nas zanima optimalno poravnanje dve DNK
sekvence.
Kao to je prethodno navedeno, vremenska sloenost O(n m)
je nepraktina za velike sekvence (iako se neki algoritmi
poput Smith-Waterman-a uspevaju poprilino dobro
paralelizovati na vektorskim mainama).
Radi ubrzanja, primorani smo da preemo na heuristike
algoritme, koji e dati suboptimalna poravnanja.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

BLAST
Prva heuristika koju emo razmatrati je Basic Local Alignment
Search Tool (BLAST)trenutno verovatno najkorieniji
algoritam u bioinformatici.
Najee se koristi kada elimo da pretraimo poravnanja neke
query sekvence unutar baze podataka sekvenci (npr. ukoliko
elimo saznati kojoj vrsti pripada neka nepoznata sekvenca);
Kljuna pretpostavka: uglavnom nas zanimaju jedino lokalna
poravnanja koja su skoro savrena (95+%!).
= Ovakva lokalna poravnanja e verovatno imati neki
podstring koji je savreno sparen (bez mutacija)!

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

BLAST, contd
BLAST algoritam:
Podeliti query sekvencu na sve podstringove duine w (gde je w
dat parametarza DNK, w = 12 uglavnom).
npr. sekvenca "ATCG", w = 2 generie:
{"AT", "TC", "CG"}
Pronai sva mesta unutar baze podataka gde se neki od ovih
podstringova nalazi (tako to se preraunaju lokacije svih
podstringova duine w u bazi podataka, ili koristei npr.
Knuth-Morris-Pratt (KMP) algoritam).
Proiriti sve lokacije gde je dolo do poklapanja, u oba smera,
sve dok ukupan skor poravnanja ne padne ispod neke
definisane granice, T .
Oekivana vremenska sloenost algoritma je O(n + m), gde je
n duina query sekvence, a m duina baze podataka.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Problematinosti sa BLAST-om
Zbog predugake vrednosti w, moe se namestiti "nesrean"
primer koji je oigledno skoro savreno poravnat sa query
sekvencom, ali ga BLAST i dalje nee razmatrati:
GAGTACTCAACACCAACATTAGTGGGCAATGGAAAAT
|| ||||||||| |||||| | ||||||
||||||
GAATACTCAACAGCAACATCAATGGGCAGCAGAAAAT
Jedna opcija: smanjiti w (na 9 za gorenavedeni primer); ovo bi
imalo negativan efekat na brzinu algoritma (jer bi daleko vie
poklapanja moralo da se proiruje).
Druga opcija. . .

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

PatternHunter
PatternHunter je algoritam koji je gotovo identian BLAST-u,
osim u jednom kljunom detalju: nezahtevanje potpunog
poklapanja podstringa u bazi podataka.
Trae se poklapanja koristei (paljivo odabrane) ablone sa
rupama (spaced seeds)nizovi nula i jedinica koji odreuju na
kojim indeksima elimo da se poklope podstring i baza
podataka.
Na primer: 111010010100110111 podstringovi duine w = 18,
ali se trai poklapanje samo na datih 11 mesta!
BLAST bi za istu koliinu poklapanja koristio ablon
11111111111: generie vie podstringova!

PatternHunter kombinuje nekoliko ovakvih ablona odjednom;


sa samo 4 ablona dobija se algoritam sline osetljivosti kao
Smith-Waterman, ali 3700 puta bri!
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Viestruko poravnanje
esto nas interesuje da u isto vreme poravnamo vie od dve
sekvence.
Optimalno poravnanje k sekvenci je u optem sluaju jako
teko nai.
DP pristup zahteva izgradnju k-dimenzione hipermatrice (za
svako polje treba proveriti 2k 1 suseda);
Ukupna vremenska sloenost: O((2n)k )!

Ponovo moramo koristiti heuristike principe.


Popularan kao challenge takmiarski problem
(BubbleRun 2014: DNA Alignment).

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

Progresivno poravnanje
Veina heuristika svodi problem viestrukog poravnanja na
problem poravnanja dve sekvence.
Jedan od najpopularnijih takvih algoritama je CLUSTAL; ovo je
algoritam progresivnog poravnanja, koji u svakom momentu
poravnava po dva elementa (od ega element moe biti ili
sekvenca ili poravnata grupa sekvenci).
Kada poravnavamo grupe sekvenci, raunamo ukupan skor
neke pozicije kao neku kombinaciju ukupnih doprinosa skoru
od svake sekvence iz grupe.
Insercije/delecije su fiksirane u konanom poravnanju nakon
to ih jednom odredimo.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

CLUSTAL
CLUSTAL algoritam:
Izraunati skor optimalnog poravnanja za svaki par sekvenci iz
ulaza (dobija se matrica udaljenosti);
Upotrebiti ovu matricu da se izgradi binarno stablo navoenja
(ili korisnik moe zadati svoje stablo u tom sluaju se
preskae prvi korak);
Progresivno graditi poravnanje koristei se stablom, uvek
poravnajui po dve elementa.
Vremenska sloenost: O((nk)2 ), memorijska sloenost:
O(nk + n2 + k 2 ).
Metodama izgradnje stabla navoenja emo se baviti kasnije.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Dinamiko programiranje
Heuristike
Progresivno poravnanje

CLUSTAL, primer
Primer CLUSTAL algoritma nad sekvencama
"ACA"(1), "CCA"(2), "ACGA"(3), "AGTA"(4) i "AGA"(5),
i stablom navoenja (((1, 2), 3), (4, 5)):
ACA

CCA

ACA
CCA

ACGA

AGTA

AC-A
CC-A
ACGA

AGA

AGTA
AG-A
AC--A
CC--A
ACG-A
A-GTA
A-G-A

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Kompresija DNK sekvenci

Rad sa DNK sekvencama je esto otean memorijskom


potronjom uvanja sekvenci u radnoj memoriji.
Posao nam umnogome olakavaju algoritmi za kompresiju;
kao primer emo navesti Burrows-Wheeler Transform (BWT),
transformaciju koja je centralna u bzip2 programu za
kompresiju, kao i brojnim algoritmima u bioinformatici.
Algoritmi za kompresiju se ponekad pojavljuju unutar
takmiarskih zadataka:
(Mala Olimpijada 2005: Agenti) trai inverziju BWT-a.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Burrows-Wheeler Transform (BWT)


Burrows-Wheeler Transform:
Ulaz: DNK sekvenca T , duine n, koju treba transformisati.
Generisati svih n ciklinih rotacija od T , sortirati ih, i
poredjati u n n matricu.
Vratiti poslednju kolonu matrice i indeks reda u kom se nalazi
originalni string T .
Vremenska sloenost: naivno O(n2 log n);
postoje O(n) metode.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

BWT, primer

ACAACG
T

AACGAC
ACAACG
ACGACA
CAACGA
CGACAA
GACAAC

Petar Velikovi

AACGAC
ACAACG
ACGACA
CAACGA
CGACAA
GACAAC

(CGAAAC, 2)
BW T (T )

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Prednosti BWT-a

Postoje brze (O(n)) metode za raunanje;

Uglavnom zbija ista slova zajedno, npr. za string TATATATA


vraa string TTTTAAAA; ovakvi stringovi se daleko lake
kompresuju.

Nema gubitka podataka; transformacija ima inverz (koji se


takoe moe efikasno izraunati).

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Inverz BWT-a
BW T (T ) nam daje poslednju kolonu matrice; prvu kolonu
C1 (T ) moemo dobiti sortirajui BW T (T ).
LF Property: i-ta pojava nekog karaktera u prvoj koloni je na
istoj poziciji kao i-ta pojava tog karaktera u poslednjoj koloni!
Definiimo LF (i) kao mapiranje pozicija iz poslednje kolone
na prvu kolonu, tako da vai:
BW T [i] = C1 [LF (i)]
BW T [i] = BW T [j] i < j = LF (i) < LF (j)
Iterativni algoritam za raunanje T :
Inicijalizacija: i = x (gde je x indeks reda koji sadri T );
Iteracija: T = BW T [LF (i)] + T , i = LF (i)
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Izgradnja genoma

Sada elimo da konstruiemo celokupnu DNK sekvencu


nekog organizma.

Vrlo je skupo odjednom izvui celu sekvencu sa velikom


preciznou; daleko jednostavnije je napraviti veliki broj
( 107 ) izvlaenja sitnih podstringova.

Problem: kako rekonstruisati ceo genom koristei ove sitnije


podstringove?

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Hamiltonov graf
Najpre generiemo sve podstringove duine w od proitanih
podstringova (slino kao u BLAST algoritmu).
Prvih w 1 karaktera stringa duine w nazvaemo njegovim
prefiksom, a poslednjih w 1 karaktera njegovim sufiksom.
npr. prefiks od "ATCG" je "ATC", a sufiks je "TCG".
Napravimo graf takav da svaki uoeni podstring duine w ima
jedan vor; dva vora spajamo usmerenom ivicom ukoliko se
sufiks prvog poklapa sa prefiksom drugog;
npr. "ATCG" "TCGG".
Genom dobijamo iz Hamiltonovog ciklusa nad ovim
grafomciklusa koji obilazi svaki vor tano jednom.
Vremenska sloenost: O(n2 2n ), worst-case
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Hamiltonov graf, primer


Primer Hamiltonovog grafa nad podstringovima:
"ATG", "TGG", "GGC", "GCG", "CGT", "GTG", "TGC",
"GCA", "CAA", "AAT".
CAA

AAT

ATG

TGG

GGC

GCA

TGC

GTG

CGT

GCG

Hamiltonov ciklus daje genom ATGGCGTGCAATG.


Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

de Bruijn-ov graf
Ponovo generiemo sve podstringove duine w od proitanih
podstringova.
Meutim, ovoga puta vorove grafa vezujemo za prefikse i
sufikse svih ovih stringova.
Dva vora u ovom grafu se spajaju ivicom ukoliko postoji
podstring kome je prvi vor prefiks a drugi vor sufiks;
npr. "ATC" "TCG" ukoliko imamo podstring "ATCG".
Genom dobijamo iz Ojlerovog ciklusa nad ovim grafomciklusa
koji obilazi svaku ivicu tano jednom.
Vremenska sloenost: O(|V | + |E|).
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

de Bruijn-ov graf, primer


Primer de Bruijn-ovog grafa nad podstringovima:
"ATG", "TGG", "GGC", "GCG", "CGT", "GTG", "TGC",
"GCA", "CAA", "AAT".
AT

ATG

TG

AAT

TGG

GG

TGC

GGC

GC

GTG

AA

GCA
GCG

CAA

GT

CA

CGT

CG

Ojlerov ciklus daje genom ATGGCGTGCAAT.


Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Filogenetska stabla
Pretpostavimo da imamo DNK sekvence od nekoliko vrsta za
koje sumnjamo da su povezane (tj. da su nastale od zajednikog
pretka).
Filogenetska analiza se bavi rekonstrukcijom ovih evolucionih
stabala.
Problem: preci su (uglavnom) izumrle vrste, tako da ne moemo
lako doi do njihovog DNK (osim fosila).
Dva pristupa problemu:
tedljivost (parsimony) minimizacija broja mutacija;
Razdaljine (distances) koristi matricu rastojanja, dobijenu iz
meusobnih poravnanja.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Fitch-ov algoritam

Fitch-ov algoritam:
Jednostavan algoritam koji implementira pristup tedljivosti;
ulaz za algoritam je niz DNK sekvenci istih duina n, i binarno
stablo koje treba popuniti sa DNK sekvencama predaka (date
DNK sekvence su listovi stabla).

Algoritam se odvojeno pokree za svaku poziciju u


sekvencama, tako da emo analizirati samo sluaj n = 1.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Fitch, contd
Downpass prolaz: raunanje skupa Ri , koji sadri potencijalne
vrednosti nukleotida u voru i:
Ukoliko je i list, Ri = {vali };
U suprotnom, prvo rekurzivno izraunaj Rj i Rk od dece vora i;
Ukoliko Rj Rk 6= , Ri = Rj Rk ;
U suprotnom, Ri = Rj Rk .

Uppass prolaz: biranje vrednosti nukleotida ri za svaki vor


koristei izraunate skupove:
Ukoliko je i koren, ri = x tako da x Ri .
U suprotnom, neka je p roditelj od i;
Ukoliko rp Ri , ri = rp ;
U suprotnom, ri = x tako da x Ri .
Rekurzivno izraunaj rj i rk od dece vora i.

Vremenska sloenost algoritma je O(n |V |), gde je |V | broj


vorova stabla.
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Fitch, primer
Primer Fitch-ovog algoritma nad nukleotidima G, G, C, A, A i
stablom:

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Fitch, primer
Uppass:
{A, C, G}

{C, G}

{G}

{G}

{A}

{C}

{A}

{A}

{G}

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Fitch, primer
Downpass: (jedno od moguih optimalnih stabala)
A

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

UPGMA algoritam
Unweighted Pair Group Method with Arithmetic mean (UPGMA):
Algoritam koji implementira pristup rastojanja; ulaz za
algoritam je matrica udaljenosti koja dri udaljenosti izmeu
svih parova sekvenci. Izlaz je binarno stablo koje predstavlja
potencijalnu strukturu zajednikih predaka.
UPGMA algoritam se esto koristi za izradu stabla navoenja za
prethodno spomenuti CLUSTAL algoritam.
Algoritam je zasnovan na aritmetikoj sredini svih udaljenosti
kao metrici za razdaljinu izmeu dva skupa, A i B:
d(A, B) =

XX
1
d(x, y)
|A| |B|
xA yB

gde je d(x, y) udaljenost sekvenci x i y.


Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

UPGMA, contd
Na poetku, svaka sekvenca x je u svom (jedininom) skupu
Cx = {x}, i svaki skup je vezan za neki list izlaznog stabla;
U svakoj iteraciji, biramo Ci i Cj tako da je d(Ci , Cj )
minimalno.
Definiemo novi skup Ck = Ci Cj i raunamo njegova
rastojanja od svih preostalih skupova. Takoe, Ck vezujemo za
novi vor u stablu, koji je roditelj od vorova vezanih za Ci i Cj .
Briemo skupove Ci i Cj .
Iteriramo dok ne ostane samo jedan skup (koren stabla).
Najefikasnija poznata implementacija ima vremensku
sloenost O(n2 ).
Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

Uvod
Poravnanje DNK sekvenci
Dodatni algoritmi

Kompresija DNK sekvenci


Rekonstrukcija genoma
Izgradnja filogenetskih stabala

Napredniji zadaci za vebu

Zanimljivi takmiarski zadaci inspirisani bioinformatikim


algoritmima (otprilike sortirani po teini):
ACM Mid Central Regionals 1995: DNA Translation;
11th Iran Internet Contest: RNA Molecules;
TUD Programming Contest 2004: DNA Laboratory;
BubbleCup Quals1 2012 (SPOJ): Segment Flip;
BubbleCup Quals2 2014 (SPOJ): Soccer Choreography.

Petar Velikovi

Bioinformatiki algoritmi: Analiza DNK sekvenci

You might also like