Download as pdf or txt
Download as pdf or txt
You are on page 1of 138

SVEUILITE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAUNARSTVA










Predmet:
Bioinformatika

Mile iki
Mirjana Domazet-Loo







Zagreb, prosinac 2013.


Ova skripta je slobodno dostupna i moe se preuzeti kao PDF datoteka s adrese
http:// http://www.fer.unizg.hr/predmet/bio. Skripta je napravljena kao pratei
materijal za predmet Bioinformatika koji se odrava u sklopu diplomskoga studija na
Fakultetu elektrotehnike i raunarstva.

Slobodno smijete umnoavati, distribuirati i javnosti priopavati djelo pod sljedeim
uvjetima (http://creativecommons.org/licenses/by-nc-nd/3.0/hr/):

Imenovanje Morate priznati i oznaiti autorstvo djela na nain kako je specicirao
autor ili davatelj licence (ali ne na nain koji bi sugerirao da Vi ili Vae koritenje
njegova djela imate njegovu izravnu podrku).

Nekomercijalno Ovo djelo ne smijete koristiti u komercijalne svrhe.

Bez prerada Ne smijete mijenjati, preoblikovati ili preraivati ovo djelo.

U sluaju daljnjeg koritenja ili distribuiranja morate drugima jasno dati do znanja
licencne uvjete ovog djela.

Od svakog od navedenih uvjeta mogue je odstupiti samo ako dobijete doputenje
nositelja autorskog prava.


2013. Mile iki, Mirjana Domazet-Loo.



3
Sadraj

1. Genomika ...................................................................................................................... 7
1.1. Bioloke osnove ..................................................................................................... 7
1.1.1. Sredinja dogma ............................................................................................ 8
1.1.2. Geni ............................................................................................................... 8
1.2. Sekvenciranje....................................................................................................... 10
1.2.1. Projekt odreivanja ljudskog genoma i razvoj metoda za sekvenciranje .... 10
1.2.2. Metode sekvenciranja .................................................................................. 11
1.3. Formati podataka ................................................................................................. 15
1.3.1. FASTA format podataka ............................................................................. 15
1.3.2. FASTQ format podataka ............................................................................. 16
1.4. Literatura ............................................................................................................. 18
2. Optimalno poravnavanje sljedova ............................................................................... 19
2.1. Poravnanje ........................................................................................................... 19
2.2. Algoritam za raunanje udaljenosti ureivanja ................................................... 20
2.3. Needleman-Wunsch algoritam ............................................................................ 24
2.4. Algoritam preklapanja ......................................................................................... 25
2.5. Lokalno poravnanje ............................................................................................. 27
2.6. Optimizacije primjenjive na algoritme za poravnanje sljedova .......................... 30
2.6.1. Linearna memorijska sloenost ................................................................... 31
2.6.2. Dinamiko programiranje s ogranienim pojasom ...................................... 34
2.7. Bioloka usporedba nizova .................................................................................. 35
2.7.1. Matrice slinosti .......................................................................................... 35
2.7.2. Praznine i procijepi ...................................................................................... 36
2.8. Literatura ............................................................................................................. 38
3. Pretraivanje baze podataka sljedova. BLAST ........................................................... 39

4
3.1. Usporedba biolokih sljedova s bazom podataka koritenjem heuristikog
pristupa ............................................................................................................................ 40
3.2. Program BLAST .................................................................................................. 41
3.3. BLAST - postupak pretraivanja baze podataka ................................................. 46
3.4. Literatura ............................................................................................................. 48
4. Sufiksno stablo i sufiksno polje ................................................................................... 49
4.1. Sufiksno stablo .................................................................................................... 50
4.1.1. Osnovni pojmovi ......................................................................................... 51
4.1.2. Podatkovna struktura sufiksno stablo .......................................................... 51
4.1.3. Memorijski zahtjevi ..................................................................................... 54
4.1.4. Izgradnja sufiksnog stabla u vremenu O(n
2
) ............................................... 54
4.1.5. Implicitno sufiksno stablo ........................................................................... 57
4.1.6. Ukkonenov algoritam .................................................................................. 58
4.1.7. Poopeno sufiksno stablo ............................................................................ 62
4.2. Sufiksno polje ...................................................................................................... 62
4.2.1. Sufiksno polje i sufiksno stablo ................................................................... 63
4.2.2. Izgradnja sufiksnog polja u linearnom vremenu Krkkinen-Sandersovim
algoritmom .................................................................................................................. 64
4.3. Literatura ............................................................................................................. 67
5. Poravnavanje dva ili vie sljedova odjednom.............................................................. 68
5.1. Heuristiki pristup poravnavanju para sljedova .................................................. 68
5.1.1. MUMmer ..................................................................................................... 68
5.2. Poravnavanje vie sljedova odjednom ................................................................. 69
5.2.1. Metoda sume parova .................................................................................... 70
5.2.2. Poravnavanje vie sljedova odjednom dinamikim programiranjem .......... 72
5.2.3. Heuristiki pristup poravnanju vie sljedova odjednom ............................. 75
5.3. Literatura ............................................................................................................. 78

5
6. Samostojni indeksi ....................................................................................................... 79
6.1. Odreivanje entropije znakovnog niza ................................................................ 80
6.1.1. Shannonova entropija .................................................................................. 80
6.1.2. Shannonova entropija znakovnog niza ........................................................ 81
6.1.3. Entropija vieg reda ..................................................................................... 81
6.2. Burrows-Wheelerova transformacija (BWT) ...................................................... 82
6.2.1. Konstrukcija BWT rotacijom znakovnog niza ............................................ 83
6.2.2. Konstrukcija BWT koritenjem sufiksnog polja ......................................... 84
6.2.3. LF-mapiranje ............................................................................................... 85
6.3. FM-indeks ............................................................................................................ 86
6.3.1. Interval sufiksnog polja ............................................................................... 86
6.3.2. Traenje podniza u nizu koritenjem FM-indeksa ...................................... 87
6.3.3. Prostorna i vremenska sloenost FM-indeksa ............................................. 91
6.4. Literatura ............................................................................................................. 92
7. Filogenija ..................................................................................................................... 93
7.1.1. Povijesni razvoj ideja .................................................................................. 93
7.2. Filogenija i filogenetsko stablo ........................................................................... 94
7.2.1. Broj moguih stabala u ovisnosti o broju taksonomskih jedinica ............... 97
7.3. Evolucijski DNA modeli ..................................................................................... 97
7.3.1. Jukes-Cantorov model ................................................................................. 98
7.4. Metode za izgradnju filogenetskih stabala ........................................................ 102
7.4.1. Mjera udaljenosti ....................................................................................... 103
7.5. Metode temeljene na udaljenostima izmeu taksona ........................................ 103
7.5.1. UPGMA ..................................................................................................... 103
7.5.2. Metoda povezivanja susjeda ...................................................................... 106
7.6. Metode temeljene na obiljejima ....................................................................... 108

6
7.6.1. Metoda najmanjeg broja evolucijskih promjena ....................................... 108
7.7. Literatura ........................................................................................................... 112
8. Sastavljanje genoma .................................................................................................. 113
8.1. Izazov sastavljanja ............................................................................................. 113
8.2. Osnove sastavljanja ........................................................................................... 115
8.3. Algoritmi za sastavljanje ................................................................................... 116
8.3.1. Traenje najkraeg zajednikog nadniza ................................................... 116
8.3.2. Algoritmi nad grafovima ........................................................................... 118
8.4. Preklapanje-Razmjetanje-Konsenzus pristup .................................................. 120
8.4.1. Preklapanje ................................................................................................ 121
8.4.2. Razmjetanje .............................................................................................. 124
8.4.3. Konsenzus .................................................................................................. 128
8.5. Sastavljanje koristei de Bruijn grafove ............................................................ 130
8.5.1. Problem sastavljanja genoma kratkim oitanjima ..................................... 130
8.5.2. Eulerova staza i de Bruijn grafovi ............................................................. 130
8.5.3. Sastavljanje genoma .................................................................................. 134
8.6. Literatura ........................................................................................................... 137


7
1. Genomika
1.1. Bioloke osnove
Genomika je grana genetike koja primjenjuje metode DNA sekvenciranja i bionformatike
u cilju sekvenciranja, sastavljanja i analize funkcija i strukture genoma.
Za funkcioniranje svih poznatih ivih organizama presudne su makromolekule nukleinskih
kiselina, proteina i ugljikohidrata. Dvije temeljne vrste nukleinskih kiselina su RNA i
DNA. DNA slui kao spremite instrukcija koje slue za razvoj i funkcioniranje svih ivih
organizama s izuzetkom RNA virusa. Postoji nekoliko vrsta RNA molekula koje dijelimo
ovisno o njihovim funkcijama. Najvanije su glasnika RNA (mRNA), transportna RNA
(tRNA), ribosomska (rRNA) te regulacijske RNA poput mikro RNA (miRNA), male
jezgrene RNA (snRNA) i male interferirajue RNA (siRNA).
Osnovna jedinica nasljeivanja u ivim organizmima je gen. Gen je dio DNA ili RNA koji
kodira informaciju za proizvodnju proteina ili RNA lanaca koji imaju funkciju u
organizmu.
Veina DNA molekula su dvostruke uzvojnice koje se sastoje o manjih gradivih jedinica
nukleotida. Svaki nukleotid se sastoji od nukleinskih baza (adenin, citozin, gvanin i timin)
koje oznaavamo slovima A, C, G i T, te okosnice koja je graena od naizmjeninoga niza
eera i fosfatne skupine. DNA je organizirana upakiran u strukture koje nazivamo
kromosonima. Dva lanca se proteu u suprotnim smjerovima i stoga su anti-paralelni. Te
lance nazivamo 3' i 5' zavisno o smjeru treeg i petog atoma ugljika molekule eera na
okosnici.
RNA molekule imaju veliku ulogu u kodiranju, dekodiranju, regulaciji i ekspresiju gena.
RNA je slino DNA je graena od nukleotida, a obino ima samo jedan lanac iako postoje
i RNA s dva lanca. Nukleinske baze koje su uz eer i fosfatnu grupu tvore lanac RNA su
adenin, citozin, gvanin i uracil koje oznaavamo sa slovima A, C, G i T.
Proteini su makromolekule sastavljene od jednoga ili vie lanaca aminokiselina, a unutar
ivih organizama obavljaju razliite funkcije i slue kao gradivi blokovi. Proteini slue za

8
ubrzavanje metabolikih reakcija, transport molekula, umnaanje i prepisivanje DNA,
odgovaranje na podraaja i brojne druge funkcije.
1.1.1. Sredinja dogma
Prema svojoj definiciji sredinja dogma dodati citat molekularne biologije objanjava tok
genetikih informacija izmeu DNA, RNA i proteina. Postoji 9 objanjivih prijenosa
informacija meu njima prikazanih u Tablica 1.1. Dogma ih dijeli u 3 grupe po 3: 3 opa
prijenosa (odvijaju se u veini stanica), 3 specijalna prijenosa (odvijaju se samo pod
specifinim uvjetima i to obino u virusima ili su pokazani u laboratoriju) i 3 nepoznata
(vjeruje se da se ne dogaaju).
Tablica 1.1 Sredinja dogma 3 klase prijenosa informacija
Opi Specijalni Nepoznat
DNA RNA RNA DNA protein DNA
DNA RNA RNA DNA protein RNA
RNA protein DNA protein protein protein

Opi prijenosi su umnaanje DNA, kopiranje informacije iz DNA u mRNA (transkripcija)
i sintetiziranje proteina iz mRNA. Dodatno, informacije iz DNA se mogu kopirati i u ostale
tipove RNA kao to su npr. tRNA, rRNA. Specijalni oblici prijenosa su: kopiranje
informacija iz RNA u DNA (obrnuta transkripcija), kopiranje jedne RNA u drugu (RNA
umnaanje), te direktna translacija DNA u proteine koja je pokazana samo u
laboratorijskim uvjetima.
Nove spoznaje preispituju koncept sredinje dogme i potvruju da nije u potpunosti tona
jer zanemaruje ulogu RNA u regulaciji te mogunosti ureivanjima na proteinskom nivou.
1.1.2. Geni
Veina ivih bie sadre svoje gene u dvostrukoj DNA uzvojnici. Ekspresija gena (Sl. 1.1)
je proces u kome se informacije iz gena koriste za sintezu funkcionalnog produkta gena.
Obino su to proteini, ali isto tako postoje geni koji ne kodiraju proteine ve npr. rRNA,
tRNA ili snRNA. Tipini koraci u procesu ekspresije gena su: transkripcija, RNA

9
prekrajanje, translacija i modifikacije proteina nakon translacije. Svi ovi koraci mogu biti
modulirani to dovodi do mogunosti regulacije gena.
Prvi korak ekspresije je transkripcija ili prepisivanje DNA u mRNA. S obzirom da oba
DNA lanca imaju i 3' i 5' krajeve esto ih prema smjeru irenju oznaavamo i s 5' 3' i
3' 5'. U odnosu na gene ta dva lanca se nazivaju nekodirajui lanac ili kalup (3' 5')
koji slui kao nacrt za produkciju RNA transkripta i kodirajui lanac (5' 3') koji
ukljuuje DNA verziju prepisanog RNA slijeda. Dok kod prokariota (ivih bia bez
stanine jezgre poput bakterija) transkripcija gena koji kodiraju proteine direktno kreira
mRNA koja je spremna za translaciju u protein, kod eukariota (ivih bia sa staninom
jezgrom poput ivotinja, biljaka i gljiva) taj proces se odvija u nekoliko koraka. U prvom
koraku prepisivanjem informacija s DNA nastaje primarni transkript od RNA (pre-
mRNA). Primarni transkript sadri eksone i introne, kao i dijelove na 3' i 5' kraju
transkripta koji se ne prevode u protein (UTR, od engl. untranslated regions).
AAAAAAAAAAA
a) struktura gena
b) primarni transkript mRNA
c) zrela mRNA
d) protein
transkripcija
sazrijevanje mRNA
translacija
5' kapa poli A rep
promotor terminator intron intron intron ekson ekson ekson ekson
5' UTR 3' UTR

Sl. 1.1 Struktura eukariotskog gena i slijed genske ekspresije. a) Struktura gena: promotor, eksoni,
introni, terminator. b) Transkripcija zapoinje na promotoru na zavrava na terminatoru. Produkt
transkripcije je primarni transkript mRNA, a sastoji se od eksona, introna, 5' UTR i 3' UTR (engl.
untraslated regions; dijelovi koji se ne prevode u protein). c) Doradom primarnoga transkripta
procesima prekrajanja introna, dodatku 5' kape i poli A repa nastaje zrela mRNA. d) Nakon izlaska
iz jezgre, mRNA ribosomu u procesu translacije daje uputu za sintezu proteina.
Nakon dorade primarnog transkripta mRNA procesima izrezivanja introna, dodavanja 5'
kape te poli A repa (sastoji se od dugakoga niza adenina) nastaje zrela mRNA koja po

10
izlasku iz jezgre na ribosomu kao kalup diktira sintezu proteina. Taj proces nazivamo
prevoenje (translacija) odreenog niza nukleotida mRNA u protein.
Sveukupna nasljedna informacije nekoga organizma naziva se genom. Genom sadri i gene
i sve druge dijelove RNA i DNA bilo njihova funkcija poznata ili ne.
1.2. Sekvenciranje
Sekvenciranje je proces odreivanja poretka pojedinih nukleinskih baza adenina,
citozina, gvanina, timina i uracila unutar RNA ili DNA lanca. Rezultati sekvenciranja se
koriste za utvrivanje samoga genoma, utvrivanje srodnosti i evolucije vrsta, utvrivanje
novih gene i njihovo pridruivanje bolestima, utvrivanje potencijalni ciljeva za lijekove te
metagenomiku - istraivanje zajednica mikroba direktno iz okolia.
1.2.1. Projekt odreivanja ljudskog genoma i razvoj metoda za
sekvenciranje
Razvoj sekvenciranja je potaknut radom Fredericka Sangera koji je razvio brze metode
sekvenciranja sredimo 1970-tih. Kljuna godina za razvoj sekvenciranje je 1990. kada su
Ministarstvo energetike (Department of Energy) i Nacionalni institut za zdravlje (National
Institute of Health) vlade SAD zajedniki pokrenuli projekt odreivanja ljudskoga genoma
(engl. Human genome project HGP). Ciljevi projekta su bili: odreivanje i skladitenje
slijeda od svih parova baza ljudske DNA, transfer tehnologije u privatni sektor i
odgovaranje na etika, socijalna i pravna pitanja koja mogu nastati iz projekta. U lipnju
2000 zavrena je radna verzija skice cjelokupnoga ljudskoga genoma koja je pokrivala
>90% genoma. Radna verzija je objavljena u veljai 2001, a projekt je proglaen
zavrenim u travnju 2003.
Rezultati projekta odreivanja ljudskoga genoma su pokazali da on sadri 3 milijarde
parova baza (A, C, G i T); da se prosjeni gen sastoji od 3000 baza, dok duljina moe
varirati i do 2,4 milijuna baza; ukupan broj gena je oko 20500 to je viestruko manje od
procijenjenih 80000 140000; 99.9 % baza su iste u svim ljudima. Cijena projekta je bila
oko 3 milijarde amerikih dolara.
Rezultati projekta su potaknuli snaan razvoj metoda za sekvenciranja i pad cijena. Sl. 1.2
prikazuje taj dramatian pad cijena sekvenciranja i njegovo pribliavanje dugo sanjanoj
granici sekvenciranja ljudskoga genoma za 1000 amerikih dolara ili manje. Taj cilj je

11
konano ostvaren u sijenju 2014. kada je tvrtka Illumina objavila da njihovi novi ureaji
mogu sekvencirati ljudski genom pri emu ukupan troak nee prijei 1000 dolara.

Sl. 1.2 Cijena sekvenciranja ljudskoga genoma i njena usporedba njezina pada s Moorovim
zakonom
Ovim padom cijena teite se pomie na algoritme za sastavljanje i analizu genoma.
1.2.2. Metode sekvenciranja
Metode za sekvenciranje mogu proitati ogranien broj nukleotida. Taj broj zavisno o
izvedbi se kree od 50 do nekoliko desetaka tisua. Stoga je potrebno podijeliti dulje
sljedove u manje i nakon toga oitati nekom od metoda sekvenciranja.
Danas dominantna strategija je takozvano shotgun sekvenciranje (sekvenciranje
samaricom). Njegovom primjenom DNA se lomi na sluajan nain u velik broj malih
fragmenata koji se onda sekvenciraju i na taj nain se dobivaju oitanja koja predstavljaju
proitani slijed nukleinskih baza. Viestruka oitanja DNA se dobivaju ponavljanjem
fragmentacije i sekvenciranja. Na kraju raunalni programi koriste preklapajue krajeve
oitanja da bi ih sastavili u kontinuiranu sekvencu.
Metode sekvenciranja se mogu podijeliti ugrubo u dvije skupine: hijerarhijsko shotgun
sekvenciranje i shotgun sekvenciranje cijeloga genoma.

12
Kod hijerarhijskog shotgun sekvenciranja (Sl. 1.3) prvi korak je izrada fizike mape
genoma niske rezolucije. Iz te mape se odredi minimalan broj fragmenata koji je potreban
za sekvenciranje cijeloga genoma. Pri koritenju ove metodu genom se dijeli u fragmente
dugake 50000 200000 nukleinskih parova baza (za jedan par nukleinskih baza koristi se
jedinica b engl. base pair). Dobiveni fragmenti umeu u bakterije domaine koristei
BAC-ove (engl. Bacterial artificial chromosome) i taj nain kloniraju. Na taj nain
dobijemo vei broj kopija originalnih fragmenata koje sada ponovo usitnjavamo na
sluajan nain na veliine pogodne za sekvenciranje (obino oko 2000 baza odnosno 2 kb).
Poto znamo lokacije BACova na kromosomu ova metodu prua veliku tonost i
omoguava sastavljanje cijeloga kromosoma.

Sl. 1.3 Hijerarhijsko shotgun sekvenciranje
Ideja shotgun sekvenciranja cijeloga genoma je u preskakanju faze izrade fizike mape. Na
taj se nain stavljaju vei zahtjevi na raunalnu obradu, ali se znaajno ubrzava proces.
Primjenom ove metode se DNA dijeli u sluajne fragmente razliitih duljina (obino, 2, 10,
50 i 150 kb) te se kloniraju. Nakon toga se ti fragmenti sekvenciraju. Sekvenciranje se
obavlja uvijek u smjeru od 5' kraja prema 3' kraju. S obzirom da svaki lanac ima jedan 5'
kraj to nam omoguava da itamo s dva kraja. Originalni slijed se dobije rekonstrukcijom
iz oitanja. Nedostatak ove metode je u tome to iako olakava sekvenciranje dugakih
regija DNA, mogunost ove metode da korektno povee te regije je pod sumnjom,
pogotovo za genome s ponavljajuim regijama.

13

Sl. 1.4 Shotgun sekvenciranje cijeloga genoma
Za mjerenje performansi ureaja za sekvenciranje kljuni parametri su duljine dobivenih
oitanja, tonost i cijena. Tehnoloki se ureaji za sekvenciranje dijele na tri generacije:
prvu, drugu (jo se i naziva sekvenciranje slijedee generacije prema engl. Next generation
sequencing) Tablica 1.2 prikazuje usporednu analizu tri generacije ureaja za
sekvenciranje.
Tablica 1.2 Usporedna analiza ureaja za sekvenciranje
Metoda Duljina
oitanja
(bp)
Tonost
(%)
Cijena za
1 milijun baza
(USD)
Komentar
Sangerovo
sekvenciranje
prva generacija
400-900 99.9 2400 Duga oitanja, povoljna za
mnoge primjene, no
preskupa za vee projekte
Sekvenciranje
sintezom
(Illumina)
druga generacija
50 -300 98 0.05 0.15
Tona, dobra za velike
projekte, no ureaji mogu
biti jako skupi.
Ion poluvodiko
sekvenciranje
(Ion Torrent)
druga generacije
do 400 98 1 Manje skupa oprema.

14
Metoda Duljina
oitanja
(bp)
Tonost
(%)
Cijena za
1 milijun baza
(USD)
Komentar
Sekvenciranje jedne
DNA molekule u
realnom vremenu
(Pacific Bio)
trea generacija
5500-8500 u
prosjeku
>30000 max
87% 0.33 1 Najdulja oitanja, no velika
greka i ureaji su skupi
Nanopore
sekvenciranje
(Oxford Nanopore)
trea generacija
do 50k - - Uskoro kree u testnu fazu.
Mali ureaji koji se mogu
ukopati preko USB
konektora
Osnovna mjera kvalitete sekvenciranja je pokrivanje (engl. coverage) koje se ponekad
naziva i dubina oitanja. Pokrivanje je prosjean broj oitanja koji predstavljaju dani
nukleotid u rekonstruiranom slijedu. Ukoliko sekvenciramo segment genoma duljine G i
time dobijemo N oitanja, duljine L pokrivanje raunamo kao:

(1.1)
Pokrivanje obino nije uniformno i njegove varijacije su unesene sluajno, varijacijom u
broju staninih kopija broja izvornih DNA molekula i pristranou metode sekvenciranja.
Vrlo nisko pokrivanje proizvodi procijepe u sastavljenom genomu (Sl. 1.5) i time se ne
moe dobiti jedinstveni slijed ve je on razlomljen u vie dijelova. Ultimativni glavni cilj
svakog sekvenciranja je zatvoriti sve procijepe. U cilju da matematiki postave problem
sekvenciranja i sastavljanja genoma Lander i Waterman u svome radu (Lander and
Waterman, 1988) definiraju model preko kojeg pokuavaju doi do oekivanog broja
dijelova sastavljenoga genoma. Njihova teorija taj broj aproksimira s:


(1.2)


Sl. 1.5 Primjer sekvenciranja u kome pojedini dijelovi originalnoga slijeda nisu pokriveni
Bez pokrivanja
Originalni slijed:

15
1.3. Formati podataka
1.3.1. FASTA format podataka
Najei oblik podataka u bioinformatici je FASTA tekstualni format koji slui za
prikazivanje sljedova proteina ili nukleinskih kiselina pri emu je svaki nukleotid ili
aminokiselina prikazan s jednim slovom. Za prikaz nukleinskih kiselina osim slova koje
predstavljaju nukleinske baze (A, C, G, T i U) koriste se i posebni znakovi razliitoga
znaenja kao to su npr. znakovi za sluaj kada se ne moe jednoznano odrediti o kojoj se
bazi radi i znakovi za procjepe u slijedu. Tablica 1.3 prikazuje potpuni prikaz kodova za
Tablica 1.3 Kodovi za prikaz nukleinskih kiselina
Kod nukleinske kiseline Znaenje
A Adenin
C Citozin
G Gvanin
T Timin
U Uracil
R A ili G
Y C, T ili U
K G, T ili U
M A ili C
S C ili G
W A, T ili U
B ne A (npr. C, G, T ili U)
D ne C (npr. A, G, T ili U)
H ne G (npr. A, C, T or U)
V niti T niti U (npr. A, C or G)
N A C G T U
X Maskiranje
- Procjep neodreene duljine

nukleinske kiseline.
U FASTA datoteci moe biti vie zapisa, a svaki zapis se od linije zaglavlja i jedne ili vie
linija samog slijeda. Isto tako mogu postojati komentari koji poinju sa znakom ,, ali se
oni rijetko koriste.


16
Primjer FASTA datoteke:
>Slijed1 blok primjer 1
AGCTAGCT-CATAT
>Slijed2
AGCTATAGCTAGAC
>Slijed3
AGCTATANNNNNNNNNNNGCTAGAC
Linija zaglavlja se razlikuje od linije slijeda time to poinje sa znakom vee od (>) u
prvom stupcu. Rije koja slijedi nakon znaka > je identifikator slijeda, a ostatak linije.
Vano je napomenuti da ne smije biti razmaka izmeu > i prvoga slova identifikatora.
Slijed moe biti proizvoljne duljine i prostirati se u vie linija. Slijed zavrava krajem
datoteke ili slijedeom linijom koja poinje i predstavlja poetak narednog zapisa. Ukoliko
postoji samo jedan zapis u slijedu onda taj zapis ne mora imati liniju zaglavlja.
1.3.2. FASTQ format podataka
FASTQ format podataka koristi se za prikaz podataka na izlazu ureaja za sekvenciranja.
Vrlo je slian FASTA formatu, no dodatno ima oznaku kvalitete svakoga oitanja.
Primjer FASTQ zapisa:
@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65
FASTQ zapis obino koristi 4 tipa linija po slijedu. Linije su:
Linija 1 poinje sa znakom @, nakon nje je identifikator slijeda i
opcionalan opis.
Linija 2 je sam slijed.
Linija 3 poinje s + znakom, a opcionalno iza njega moe biti isti
identifikator slijeda (i bilo koji opis ponovo).
Linija 4 predstavlja vrijednost kvalitete za slijed iz linije 2, s time da broj
znakova mora biti jednak broju znakova u slijedu.
Isto kao i kod FASTA formata moe biti vie zapisa u datoteci, a sam slijed i niz znakova
kvalitete se mogu prostirati u vie redaka. Vano je napomenuti da treba biti paljiv pri

17
izvlaenju informacija iz ovoga tipa podataka zato to znakovi @ i + se takoer mogu
nalaziti u nizu znakova kvalitete.
Ureaji za sekvenciranje za svaku pojedinu baza daju ocjenu kvalitete oitanja. Ta
vrijednost se obino izraava kao vjerojatnost netonoga oitanja p. Ta vrijednost se
pretvara u takozvani Sangerov format kvalitete izrazom
p Q
Sanger 10
log 10

Na taj nain dobijemo iznose kvalitete u rasponu od 0 do 93. S obzirom da su prvih 32
ASCII znakova kontrolni, a 32. znak razmak kodiramo kvalitetu na nain da dobivenom
izrazu dodamo 33 i tako dobijemo znakove u rasponu od 33 do 126.


18
1.4. Literatura
Lander,E. & Waterman,M. (1988) Genomic mapping by fingerprinting random clones: a
mathematical analysis. Genomics, 2, 231239.


19
2. Optimalno poravnavanje sljedova
2.1. Poravnanje
Poravnanje dva bioloka slijeda predstavlja jedan od najstarijih i najvie istraivanih
problema u bioinformatici.
Problem je prvi put definiran u podruju teorije informacije gdje je 1950. Richard
Hamming definirao mjeru udaljenosti izmeu dva niza znakova jednake duljine. Ako
promatramo dva niza znakova s i t prema njihova udaljenost jednaka je broju pozicija gdje
su odgovarajui znakovi razliiti. Mjerenje udaljenosti se moe gledati i kao minimalan
broj zamjena znakova koje je potrebno napraviti da se s pretvori u t. Kao primjer moemo
promatrati nizove s=borba i t=torba. Lako se moe primijetiti da niza t moemo lako doi
zamjenom prvoga znaka niza s i da je udaljenost jednaka jedan.
Vladimir Levenshtein je proirio problem i definirao mjeru za mjerenje udaljenosti izmeu
dva niza znakova koji mogu biti razliite duljine. Ta mjera se danas obino naziva
udaljenost ureivanja (engl. edit distance). Prema Levenshteinovoj definiciji udaljenost
izmeu znakova s i t je jednaka minimalnom broju potrebnih ureivanja svakoga
pojedinanog znaka za pretvaranje jednoga niza s u niz t. Kao mogua ureivanja
definirana su tri tipa promjena:
Zamjena promjena jednoga znaka iz niza s u znak koji se nalazi na odgovarajuoj
poziciji u nizu t.
Npr. most u mast
Umetanje umetanje jednoga znaka u niz s u cilju da odgovara nizu t.
Npr. kos u kosa
Brisanje brisanje jednoga znaka iz niza s u cilju da odgovara nizu t.
Npr. brod u rod
Troak svi ureivanja je isti i iznosi jedan.
Za primjer raunanja udaljenosti ureivanja uzmimo dva niza s=TGCATAT i t=ATCCGAT.
Moemo primijetiti da niz s moemo pretvoriti u niz t kroz pet koraka:

20
TGCATAT obriemo znak T s kraja niza
TGCATA obriemo znak A s kraja niza
ATGCAT umetnemo znak A na poetak niza
ATGCGAT umetnemo znak G ispred zadnjeg A
ATGCTAT zamijenimo znak G sa C
ATCCGAT kraj
Ovime smo dobili da je udaljenost izmeu dva niza 5. No pretvorbu moemo obaviti i u
samo etiri koraka:
TGCATAT obriemo znak A u sredini niza
ATGCTAT umetnemo znak A na poetak niza
ATGCTAT zamijenimo G sa C
ATCCTAT zamijenimo T s G
ATCCGAT kraj
Na ovaj nain smo dobili da je udaljenost odreivanja 4.
Zanimljivo je da Levenshtein nikada nije predloio algoritam za odreivanje udaljenosti
ureivanja. Algoritam za rjeavanje ovoga problema je otkrivan i ponovo otkrivan u
raznim podrujima od automatskoga prepoznavanja govora do bioinformatike. Iako se
zavisno o primjeni pojedine izvedbe algoritma razlikuju, zajedniko im je da je algoritam
temeljen na dinamikom programiranju.
2.2. Algoritam za raunanje udaljenosti ureivanja
Predstavimo poravnanje nizova s i t duljina n i m s matricom od dva retka u kojoj prvi
redak sadri znakove niza s koji imaju zadrani poredak, drugi redak sadri znakove niza t
koji isto tako imaju zadran poredak, dok praznine se mogu nalaziti na razliitim mjestima
unutar nizova. Kao rezultat znakovi u svakom nizu zadravaju poredak, no nisu nuno
susjedni. Praznine oznaavamo sa znakom razmaka - i umeemo ih ako je dolo do
operacija brisanja ili umetanja. Npr. pretpostavimo da se radi o nizovima iz gornjega
primjera gdje je s=TGCATAT i t=ATCCGAT i poto nema A na poetku niza s potrebno ga
je tamo umetnuti. Tu operaciju oznaimo s prazninom u nizu s. Moemo pretpostaviti da
ne postoji stupac u matrici poravnanja koji sadri praznine u oba retka jer takva operacija
ne bi imala smisla. Iz toga slijedi da poravnanje ima maksimalno n + m stupaca.

21

- T G C A T A T
A T C C G - A T
U stupcima u kojima su samo slova moglo je doi do zamjene slova. Sluaj kada se nije
dogodila zamjena, odnosno slova su ista nazivamo slaganje (engl. match). U sluaju kada
se dogodila zamjena zovemo neslaganje (engl. mismatch). Broj slaganja izmeu nizova s i
t je 4, a broj neslaganja je 2. S obzirom da elimo preurediti niz s u niz t prazninu u
gornjem retku nazivamo umetanje znakova, a prazninu u donjem retku nazivamo
brisanjem. Ukupno imamo dvije praznine to zbrojeno s dva neslaganja daje ukupnu
udaljenost ureivanja 4.
Preklapanje moemo predstaviti i tako da svakom slovu u s i t dodijelimo indeks zavisno o
njegovoj poziciji u nizu, a svaki redak predstavimo trenutnim indeksom za dani niz. Tako
prvi redak -TGCATAT predstavimo s 01234567, a drugi redak ATCCG-AT s 12345567.
Nula kod prvoga niza je zbog toga to poinjemo redak s prazninom. Predstavimo da oba
retka predstavimo nizom ureenih parova indeksa na svakoj poziciji. Dobijemo (0,1), (1,2),
(2,3), (3,4), (4,5), (5,5), (6,6) i (7,7). Ono to moemo vidjeti da u bilo kojem sluaju
poravnanja najmanji indeks u oba niza e biti jednak nuli, a najvei e biti jednak duljini
niza. Stoga moemo nacrtati mreu dimenzija (m + 1)(n + 1) u kojoj e s indeksima biti
oznaeno poravnanje koje predstavlja put:
(0,1) (1,2) (2,3) (3,4) (4,5) (5,5) (6,6) (7,7)
u mrei. Isto tako moemo vidjeti da svaki mogui put u mrei od (0,0) do (n,m) odgovara
nekom poravnanju dva slijeda kao i da svako poravnanje odgovara nekom putu u mrei od
(0,0) do (n,m).
Mrea poravnanja zapravo tvori graf u kome se kretanje izmeu vrhova (nalaze se na
krianju indeksa jednoga i drugoga niza) odvija preko bridova koji predstavljaju operacije
ureivanja. Iz svakoga vrhova moemo se kretati u 3 smjera (desno, dolje, dijagonalno).
Kretanjem desno ili dolje pomiemo se u jednom nizu, a da u drugom nizu ostajemo na
istom mjestu. Ukoliko elimo niz s iji indeksi oznaavaju redove pretvoriti u niz t iji
indeksi predstavljaju stupce, onda kretanje udesno predstavlja umetanje u niz s jer on tim
kretanjem zadrava svoj indeks, dok se pomiemo za jedno mjesto u nizu t. Slino kretanje
prema dolje, predstavlja brisanje jednoga znaka iz niza s. Kretanje dijagonalno moe

22
predstavljati slaganje ili neslaganje izmeu dva niza. Svakom od ovih kretanja moemo
dodijeliti odreenu teinu koja predstavlja cijenu kotanje te operacije. U sluaju
udaljenosti odreivanja najee ta cijena je 1 za svako brisanje, umetanje i neslaganje.
t A T C C G A T
s 0 1 2 3 4 5 6 7
0
T 1
G 2
C 3
A 4
T 5
A 6
T 7

Sl. 2.1 Mrea poravnanja za nizove s=TGCATAT i t=ATCCGAT. Svako poravnanje odgovara
nekom putu u mrei poravnanja od (0,0) do (n,m) i svaki put od (0,0) do (n,m) odgovara jednom
poravnanju
Cilj je pronai ono optimalno poravnanje za koje e udaljenost odreivanja biti najmanja. S
obzirom da svako poravnanje odnosno put zavravaju u toki, odnosno vrhu (n,m),
problem je odrediti minimalnu cijenu puta do toga vrha. Moemo primijetiti da smo u taj
vrh mogli doi iz tri smjera: od lijevo (n, m-1), od gore (n-1, m) ili dijagonalno od lijevo
gore (n-1, m-1). Ukupna cijena u vrhu (n,m) jednaka je minimumu cijena puta do tih
vrhova plus trokovi puta od tih vrhova do vrha (n,m). Cijenu puta do tih vrhova moemo
odrediti na isti nain gledajui njima lijeve, gornje i dijagonalno lijeve vrhove. Postupak se
rekurzivno nastavlja. Vano je primijetiti da svi putovi imaju ishodite u vrhu (0,0) i da bi
smo pronali optimalno poravnanje ili put da moramo rijeiti cijenu puta do svakoga vrha.
Ako postavimo da je cijena puta vrhu (0,0), cijenu puta za njemu susjedne vrhove (desno,
dolje i desno dolje) moemo odrediti dodajui cijene putova do tih vrhova. Lako moemo
da nakon toga moemo odrediti cijene puta za njima susjedne vrhove i u konanici na taj

23
nain moemo odrediti cijenu puta do svakoga vrha u mrei. Algoritmi kojima prvo
rjeavamo manje podprobleme i progresivno rjeavamo do krajnjega rjeenja koristei
rezultate podproblema nazivamo dinamiko programiranje. Raunanje poravnanja se svodi
na izraun vrijednosti u matrici dimenzija (m + 1)(n + 1). Nazovimo tu matricu V, s d
oznaimo cijenu kretanja desno i dolje (umetanje ili brisanje), a sa w(s
i
,s
j
) cijenu zamjene
dva znaka odnosno kretanja dijagonalno dolje. Sl. 2.1 pokazuje da moemo, osim za prvi
stupac i prvi redak, vrijednost pojedinog lana matrice izraunati poznavanjem vrijednosti
za njegove susjede lijeve, gore i lijevo gore. Vrijednosti za prvi redak i stupac su tzv.
poetni uvjeti koji se lako dobiju raunanjem udaljenosti od (0,0). Cijena svoga pomaka je
d tako da su vrijednosti za rubne uvjete linearni s d. Stoga za rjeavanje matrice V moemo
koristiti relaciju:




(2.1)

Udaljenost poravnanja e biti rezultat u (m,n), no to nam rei nita o putu, odnosno
poravnanju. Za tu informaciju potrebno nam je za svaki element matrice zapamtiti smjer od
kuda se do njega dolo koristei relaciju (2.1). Pretragom unatrag od elementa (m,n) do
(0,0) i koristei informaciju smjerovima moemo rekonstruirati poravnanje.
Kd 2.1 prikazuje pseudo kod algoritma za raunanje udaljenosti odreivanja dva niza s i t
bez rekonstrukcije. Za rekonstrukciji bi bilo potrebno jo osigurati jedno polje u koje bi
spremali vrijednosti smjerova za sve elemente u matrici i napraviti rekonstrukciju.
Kako za raunanje udaljenosti odreivanja treba izraunati elemente matrice veliine
(m + 1)(n + 1) vremenska sloenost algoritma je O(n*m). Iz izraza (2.1) moe se vidjeti
da je za raunanje vrijednosti u svakom elementu dovoljno znati samo elemente iz
njegovog retka te retka iznad to nam daje linearnu memorijsku sloenost O(max(n,m)).
Meutim ako nam samo iznos poravnanja nije dovoljan zbog potreba rekonstrukcije
memorijska sloenost je O(n*m).


24
EDITDISTANCE(s,t)
1 V[0,0] = 0
2 for i1 to |s| do
3 V[i,0] = d*i
4 end
5 for j1 to |t|
6 V[0,j] = d*j
7 end
8 for i1 to |s| do
9 for j1 to |t| do
10 MATCH = V[i-1,j-1] + w(s[i],t[j])
11 INSERTION = V[i,j-1] + d
12 DELETION = V[i-1, j] + d
13 V[i,j] = min(MATCH, INSERTION, DELETION)
14 end
15 end
Kd 2.1 Pseudo kod algoritma za raunanje udaljenosti ureivanja
2.3. Needleman-Wunsch algoritam
Vano je napomenuti da algoritam za raunanje udaljenosti ureivanja nije bio prvi
algoritam koji je efikasno rijeio problem poravnanja dva niza. Rjeenje je dolo iz sasvim
drugoga smjera. Zbog potreba razvoja biologije, dolo je do potrebe za poravnanjem
biolokih nizova. Biologe je prvenstveno zanimala maksimalna slinost dvaju biolokih
sljedova. Taj problem su prvi formulirali Needleman i Wunsch (Needleman and Wunsch,
1970) te predloili prvi algoritam za njegovo rjeavanje temeljen na dinamikom
programiranju. Zanimljivo je da je taj prvi algoritam imao kubnu sloenost. Prvi algoritam
s kvadratnom sloenou je predloio David Sankoff (Sankoff, 1972). Slijedei vaan
korak je bio rad Petera H. Sellersa (Sellers, 1974) koji je pokazao da su problemi
maksimiziranja slinosti i minimiziranja udaljenosti odreivanje ekvivalenti.
Danas algoritam kojeg nazivamo Needleman-Wunschovim za raunanje slinosti nizova s i
t je temeljen na relaciji (2.2). Ako pogledamo tu relaciju moemo vidjeti da je jako slina
relaciji koju koristimo za odreivanje udaljenosti odreivanja. Temeljna razlika je u tome
da maksimaliziramo vrijednosti u matrici te da su kanjavanja negativne vrijednosti. Isto
tako dok kod udaljenosti ureivanja cijene slaganja su nula i obino koristimo istu
vrijednost za kanjavanje zamijene, brisanja i umetanja i najee je ta vrijednost 1, kod

25
Needleman-Wusch algoritma zbog biolokih razloga slaganje ima svoju pozitivnu
vrijednost, a kanjavanja uslijed neslaganja mogu za razliite prijelaze imati razliite
vrijednosti koje se dodatno razlikuju od vrijednosti za umetanje ili brisanje. Neslaganja i
praznine imaju negativne vrijednosti.




(2.2)


Kod algoritma je slian kodu algoritma za raunanje udaljenosti odreivanje jedino se
poetni uvjeti i elementi matrice raunaju prema relaciji (2.2).
S obzirom da se i u ovome algoritmu trai put odnosno poravnanje izmeu (0,0) i (n,m)
odnosno od poetka do kraja oba slijeda ovaj algoritam nazivamo algoritam za globalno
poravnanje. Njegove vremenske i memorijske sloenosti su takoer O(n*m), s time da ako
raunamo iskljuivo slinost, ne i poravnanje onda je njegova memorijska sloenost
linearna.
2.4. Algoritam preklapanja
est problem u biologiji je potreba za traenje preklapanja zadanoga uzorka s dugakim
DNA slijedom (Sl. 2.2). Primjeri takvih poravnanja su traenje eksona u DNA slijedu,
mapiranja kratkih oitanja na poznati genom, traenja preklapanja meu oitanjima u cilju
sastavljanja genoma i slino. Ovaj problem se moe svesti na traenjem preklapanja dva
niza, odnosno poravnanje sufiksa jednoga niza s prefiksom drugoga ili poravnanja jednoga
s podnizom drugoga. Preklapanje dva slijeda moemo definirati kao poravnanje u kome su
praznine (brisanja i umetanja) na poetku i kraju nizova zanemarene.


Sl. 2.2 Traenje preklapanja zadanog uzorka s dugakim DNA slijedom

26
Ako za primjer uzmemo dva slijeda s=CAGCACTTGGATTCTCGG i t=CAGCGTGG,
njihovo globalno poravnanje je:
CAGCACTTGGATTCTCGG
CAGC----G--T----GG
Meutim, ono to bi eljeli postii je:
CAGCA-CTTGGATTCTCGG
---CAGCGTGG--------
Sl. 2.3 prikazuje razliita mogua preklapanja dvaju nizova s i t. Radi pojednostavljenja za
sada pretpostavljamo da se oba niza prostori u istom smjeru, od desna na lijevo.

Sl. 2.3 Primjeri razliitih preklapanja dvaju nizova s i t. a) Sufiks od s se preklapa s prefiksom od t.
b) Sufiks od t se preklapa s prefiksom od s. c) Niz t se u cijelosti preklapa s podnizom od s (ili
obrnuto).

S obzirom da obino elimo poravnati samo dio jedne ili obje sekvence ovo poravnanje
nazivamo polu-globalno poravnanje ili preklapanje. Kod preklapanja je bitno primijeti da
za razliku od klasino globalnog poravnanja koristei udaljenost ureivanja ili
Needleman-Wunschov algoritam u ovom sluaju ne elimo kanjavati praznine na poetku
ili kraju pojedinoga niza. Praznine na poetku niza moemo omoguiti da prilikom
inicijalizacije ih ne penaliziramo. Praznine na kraju niza moemo omoguiti da kao kraj
poravnanja uzimamo maksimalnu vrijednost u zadnjem retku ili zadnjem stupcu.
Zavisno o zahtjevima moemo definirati nekoliko sluaja i njima pripadnih algoritama
preklapanja za nizove s i t (niz s se nalazi u stupcu, a niz t u retku):
1. Preklapanje prefiksa niza s sa sufiksom niza t inicijaliziramo prvi stupac s
d*j, prvi redak s nulama, a kraj poravnanja traimo u maksimumu zadnjeg stupca
matrice.

27
2. Preklapanje sufiksa niza s sa prefiksom niza t inicijaliziramo prvi stupac s
nulama, prvi redak s d*j, a kraj poravnanja traimo u maksimumu zadnjeg retka.
3. Preklapanje sufiks-prefiks dva niza, pri emu oba niza mogu imati i sufiks i prefiks
poravnanja inicijaliziramo i prvi redak i prvi stupac s nulama, a kraj poravnanja
traimo u maksimumu zadnjeg retka i stupca zavisno koji je vei.
4. Preklapanje u potpunosti niza s s podnizom niza t inicijaliziramo prvi stupac
s d*j, prvi redak s nulama, a kraj poravnanja traimo u maksimumu zadnjega
stupca.
Sl. 2.4 prikazuje primjer poravnanja za sluaj 4 za nizove s=TCCG i t=ACTCCGAT.
Dobiveno poravnanje je:
--TCCG--
ACTCCGAT
t A C T C C G A T
s 0 0 0 0 0 0 0 0 0
0
T -2
C -4
C -6
G -8

Sl. 2.4 Preklapanje dva niza s i t pri emu elimo cijeli niz s poravnati s podnizom niza t. U ovom
sluaju koristimo modificirani Needleman-Wunsch algoritam (cijene: slaganje +4, neslaganje -1,
praznina -2). S obzirom da elimo poravnati cijeli niz s penaliziramo inicijalna brisanja. Kod niza t
elimo omoguiti poravnanje podniza stoga ne penaliziramo inicijalna umetanja. Kako ne elimo
penalizirati praznine na kraju niza t u zadnjem retku odabiremo element matrice s maksimalnim
rezultatom i od njega praenjem unatrag raunamo put, odnosno poravnanje
2.5. Lokalno poravnanje
Prva poravnanja biolokih sljedova raena su poetkom 1970-tih. U to doba metode za
odreivanje nizova nukleinskih kiselina nisu bile toliko razvijene pa su se uglavnom
poravnavali proteinski sljedovi. U tim ranim danima usporeivali su proteini podjednake

28
duljine. Meutim, uskoro su se pojavili sluajevi u kojima su proteini dijelili samo
izolirane regije slinosti. Za poravnanje takvih regija mjera globalnog poravnanja i
Needleman-Wunsch algoritam nisu bili dobro prilagoeni. Stoga se pojavila potreba za
novom definicijom lokalne slinosti kao i novim algoritmima za pronalazak optimalnoga
lokalnog poravnanja.
Kod lokalnog poravnanja vano je utvrditi regije ije e poravnanje imati najvei rezultat.
Za utvrivanja takvih regije puno je pogodnije maksimizacija slinosti nego minimizacija
udaljenosti odreivanja. Kada promatramo slinost dva slijeda ta vrijednost pada i raste
kako se kreemo kroz oba slijeda. U sluaju kada slinost padne ispod nula, nema vie
smisla govoriti o slinosti. Ako promatramo put poravnanja u matrici od neke krajnje toke
prema poetku i naiemo na element ija je vrijednost manja od nule moemo utvrditi da
poravnanja prije te toke u smjeru prema (0,0) ne bi povealo ukupan rezultat nego ga
umanjilo. Stoga u takvim elementima moemo zamijeniti tu vrijednost s nula. Time
dobivamo da poravnanje poinje od te toke nadalje. Kod udaljenosti odreivanja je teko
definirati vrijednost ekvivalentnu negativnoj vrijednosti kod odreivanja slinosti jer tamo
vrijednost monotono raste. S obzirom da elimo odrediti lokalno poravnanje, nema potrebe
za penaliziranjem poetnih praznina.
Algoritam lokalnog poravnanja moemo konstruirati koristei razmatranja iz prologa
odlomka:
Ne penaliziramo praznine na poetku sljedova.
U sluaju da vrijednost u nekom elementu matrice padne ispod nula tu vrijednost
zamijenimo s nula.
Naemo maksimalnu vrijednost u cijeloj matrici i od nje traimo poravnanje
praenjem unatrag.
Koritenje ovoga naina raunanja poravnanja nazivamo Smith-Waterman algoritam
(Smith and Waterman, 1981). Ovaj algoritam je jedna od najpoznatijih u bioinformatici.
Raunanje matrice slinosti definiramo na slijedei nain:




(2.3)


29
Kd 2.2 prikazuje pseudo kod Smith-Waterman algoritama za dva niza s i t. Pseudo kod ne
sadri dio kojim se odreuje samo poravnanje. Poravnanje se dobije praenjem unatrag od
elementa matrica koji ima maksimalnu vrijednost.
SMITHWATERMAN(s,t)
1 M = 0
2 V[0,0] = 0
3 for i1 to |s| do
4 V[i,0] = 0
5 end
6 for j1 to |t|
7 V[0,j] = 0
8 end
9 for i1 to |s| do
10 for j1 to |t| do
11 MATCH = V[i-1,j-1] + w(s[i],t[j])
12 INSERTION = V[i,j-1] + d
13 DELETION = V[i-1, j] + d
14 V[i,j] = max(0, MATCH, INSERTION, DELETION)
15 end
16 M = max(M, V[i,j])
17 end
Kd 2.2 Pseudo kod Smith-Waterman algoritma bez utvrenja puta poravnanja
Sl. 2.5 prikazuje primjer poravnanja za nizove s=ACCTAAGG i t=GGCTCAATCA
koristei +2 za podudaranje, -1 za zamjenu i -2 za prazninu. U svaki element matrice se
spremaju trenutni rezultat i smjer od kuda se dolo. U varijablu M se sprema trenutno
najvea vrijednost u matrici. U sluaju primjera sa slike 2.5 najvea vrijednost je 6 i
element s tom vrijednou predstavlja kraj poravnanja koje se dobije vraanjem unatrag od
toga elementa. Za ovaj primjer poravnanje je:
CTCAA
|| ||
CT-AA
U prikazu poravnanja izmeu dva niza esto koristimo oznake | koje povezuju pojedine
znakove u sluaju da je dolo do slaganja.

30
G G C T C A A T C A
0 0 0 0 0 0 0 0 0 0 0
A 0 0 0 0 0 0 2 2 0 0 2
C 0 0 0 2 0 2 0 1 1 2 0
C 0 0 0 2 1 2 1 0 0 3 1
T 0 0 0 0 4 2 1 0 2 1 2
A 0 0 0 0 2 3 4 3 1 1 3
A 0 0 0 0 0 1 5 6 4 2 3
G 0 2 2 0 0 0 3 4 5 3 1
G 0 2 4 2 0 0 1 2 3 4 2

Sl. 2.5 Primjer poravnanja dva niza koristei Smith-Waterman algoritam. Poravnavamo nizove
s=ACCTAAGG i t=GGCTCAATCA koristei +2 za podudaranje, -1 za zamjenu i +2 za prazninu.
Prvi redak i prvi stupac su inicijalizirani s nulama. Crvene strelice pokazuju smjerove u kojima je
mogue ii pretraivanjem unatrag za sve elemente matrice koji nisu doli od elementa s
vrijednou 0. Naranasto je oznaeno optimalno poravnanje.
Da bi smo dobili lokalno poravnanje dvaju nizova duljine m i n koritenjem
Smith-Waterman algoritma potrebno je kao i kod globalnoga poravnanja rijeiti sve
elemente matrice dimenzija (m+1)(n+1), te sauvati sve vrijednosti smjerova. Stoga je
takoer i vremenska i memorijska sloenost O(nm).
2.6. Optimizacije primjenjive na algoritme za poravnanje
sljedova
Kvadratna vremenska i memorijska sloenost algoritam za poravnanje sljedova temeljenih
na dinamikom programiranju predstavlja velik problem za dulje sljedove. Tijekom godina
razvilo se nekoliko algoritama koji smanjuju vremensku ili memorijski sloenost, a u ovom
poglavlju naglasak e biti na algoritmima za globalno poravnanje iako se veina ovih
tehnika moe primijeniti i za lokalno i polu-globalno poravnanje.

31
2.6.1. Linearna memorijska sloenost
S obzirom na dananja raunala neto vei izazov za poravnanje dva niza predstavlja
kvadratna memorijska sloenost od one vremenske. Npr. poravnanje ljudskoga genoma s
genomom mia (oba duljine 310
9
nukleotida) bi zahtijevalo 910
18
mjesta u matrici.
Razlog za kvadratnu memorijsku sloenost je potreba za pamenjem smjerova za svaki
element matrice za potrebe odreivanja poravnanja. Stoga se svi algoritmi za smanjenje
memorijske sloenosti temelje na odreivanja poravnanja bez prethodnoga poznavanja
cijele matrice poravnanja.
Vrlo je vano primijetiti da za poravnanje dva niza dinamikim programiranjem vrijedi
slijedee:
Za izraun svakog elementa matrice potrebno je samo znati vrijednosti u trenutnom
i prethodnom retku. Dodatno, za rjeavanje cijeloga retka dovoljno je poznavati
vrijednosti u prethodnom retku i vrijednost rubnog uvjeta u prvom stupcu.
Ako globalno poravnavamo niz s = s
1
s
2
s
3
s
m
i niz t = t
1
t
2
t
3
t
n
i kao rezultat
dobijemo poravnanje p = p
1
p
2
p
3
p
k
pri emu je k m + n. Ako s s
r
oznaimo
reverzni niz od s tako da je s
r
= s
m
s
m-1
s
m-2
s
1
i analogno oznaimo t
r
i p
r
moemo
lako pokazati da je p
r
optimalno poravnanje od s
r
i t
r
. Kao posljedicu toga moemo
rei da je rezultat poravnanja dva niza jednak ukoliko rjeavamo matricu od
elementa u (0,0) ili elementa (m,n).
Uzevi u obzir gornje navode najjednostavniji algoritam za izraun poravnanja sa
sloenou manjom od kvadratne moemo dobiti ako pamtimo samo svaki k-ti redak
matrice pri emu je k-ti redak posljednji redak u matrici. Pamtimo samo vrijednosti
elemenata ne i smjer. Kada smo zavrili s raunanjem svih vrijednosti u matrici krenemo
ponovno raunati od k-1 retka prema kraju s time da ovaj put pamtimo samo smjer za svaki
element. Kada doemo do kraja vraanjem unatrag doemo do poravnanja izmeu k-1
retka i kraja. Analogno rjeavamo za svih k redaka koje su zapameni. Izmeu bilo koja
dva susjedna zapamena retka ostalo je za izraunati

redaka. Nakon to izraunamo put


poravnanja izmeu njih te nam vrijednosti ne trebaju dalje u memoriji stoga nam je za
raunanje ukupno potrebno

redaka. Ukoliko odaberemo onda nam je


ukupna memorijska sloenost . S obzirom da kreemo ponovo iz svakoga k-tog

32
retka, cijelu matricu rjeavamo dva puta te nam je stoga ukupna vremenska sloenost
poveana dva puta.
Algoritam s linearnom memorijskom sloenou je predstavio Dan Hirschberg
(Hirschberg, 1975). Osnovna ideja algoritma je slijedea. Promatramo dva niza s i t duljina
m i n te njihove reverzne nizove s
r
i t
r
. S V(i,j) oznaimo optimalan rezultat poravnanja
s
1
s
i
s t
1
t
j,
a s V
r
(i,j) optimalan rezultat poravnanja s
r
1
s
r
i
s t
r
1
t
r
j
. Lako se moe
pokazati da je V
r
(i,j) jednak poravnanju s
m-i+1
s
m
s t
n-j+1
t
n.
Pojednostavljeno kaemo da
rezultat poravnanje zadnjih i znakova iz niza s i zadnjih j znakova iz niza t je jednak
rezultatu reverznoga poravnanja tih znakova. Koristei to uz pretpostavku da je m paran
moemo pokazati da je


(2.4)
odnosno da ukupno poravnanje moemo gledati kao zbroj poravnanja prve polovice niza s
s nizom t i reverznoga poravnanja druge polovice niza s s nizom t. Cilj je pronai indeks k
niza t za koji je zbroj dva poravnanja maksimalan. Taj indeks obiljeavamo s k*. Praktino
algoritam dijeli matricu rjeavanje na dvije polovice te radi na principu spajanja polovica
putova rekonstrukcije u jednu cjelinu. Sl. 2.6. pokazuje prvi korak u nakon to rijeimo

Sl. 2.6 Prvi korak Hirschbergova algoritma. Odvojeno se rjeavaju gornja i donja polovica matrice,
s time da donju polovicu rjeavamo u reverznom smjeru. Nakon toga promatramo zadnje redove
poravnanja (oznaeni sivo). U tim zadnjim redovima odabiremo one susjedne elemente matrice iji
zbroj rezultata je najvei (oznaeni tamno sivo).

33
gornju i donju polovicu matrice promatramo zadnje retke. Kod gornje polovice to je njezin
zadnji redak, kod donje polovice to je prvi redak, odnosno zadnji kada rjeavamo reverzno
iz donjeg desnoga kuta.
S obzirom da gledamo ukupno poravnanje traimo rezultat koji e biti ukupno
maksimalan, stoga promatramo susjedne elemente matrice (elemente koji su mogli nastati
procesom poravnanja za elemente gornje polovice to su elementi ispod i desno ispod) i
traimo one ija je suma rezultata poravnanja maksimalna. Kada odredimo te susjedne
elemente znamo da se oni nalaze na putu optimalnoga poravnanja i onda rekurzivno dalje
odredimo sve preostale dijelove poravnanja.
Optimalna toka polavljanja
n
m
m/2
k*

Sl. 2.7 Hirschbergov algoritam. Algoritam u prvom koraku trai na polovici matrice indeks k* niza
t za kojeg je zbroj poravnanja obje polovice matrice maksimalan. Nakon toga se postupak
rekurzivno ponavlja u dobivenim podmatricama i na taj nain dobivamo toku po toku
poravnanja.
Sl. 2.7 prikazuje korake Hirschbergovog algoritma. Vano je primijeti da nakon prvoga
korak povrine oznaene bijelom bojom ne treba rjeavati jer se poravnanje ne nalazi u tim
dijelovima matrice. Njihova povrina je jednaka polovici ukupne povrine matrice. U
prvom smo koraku morali izraunati vrijednosti za sve elemente matrice, u drugom je
dovoljno izraunati samo za pola i tako dalje rekurzivno. Iz ovoga moemo vidjeti da je
ukupno vrijeme izvoenje proporcionalno:

34


(2.5)
to znai da je ovaj algoritam samo dva puta sporiji od Needleman-Wunsch algoritma.
Kako je dovoljno uvati maksimalno dva prethodna retka u tablici (2n), te moramo odrediti
maksimalno poravnanje dugako (m+n) ukupna memorijska sloenost je
O(3n+m) = O(n+m).
2.6.2. Dinamiko programiranje s ogranienim pojasom
Kao to je pokazano algoritmi dinamikoga programiranja uzimaju O(nm) vremena. Ako
elimo s tim algoritmima poravnati genome ovjeka i mia duge nekoliko milijardi baza
trebat e nam minimalno 910
18
operacija. Uz radni takt od 1GHz za raunanje ovoga
poravnanja trebat e nam preko 200 godina. Dodatno, pokazano da se openita vremenska
sloenost poravnanja dinamikim programiranje teko moe popraviti. Meutim, postoje
posebni sluajevi u kojima je to mogue. Jedan specijalan sluaj je ogranienje
maksimalnoga broja unesenih praznina pri poravnanju. Oznaimo taj broj s k. Oito je da
za vrijedi . Podsjetimo se da u matrici V se umetanje odgovara
vodoravnom pomicanju, a brisanje okomitom. Ako smo ograniili poravnanja s k praznina
onda to poravnanje mora biti unutar pojasa irine (2k + 1). Sl. 2.8 prikazuje primjer
dinamikoga programiranja s ogranienim pojasom.
2k +1

- A G C A T G C
- 0 -1 -2 -3
A -1 2 1 0 -1
C -2 1 1 3 2 1
A -3 0 0 2 5 4 3
A -1 -1 1 4 4 3 2
T -2 0 3 6 5 4
C 0 2 5 5 7
C 1 4 4 7

a) b)
Sl. 2.8 Poravnanje s ogranienim pojasom. a) Prikaz 2k +1 pojasa unutar matrice dinamikog
programiranja. b) Primjer poravnanja koristei ogranieni pojas irine k=3

35
S obzirom da smo definirali ogranieni pojas nema potrebe ni rjeavati dijelove matrice
izvan pojasa. Povrina matrice V koju je potrebno izraunati je

. Za i pretpostavku da za
popunjavanja svakoga elementa matrice treba O(1), vremenska sloenost algoritma je
O((n+m)k). Paljivom izvedbom postie se ista memorijska sloenost.
Ovakvi algoritmi se danas esto koriste u sluajevima kada znamo da je udaljenost
odreivanja izmeu dva slijeda mala. Najea primjena je u algoritmima za poravnanja
oitanja dobivenih DNA sekvenciranjem na ve poznati, tzv. referentni genom.
Dodatno se ovaj algoritam moe dodatno ubrzati i smanjiti koritenje memorije (Myers,
1986; Ukkonen, 1985). Isto tako danas se esto koriste SIMD (engl. single instruction
multiple data) instrukcije u procesorima pa se time postiu dodatna ubrzanja (Myers,
1999).
2.7. Bioloka usporedba nizova
Konstruiranje smislenoga poravnanja dvaju nizova zahtijeva koritenje odgovarajuih
funkcija zamjene izmeu svih parova simbola unutar abecede, te kanjavanja praznina.
Funkcije zamjene su obino realizirane kao matrice slinosti.
2.7.1. Matrice slinosti
Zbog toga to se DNA moe nai samo etiri vrste nukleotida, te su matrice puno
jednostavnije od matrica slinosti za proteine. Najjednostavnije matrice za
Needleman-Wunsch algoritam pridjeljuju +1 za slaganje, a -1 za neslaganje baza, dok za
udaljenost ureivanja obino koristimo 0 za slaganje i +1 za neslaganje. Sloenije matrice
koriste dodatna bioloka znanja. Izmeu ostaloga nukleotide moe klasificirati u purine
(adenin i gvanin) ili pirimidine (citozin i timin). Mutacija nukleotida pri emu ostajemo u
istoj skupini odnosno mutacija purinpurin ili pirimidinpirmidin se naziva tranzicija.
Mutacija u kojoj se promijeni skupina odnosno purinpirimidin ili
pirmidinpurin se naziva transverzija. Bioloki su tranzicije ee nego transverzije te se
zbog toga i vie kanjavaju.
Sl. 2.9 prikazuje dio EDNAFull matrice koja se jako esto koristi za sluaj kada koristimo
algoritme koji trae optimalnu slinost. Sl. 2.10 prikazuje matricu koju koristimo kada

36
elimo algoritmom odreivanja udaljenosti izmeu dva odrediti poravnanje, a razliito
kanjavamo tranziciju i transverziju.
A T C G
A 5 -4 -4 -4
T -4 5 -4 -4
C -4 -4 5 -4
G -4 -4 -4 5
Sl. 2.9 Dio EDNAFull matrice koji se najee koristi s algoritmima koji maksimiziraju slinost.
Ostatak matrice se odnosi na kodove koji predstavljaju situacije u kojima je nejasno o kojem se
tono nukleotidu radi.
A T C G
A 0 5 5 1
T 5 0 1 5
C 5 1 0 5
G 1 5 5 0
Sl. 2.10 Matrica koja se koristi s algoritmom ureivanje udaljenosti i kada se vodi rauna o tome da
li dolazi do tranzicije ili transverzije.
Kod proteinskih sekvenci matrice su kompliciranije. Koriste se PAM (engl. point accepted
mutations) i BLOSUM (engl. block substitution) matrice koje odraavaju frekvenciju s
kojom pojedina amino kiselina x je zamijenjena amino kiselinom y u evolucijski srodnim
sljedovima. Danas se najee koristi BLOSUM 62 matrica. Procedura (Henikoff and
Henikoff, 1992) koritena za procjenu BLOSUM matrica je bila vrlo jednostavna.
Henikoffovi su uzeli veliku bazu pouzdanih poravnanja i samo brojali poravnanja sljedova
koja su imala postotak identinosti jednak ili manji od nekoga praga. Tako je npr. prag od
62% identinosti koriten za izraun frekvenciju zamjena za BLOSUM 62 matricu.
2.7.2. Praznine i procijepi
Mutacije u DNA su obino posljedica pogreka prilikom umnaanja DNA. U prirodi se
vrlo esto briu ili umeu cijeli podnizovi, umjesto umetanja ili brisanja pojedinih
nukleotida. Procijep u poravnanju definiramo kao neprekidni niz praznina u jednom od

37
redaka poravnanja (Sl. 2.11). S obzirom da su umetanja i brisanja evolucijski esta,
kanjavanje procijepa duljine x sa xd (gdje je d cijena praznine) je prestroga. Stoga mnogi
praktini algoritmi koriste blai pristup za kanjavanje procijepa i kanjavaju procijep
duljine x s funkcijom koja puno sporije raste nego suma kanjavanja za x praznina.

Sl. 2.11 Poravnanje dva niza s oznaenim procijepima. Procijep se definira kao neprekinuti niz
poravnanja.
Iako bi idealna funkcija kanjavanja procijepa bila konveksna (npr. logaritamska) takve
funkcije se ne koriste jer algoritmi koji to podravaju imaju O(n
3
) vremensku sloenost to
ih ini presporima za praktine svrhe. Stoga se danas esto konveksna funkcija,
aproksimira s afinom funkcijom. Takva funkcija ima oblik d+xe, pri emu je d cijena
otvaranja novoga procjepa, a e cijena svakog produljenja procjepa.


38
2.8. Literatura
Henikoff,S. and Henikoff,J.G. (1992) Amino acid substitution matrices from protein
blocks. Proc. Natl. Acad. Sci. U. S. A., 89, 1091510919.
Hirschberg,D.S. (1975) A Linear Space Algorithm for Computing Maximal Common
Subsequences. Commun. ACM, 18, 341343.
Myers,E.W. (1986) An O(ND) Difference Algorithm and Its Variations. Algorithmica, 1,
251266.
Myers,E.W. (1995) Toward simplifying and accurately formulating fragment assembly. J.
Comput. Biol., 2, 27590.
Needleman,S.B. & Wunsch,C.D. (1970) A general method applicable to the search for
similarities in the amino acid sequence of two proteins. J. Mol. Biol., 48, 44353.
Sankoff,D. (1972) Matching Sequences under Deletion/Insertion Constraints. Proc. Natl.
Acad. Sci., 69, 46.
Sellers,P. (1974) On the Theory and Computation of Evolutionary Distances. SIAM J.
Appl. Math., 26, 787793.
Smith,T.F. & Waterman,M.S. (1981) Identification of common molecular subsequences. J.
Mol. Biol., 147, 195197.
Ukkonen,E. (1985) Algorithms for approximate string matching. Inf. Control, 64, 100
118.


39
3. Pretraivanje baze podataka sljedova. BLAST
Pretraivanje baze podataka koja sadri nukleotidne (DNA ili RNA) ili aminokiselinske
sljedove najei je, a ujedno i temeljni bioinformatiki postupak, a svakodnevno ga
koriste i biolozi i bioinformatiari. Nukleotidni ili aminokiselinski slijed nekog organizma
usporeuje se s bazom podataka sljedova kako bi se pronaali slini sljedovi u drugim
organizmima. Naime, slinost sljedova upuuje na zajedniko podrijetlo organizama
(homologija). Kao primjer moemo navesti slinost izmeu gena: ako neki slijed
predstavlja gen nekog organizma (gen je dio DNA koji kodira za protein), onda se i za
njemu slian slijed iz drugog organizma moe pretpostaviti da i taj slijed predstavlja gen,
odnosno, da oba gena potjeu od gena zajednikog pretka. Zbog homologije moemo
pretpostaviti i sljedee: ako je za neki protein poznata njegova funkcija u organizmu, onda
se slina funkcija moe pretpostaviti i za njemu sline proteine. Takva se ideja esto
primijenjuje kod novosekvenciranih organizama, gdje se usporedbom s postojeim
sljedovima utvruje je li neki slijed gen i je li slian genima iz baze podataka za ije je
proteine poznata funkcija. Takvim analitikim pristupom izbjegavaju se skupi i mukotrpni
eksperimenti u kojima bi se inae moralo izravno utvrditi koji je dio DNA gen i koja je
funkcija proteina za koji taj gen kodira.
Baze podataka nukleotidnih sljedova sadre za neke organizme cijele genome i
transkriptome, dok su za neke organizme poznati samo neki dijelovi DNA ili RNA (obino
geni). S razvojem suvremenih tehnologija sekvenciranja, broj dostupnih genoma i
transkriptoma eksponencijalno raste.
Najpoznatije i najvee javno dostupne baze podataka koje sadre nukleotidne sljedove su:
NCBI-GenBank baza podataka (NCBI; National Center for Biotechnology
Information)
EMBL (European Molecular Biology Laboratory) baza podataka
DDBJ (DNA Data Bank of Japan) baza podataka
Najpoznatija i najvea javno dostupna baza podataka koja sadri proteinske sljedove je:
UniProt, a koja objedinjava i koristi podatke iz drugih velikih proteinskih baza podataka:
o Swiss-Prot

40
o TrEMBL
o Protein Information Resource
Kao ilustraciju veliine baze podataka biolokih sljedova moemo pogledati primjer
GenBank baze podataka iz kolovoza 2013.: nukleotidni sljedovi zauzimaju oko 610 GB
(Benson et al., 2013). Veliinu takvih skupova podataka lake razumijemo, ako pogledamo
prosjene veliine genoma pojedinih organizama: npr. red veliine bakterijskih genoma je
10
6
-10
7
bp. Genomi kukaca su reda veliine 10
8
-10
9
bp, genomi sisavaca su oko 10
9
bp
(npr. ovjekov genom je 310
9
bp), dok genomi cvjetnica doseu i 10
11
(Gregory, 2014).
3.1. Usporedba biolokih sljedova s bazom podataka
koritenjem heuristikog pristupa
Pretpostavimo da elimo usporediti upitni slijed (eng. query) s bazom podataka sljedova
(eng. target). Neka upitni slijed sadri m nukleotida, a baza podataka ukupno n nukleotida.
Odreivanje optimalnog poravnanja upitnog slijeda sa sljedovima iz baze podataka
dinamikim programiranjem (pogavlje 2) obavlja se u O(mn) vremenu, to je vrlo sporo za
velike baze podataka. Kao alternativa dinamikom programiranju, za velike se skupove
podataka koriste programi koji imaju heuristiki pristup rjeenju. Njihova je odlika
znaajno ubrzanje u odnosu na programe koji koriste dinamiko programiranje, ali
pronalazak optimalnog rjeenja ovakvim pristupom nije zajamen
1
. Heuristiki pristup
koriste i najpoznatiji programi za usporedbu biolokih sljedova s bazom podataka: BLAST
(Altschul et al., 1990) i FASTA (Lipman and Pearson, 1985). Oba programa koriste
princip lokalnog poravnanja, odnosno, dijelovi upitnog slijeda se pokuavaju na najbolji
lokalno nain poravnati sa sljedova iz baze podataka. Novije inaice BLAST-a, Gapped
BLAST, PSI-BLAST (Altschul et al., 1997) glavni su alati NCBI-a za usporedbe
proteinskih i nukleotidnih sljedova. Osim njih, danas se esto koriste i MegaBLAST
(Zhang et al., 2000) i PHI-BLAST (Zhang et al., 1998). O popularnosti BLAST-a svjedoi
i njegova citiranost: radovi Altschul et al. (1990, 1997) zajedno su imali preko 70000 citata
do kraja 2013. godine. S obzirom da je BLAST danas najraireniji alat za usporedbu
upitnog slijeda s bazom podataka, u daljnjem e tekstu biti opisan princip njegova rada.

1
Ovakav pristup predstavlja odvagivanje (eng. trade-off) izmeu brzine, kojom se dolazi do rjeenja i
osjetljivosti (eng. sensitivity) dobivenog rjeenja.

41
3.2. Program BLAST
Program BLAST koristi sljedeu osnovnu ideja: iz upitnog se slijeda generiraju kratki
podnizovi, s kojima se onda pretrauje baza podataka (BP). Ti se podnizovi zatim koriste
kao zaetak ili sjeme (eng. seed) duljih lokalnih poravnanja. Kao rezultat, BLAST vraa
listu sljedova iz baze podataka iji rezultat lokalnog poravnanja s cijelim ulaznim ili nekim
njegovim dijelom ispunjava unaprijed zadani kriterij kvalitete (Error! Reference source
not found.): podnizovi upitnog slijeda, za koje su pronaeni odgovarajui podnizovi u
sljedovima u bazi podataka (lista rezultata), prikazani su kao uti, plavi i crveni
pravokutnici.

Sl. 3.1 Usporedba upitnog slijeda s bazom podataka nukleotidnih ili aminokiselinskih sljedova
Ideja osnovnog BLAST algoritma te njegove verzije koja ukljuuje procijepe (Gapped
BLAST) prikazana je na Sl. 3.2 te je zatim detaljnije pojanjenja u tekstu koji slijedi.

Baza podataka koja
sadri nukleotidne
i/ili proteinske
sljedove
Upitni slijed
Lista rezultata
Usporedba upitnog slijeda s bazom
podataka sljedova

42

Algoritam BLAST (List, Scan, Extend)
1. Iz upitnog slijeda odrediti listu rijei L. Rijei su kratki podnizovi ulaznog niza unaprijed zadane
duljine (za aminokiseline: obino 3 znaka; za nukleotide: obino 11 znakova).
2. Za svaku rije w

iz L pronai sline rijei, tj. izgraditi listu rijei L' ije poravnanje s w

daje
rezultat T. Rezultat poravnanja odreuje se kod nukleotidnih sljedova bodovanjem
podudaranja/zamjene nukleotida, odnosno koritenjem supstitucijskih matrica kod sljedova
aminokiselina.
3. Pretraiti bazu podataka kako bi se pronale sljedovi koji sadre rijei iz L'; pronaeni
podnizovi u bazi podataka nazivaju se pogotcima (eng. hits).
Osnovni BLAST
4. Proiriti poravnanje oko pogodaka u lijevo i u desno, sve dok rezultat poravnanja ne pone
padati ispod zadanog praga. Tako dobivena podruja nazivaju se podruja s visokim
rezultatom poravnanja (HSP; eng. High-scoring Segment Pair).
5. Odabrati HSP-ove s najviim rezultatom i odrediti njihov statistiki znaaj (E i p vrijednosti).
Prikazati ih kao konani rezultat u listi.
BLAST koji dozvoljava procijepe (Gapped BLAST)
4. Povezati 2 ili vie inicijalnih pogodaka koji se nalaze na istoj dijagonali i meusobno su
udaljeni < A. Izmeu njih izabrati statistiki znaajna podudaranja.
5. Statistiki znaajna podudaranja se ponovno poravnavaju koritenjem SW algoritma. Takva
podruja predstavljaju konani rezultat koji se onda pokazuje u listi rezultata zajedno sa
statistikim pokazateljima (E i p vrijednost).
Sl. 3.2 Algoritam BLAST osnovni algoritam i algoritam koji ukljuuje procijepe
Podnizovi, koji se u programu BLAST koriste kao zaetak duljih poravnanja, nazivaju se
rijei (eng. words) i njihovu duljinu korisnik zadaje unaprijed, ovisno o tome sadri li
upitni slijed nukleotide ili aminokiseline. U sluaju nukleotidnog upitnog slijeda,
pretpostavljena duljina rijei je 11 (obino se koriste vrijednosti od 7 do 14). U sluaju
aminokiselina, pretpostavljena duljina rijei je 3 (ponekad se koristi i 2 kada se pretrauju
krai sljedovi aminokiselina, npr. peptidi). Primjer izgradnje liste rijei s kojima se zatim
pretrauje baza podataka prikazan je na Sl. 3.3.

43
Primjer: Izgradnja liste rijei duljine n iz upitnog slijeda
Neka je zadan ulazni aminokiselinski slijed GEIIGCT.
Neka je za aminokiseline zadana duljina rijei n = 3. S obzirom da ukupno postoji 20 aminokiselina,
broj moguih rijei od 3 znaka (aminokiseline) je 20
3
= 8000. Neka je zadan prag T = 12. T
predstavlja vrijednost poravnanja izmeu 2 rijei koritenjem zadane supstitucijske matrice
(ovdje: BLOSUM62).
1. Iz upitnog se slijeda GEIIGCT stvara lista rijei L. Rijei iz L su podnizovi ulaznog niza GEIIGCT
duljine 3 znaka, dakle:
L = {GEI, EII, IIG, IGC, GCT}
2. Svaka rije r iz L promatra se u odnosu na sve mogue rijei od 3 znaka (aminokiseline); r'. Za
svaku rije r odreuje se rezultat poravnanja s r'. Ako je rezultat poravnanja koritenjem
BLOSUM62 matrice T, onda se nova rije r' dodaje u L', gdje je L' lista rijei s kojima e se
pretraivati baza podataka.
Npr. za r = GEI, zbog jednostavnosti, promatramo samo rijei GEI, GEE i GEL. Rezultat poravnanja r
s GEI je 6 + 5 + 4 = 15 T, rezultat poravnanja r i GEE je 6 + 5 - 3 = 8 < T, a rezultat poravnanja r i
GEL je 6 + 5 + 2 = 13 T. Dakle, u listi L' nalazit e se GEI i GEL.
Sl. 3.3. Primjer izgradnje liste rijei iz upitnog slijeda
U osnovnoj izvedbi BLAST-a, pretraivanje baze podataka sljedova obavlja se tako da se
rijei iz liste L' indeksiraju (3. korak algoritma; Sl. 3.2). Indeks je izgraen kao automat s
konanim brojem stanja (eng. finite state automaton; FSA). Ulaz u automat su sljedovi iz
baze podataka. Za svaki slijed iz BP, automat dojavljuje sadri li slijed neku rije iz L' ili
ne. Nad sljedovima iz BP za koje je automat dojavio da sadre rijei iz L', obavlja se
daljnja usporedba s ulaznim nizom, odnosno prelazi se na 4. korak algoritma (Sl. 3.2).
U u sluaju osnovnog BLAST algoritma (Altschul et al., 1990), rijei iz upitnog slijeda za
koje su pronaeni pogotci (eng. hits) u BP, pokuavaju se proiriti u lijevo i u desno sve
dok rezultat poravnanja dobiven proirenjem ne pone padati ispod unaprijed zadanog
praga. Tako se dobivaju podruje s visokim rezultatom poravnanja (eng. high-scoring
segment pair; HSP). Izmeu pronaenih parovima segmenata, ispisuje se ona koja daju
statistiki najznaajniji rezultat (E i p vrijednost, koje su pojanjenje kasnije u tekstu).
Odreivanje proirenja pogodaka zahtijeva oko 90% ukupnog vremena rada programa.

44
U sluaju verzije BLAST-a koja omoguuje rad s procijepima, Gapped BLAST (Altschul
et al., 1997), pronaeni parovi rijei se pokuavaju meusobno spojiti ako se nalaze na
istoj dijagonali i meusobno su udaljeni za manje od A znakova. Rijei se spajaju tako da
se podruje izmeu njih optimalno poravna dinamikim programiranjem. Meu tako
poravnatim podrujima pronalaze se statistiki najznaajnija, koja se onda ponovno
poravnavaju koritenjem Smith-Watermanovog algoritma (Smith & Waterman, 1981).
Kod poravnavanja nukleotida koriste se unaprijed zadane vrijednosti za bodovanje
podudaranja (eng. match) i nepodudaranja (tj. zamjene) nukleotida (eng. mismatch) (npr.
+1 za podudaranje i -2 za zamjenu). Za matematiki prikaz bodovanja pojave procijepa
(praznina) u poravnanju (eng. gap cost) koristi se linearna ili afina funkcija (poglavlje
2.7.2). Kod poravnanja aminokiselina, koristi se bodovanje prema supstitucijskim
matricama
2
. U programu BLAST mogu se koristiti PAM matrice (Dayhoff et al., 1978) ili
BLOSUM matrice (Henikoff & Henikoff, 1992).
PAM (ili APM, eng. Accepted Point Mutation) matrice temelje se na filogenetskom stablu
izgraenom iz poravnanja promatranih sljedova aminokiselina blisko srodnih vrsta. PAM 1
matrica sadri cjelobrojne vrijednosti koje se odnose na mutacijske stope izmeu
aminokiselina u vremenu u kojem je promijenjeno 1% aminokiselina. Sve ostale PAM
matrice s veim brojem (npr. PAM30, PAM250) raunaju se iz PAM1 matrice i
predstavljaju promjene u duljim vremenskim razdobljima, to odgovara sljedovima, koji su
meusobno evolucijski udaljeniji.
BLOSUM (eng. BLOck Substitution Matrix) matrice izgraene su temeljem poravnanja
vrlo ouvanih podruja izmeu udaljenijih sljedova i daju bolje rezultate za usporedbu
udaljenijih proteina. U programu BLAST pretpostavljeno je koritenje BLOSUM 62
matrice, a jo su ponuene matrice PAM30, PAM70, PAM250, BLOSUM45,

2
Supstitucijska matrica je matrica dimenzija 20 x 20, gdje je 20 broj aminokiselina. Polje
(i, j) u supstitucijskoj matrici sadri cijeli broj koji predstavlja stopu, odnosno, vjerojatnost
mutacije aminokiseline i u aminokiselinu j u nekom vremenu. Vjerojatnosti mutacija
odgovaraju promatranim kemijskim i fizikalnim svojstvima aminokiselina (npr. vea je
vjerojatnost da e hidrofilna aminokiselina mutirati u hidrofilnu, a manja da e mutirati u
hidrofobnu kiselinu).



45
BLOSUM50, BLOSUM80, BLOSUM90. Kod poravnanja blisko srodnih proteina obino
se koriste PAM1 i BLOSUM80 matrice, kod srednje udaljenih proteina PAM120 i
BLOSUM62, a za udaljene proteine: PAM250 i BLOSUM45.
U programu BLAST, relevantnost izraunatih poravnanja prikazuje se statistikom
mjerom, koja se naziva E-vrijednost (eng. E-value) i izvodi se iz rezultata poravnanja
izmeu parova sljedova. Ovdje je odreivanje E-vrijednosti izloeno prema (Pevsner,
2009). Neka je m duljina upitnog slijeda, a n duljina svih sljedova u bazi podataka.
Vjerojatnost da rezultat poravnanja S izmeu dva sluajna slijeda bude vea ili jednaka x
je:
P(S x) = 1 - exp (-Kmne
-x
) (3.1)
gdje su i K su Karlin-Altschulovi statistiki parametri (Altschul et al., 1990, 1997)
odreeni odabranim parametrima i svojstvima podataka u bazi podataka, a program ih sam
odreuje.
Bitovni rezultat poravnanja S' odreuje se iz S kao:
S' = (S ln K) / ln 2
(3.2)
Oekivanje da emo sluajnim putem pronai slijed u bazi podataka kojemu je bitovni
rezultat poravnanja s ulaznim slijedom jednak S' je:
E = mn 2
-S'
(3.3)
Odnosno, vjerojatnost p da je dobiveni rezultat poravnanja S sluajan jest:
p = 1 e
-E
(3.4)
Za E 0.05, E i p su priblino jednaki. Npr. za E = 0.05, p = 0.04877058. Kao statistiki
znaajan rezultati moe se uzeti E 0.05, ali u praktinoj primjeni relevantnost E ovisi o
tome koliko su srodni sljedovi koji se usporeuju, njihovoj duljini i ukupnoj veliine baze

46
podataka. Obino, za vrlo srodne sljedove moe biti E 10
-20
, pa i E 0. Kod usporedbi
genoma mikrorganizama pokazalo se da su znaajne vrijednosti oko 10
-4
i manje (Pevsner,
2009).
3.3. BLAST - postupak pretraivanja baze podataka
Pretraivanje baze podataka koritenjem programa BLAST moe se obavljati kroz web-
suelje
3
ili koritenjem zasebne aplikacije. Radi jednostavnosti, korake u postupku
pretraivanja pokazat emo koritenjem mrenog suelja programa BLAST na stranicama
NCBI-a:
1. Odabrati jedan od BLAST programa, ovisno o tome sastoji li se upitni slijed od
nukleotida ili aminokiselina i s kojim tipom sljedova (proteinskim ili nukleotidnim
sljedovima) se eli usporeivati upitni slijed. Ponueni su sljedei programi: blastn i
njegova nadgradnja (megablast), blastp i njegove nadgradnje (psi-blast), blastx, tblastx,
tblastn (Tablica 3.1).
2. Tablica 3.1 Temeljni BLAST programi
Program Upitni slijed Baza podataka sljedova
blastp Protein Protein
blastn DNA DNA
blastx
4
DNA (6 moguih itanja) Protein
tblastn
5
Protein DNA (6 moguih itanja)
tblastx
6
DNA (6 moguih itanja) DNA (6 moguih itanja)



3
blast.ncbi.nlm.nih.gov

4
blastx nukleotidni upitni slijed je dinamiki translatiran prema 6 okvira itanja u 6 proteinskih sljedova i
onda se svaki od tih sljedova usporeuje s bazom podataka proteina
5
tblastn - DNA baza podataka je translatirana po 6 okvira itanja i onda se svaki od dobivenih proteinskih
sljedova usporeuje s ulaznim proteinom
6
tblastx 36 moguih proteinsko-proteinskih kombinacija

47
3. Odabrati upitni slijed (eng. query) zadavanjem jednog od identifikacijskih brojeva (gi
identifikator ili accession number identifikator) ili unosom slijeda u formatu fasta.
4. Odabrati bazu podataka za pretraivanje, npr. nonredundant database (nr).
5. Odabrati postavke pretraivanja baze podataka (eng. algorithm parameters) i pritisnuti
gumb BLAST.
6. Pregled prikazanih rezultata: rezultat je lista nukleotidnih sljedova koji su najbolje
rangirani prema parametrima vezanim uz bodovanje poravnanja izmeu ulaznog i
rezultantnog slijeda (Max score, Total score, Query cover, Ident) te statistikom
znaaju rezultantnog poravnanja (E-value)



48
3.4. Literatura
Altschul,S.F. et al. (1990) Basic local alignment search tool. J. Mol. Biol., 215, 403410.
Altschul,S.F. et al. (1997) Gapped BLAST and PSI-BLAST: a new generation of protein
database search programs. Nucleic Acids Res., 25, 33893402.
Benson,D.A. et al. (2013) GenBank. Nucleic Acids Res., 42, D32D37.
Dayhoff,M.O. et al. (1978) A Model of Evolutionary Change in Proteins. Atlas Protein
Seq. Struct., 5, 345352.
Gregory,T.R. (2014) Animal Genome Size Database. http://www.genomesize.com.
Henikoff,S. & Henikoff,J.G. (1992) Amino acid substitution matrices from protein blocks.
Proc. Natl. Acad. Sci., 89, 1091510919.
Lipman,D. & Pearson,W. (1985) Rapid and sensitive protein similarity searches. Science,
227, 14351441.
Pevsner,J. (2009) Bioinformatics and functional genomics 2nd ed. Wiley-Blackwell,
Hoboken, N.J.
Smith,T.F. & Waterman,M.S. (1981) Identification of common molecular subsequences. J.
Mol. Biol., 147, 195197.
Zhang,Z. et al. (2000) A greedy algorithm for aligning DNA sequences. J. Comput. Biol. J.
Comput. Mol. Cell Biol., 7, 203214.
Zhang,Z. et al. (1998) Protein sequence similarity searches using patterns as seeds. Nucleic
Acids Res., 26, 39863990.




49
4. Sufiksno stablo i sufiksno polje
Usporedba biolokih sljedova obino se temelji na poravnanju cijelih sljedova ili njihovih
identinih ili slinih dijelova. Slinost moe upuivati na to da sljedovi potjeu od
zajednikog pretka, odnosno da su sljedovi homologni, a slinost je onda posljedica
homologije. Kod blisko srodnih sljedova, mogua je slinost po njihovoj cijeloj duini i
onda je sljedove mogue globalno poravnati. Kod udaljenijih sljedova mogua je slinost
izmeu pojedinih podruja koja su ostala sauvana kroz evolucijsku povijest i onda takve
sljedove moemo lokalno poravnati. Problem optimalnog globalnog i lokalnog poravnanja
parova sljedova dinamikim programiranjem opisano je u poglavlju 2.
Kao alternativa dinamikom programiranju, koje je sporo za dugake nizove, u praksi se
koriste brze heuristike metode. Njihova je ideja sljedea: pronalaze se podruja, tj. krai
podnizovi, koji su zajedniki promatranim sljedovima. Takve krae podnizove, ako su
meusobno dovoljno blizu, pokuava se onda spojiti, tako da se podruja izmeu
podnizova lokalno poravnaju dinamikim programiranjem. U ovom poglavlju bit e
prikazane podatkovne strukture koje omoguuju brzo pronalaenje identinih ili slinih
podnizova, koji se onda mogu koristiti kao zaetci (eng. seed) lokalnih ili globalnih
poravnanja.
Problem pronalaska identinih ili slinih podnizova u promatranim sljedovima odgovara
standardnom problemu pronalaska uzorka u tekstu (eng. pattern matching). Ako je s P
oznaen uzorak (tj. krai podniz, eng. pattern), a s T tekst (tj. dulji niz; eng. text), gdje je
obino |T| >> |P|, tada je na problem pronai svih z pojavljivanja P u T. Naivno rjeenje
ovog problema moe se pronai u O(|P| |T|) vremenu, to je, naravno, neprihvatljivo za
dulje nizove (npr. ako je T genom bakterije, onda je rije o duljini |T| od 10
6
-10
7
bp, a za
sloenije organizme duljina |T| je i nekoliko redova veliine vea).
Algoritamska rjeenja problema pronalaska uzorka u tekstu moemo podijeliti u dvije
skupine:
1. Rjeenja u kojima se prvo indeksira podniz P, a onda se indeks izgraen nad P koristi
za pretraivanje teksta T.
2. Rjeenja u kojima se prvo indeksira teksta T, gdje se onda indeks izgraen nad T
koristi za pretraivanje P.

50
U prvom pristupu, izgradnja indeksa nad podnizom P je brza (u vremenu O(|P|)), a sam
indeks zauzima vrlo malo mjesta. Meutim, pretraivanje teksta T koritenjem takvog
indeksa obavlja se u najgorem sluaju u vremenu O(|T|) (iako za prosjene sluajeve moe
biti i bolje vrijeme). To je neprihvatljivo za dugake tekstove T, posebno kada se
pretraivanjem T eli pronai vie razliitih podnizova. Klasini algoritmi koji koriste ovaj
pristup su Knuth-Morris-Prattov algoritam (Knuth et al., 1977) i Boyer-Mooreov algoritam
(Boyer & Moore, 1977).
U bioinformatici je promatrani tekst T vrlo dugaak i najee se eli pretraivati s puno
razliitih podnizova. Zato se najee koristi drugi pristup u kojem se tekst T indeksira.
Traenje podniza P u T se obavlja koritenjem izgraenog indeksa, to se moe postii u
vremenu O(|P|). U ovom e poglavlju biti prikazani algoritmi i podatkovne strukture koje
se koriste za indeksiranje dugakih T: sufiksno stablo i sufiksno polje.
4.1. Sufiksno stablo
Sufiksno stablo (eng. suffix tree) je indeksna podatkovna struktura namijenjena
uinkovitom obavljanju razliitih operacije nad znakovnim nizovima i esto se koristi u
bioinformatici (Gusfield, 1997). Kao varijanta sufiksnog stabla, esto se koristi i sufiksno
polje (eng. suffix array), a u istu svrhu sve se vie koriste i saete (komprimirane) inaice,
tzv. samostojni indeksi (eng. self-indexes).
Sufiksno stablo na elegantan nain rjeava problem pretraivanja podniza u nizu. Naime,
traenje nekog podniza u nizu odgovara traenju nekog pojma u knjizi. Ako knjiga sadri
indeks pojmova, vrlo je jednostavno pronai traeni pojam u knjizi: umjesto da se
pretrauje cijela knjiga, pojam se trai pretraivanjem indeksa. Pretraivanje je dodatno
ubrzano, s obzirom da su pojmovi abecedno poredani. Ako je pojam zabiljeen u indeksu,
onda je uz pojam navedena i stranica gdje se pojam spominje u knjizi, pa se pronalaskom
pojma u indeksu, jednostavno dolazi i do mjesta gdje se pojam spominje u knjizi.
Analogno indeksu u knjizi, indeksna struktura sufiksno stablo omoguuje brz pronalazak
podniza u promatranom tekstu, preciznije, podniz je mogue pronai u vremenu
proporcionalnom duljini podniza. Takoer, koritenjem sufiksnog stabla mogue je rijeiti
i mnotvo drugih sloenih operacija nad znakovnim nizovima. Klasian je primjer
pronalazak najduljeg zajednikog podniza dvaju nizova u vremenu proporcionalnom
zbroju njihovih duljina (Gusfield, 1997).

51
Sufiksno stablo moe biti izgraeno u vremenu linearno ovisnom o duljini ulaznog niza.
Prvi algoritam koji je to omoguio bio je Weinerov algoritam (1973), a zatim i
McCreightov algoritam (1976). Dananji je standard Ukkonenov algoritam iz 1995. godine
(Ukkonen, 1995) i njegove e osnovne postavke biti izloene u potpoglavlju 4.1.6. To je
bio prvi on-line algoritam za izgradnju sufiksnog stabla: umjesto da se sufiksno stablo
gradi odjednom iz cijelog ulaznog niza (pri emu cijeli ulazni niz mora biti poznat na
samom poetku izgradnje), sufiksno stablo se proiruje za svaki znak u nizu.
4.1.1. Osnovni pojmovi
Neka je S niz znakova duljine n, tj. |S| = n, gdje su znakovi niza S elementi abecede .
Neka oznaava broj znakova abecede, tj. || = . Znak na i-tom mjestu u nizu S e biti
oznaen s S[i] ili krae S
i
, gdje 1 i n.
Uvodimo i sljedee oznake:
podniz niza S je S[i, j] = S
i
S
i+1
S
j
, 1 i j n
prefiks niza S je podniz S[1, j], 1 j n
sufiks niza S je podniz S[i, n] (krae, s
i
), 1 i n
4.1.2. Podatkovna struktura sufiksno stablo
Neka je zadan niz S duljine n, gdje su znakovi niza iz abecede . Sufiksno stablo (eng.
suffix tree) izgraeno nad S je ukorijenjeno stablo T (eng. rooted tree) koji sadri sve
sufiksa niza S$; $ poseban znak koji se dodaje na kraj niza S i ne postoji u abecedi (Sl.
4.1). U sljedeim primjerima pretpostavit emo da je znak $ abecedno manji od svakog
znaka iz .
Listovi stabla T oznaeni su brojevima 1 do n, a odgovaraju poetnim mjestima sufiksa u
nizu S. Iz korijena sufiksnog stabla izlazi tono onoliko grana (ili bridova; eng. branch;
edge) koliko je znakova abecede te jo jedna grana za znak $. Svaki unutarnji vor (eng.
inner node; branch node) ima dvoje ili vie vorova-djece.
Oznaka grane (eng. label) moe sadravati jedan ili vie znakova koji odgovaraju nekom
podnizu niza S. Oznake grana koje izlaze iz istog vora moraju zapoinjati s razliitim
znakovima.
Znakovna dubina (eng. string depth) nekog vora je zbroj duljina svih oznaka grana na
putu od korijena do tog vora.

52
Primjer:
Zadan je ulazni niz S = ACCA. Na Sl. 4.1Error! Reference source not found. prikazano
je sufiksno stablo za niz S$ = ACCA$. Znak $ je dodan na kraj niza S, ime je svaki sufiks
S[i, n], 1 i 5 i n = 5, jednoznano odreen pripadajuim listom i. Kada $ ne bi bio
dodan na kraj niza S, onda bi sufiks, koji je prefiks nekog drugog sufiksa, zavravao u
unutarnjem voru stabla (eng. inner node; branch node), a ne u listu stabla (eng. leaf;
terminal node).

Sl. 4.1 Sufiksno stablo za niz S$ = ACCA$. Na kraj niza S dodaje se znak $ (znak koji ne postoji
nigdje u S), ime je osigurano da svaki sufiks niza S zavrava u listu stabla. Sufiksne veze su
prikazane crvenim crtkanim strelicama.
Sufiksi sadrani u prikazanom sufiksnom stablu su:
s
1
= S[1, n + 1] = S[1, 5] = ACCA$
s
2
= S[2, n + 1] = S[2, 5] = CCA$
s
3
= S[3, n + 1] = S[3, 5] = CA$
s
4
= S[4, n + 1] = S[4, 5] = A$
s
5
= S[n + 1, n + 1] = S[5, 5] = $
Na primjer, moemo za sufiks s
2
= CCA$ provjeriti postoji li odgovarajui list u stablu.
Provjeru obavljamo tako da slijedimo put od korijena (vor v) prema listovima stabla (Sl.
4.1). Kreemo od korijena i usporeujemo prvi znak sufiksa s
2
(C) sa svim prvim
znakovima na oznakama grana koje kreu od korijena prema vorovima-djeci v
1
i v
2
(iz
korijena kreu tri grane ije su oznake: "$", "A" i "C"). Krajnje desna grana na Sl. 4.1
oznaena je s "C", pa put nastavljamo tom granom do vora v
2
. Iz v
2
vode dvije grane:
lijeva grana oznaena je s "A$", a desna s "CA$". Usporeujemo drugi znak iz s
2
(C) s
prvim znakom u granama koje vode iz vora v
2
. S obzirom da oznaka desne grane poinje
v
v
1
v
2
1 4 3 2
A C
CCA$ $ A$ CA$
5
$
S$ = ACCA$

53
sa znakom C, nastavljamo s usporedbama znakova iz s
2
i znakova na oznaci te grane:
usporeujemo dalje trei znak iz s
2
s drugim znakom na oznaci desne grane. S obzirom da
se znakovi podudaraju, usporeujemo onda i sljedei par znakova: etvrti znak u s
2
i trei
znak oznake grane. S obzirom da se i taj par znakova podudara, nastavljamo put tom
granom. Kako vie nije ostao niti jedan znak u s
2
, a put istodobno zavrava u listu s
oznakom 2, potvrdili smo da sufiks s
2
ima pripadajui list u stablu T.
Na Sl. 4.1 prikazane su i sufiksne veze kao crvene crtkane strjelice. Meu ostalim, koriste
se kod izgradnje sufiksnog stabla u linearnom vremenu (poglavlje 4.1.6).
Sufiksnu vezu (eng. suffix link) definiramo kao pokaziva od vora x do vora s(x), uz
uvjet da je:
1. Niz znakova zp oznaka puta do x, gdje je z znak, a p podniz (p moe biti i prazan niz;
tj. p = ).
2. Niz znakova p oznaka puta do s(x).
U primjeru na Sl. 4.1 vidimo da je oznaka puta do vora v
1
"A", a oznaka puta do korijena
v je (prazan niz). Zbog toga je dodana sufiksna veza od vora v
1
do vora v (z = A, p = ).
Analogno, dodana je i sufiksna veza od vora v
2
do vora v (z = C, p = ). Naravno,
sufiksne veze se dodaju i izmeu unutarnjih vorova, to moemo vidjeti na sloenijem
primjeru (2. Primjer;
Sl. 4.2).

Primjer:Zadan je ulazni niz S$ = ACGGGC$. Za zadani ulazni niz potrebno je izgraditi
sufiksno stablo i na stablu oznaiti sve sufiksne veze. U ovom primjeru pretpostavljamo da
pretpostavljamo da je znak $ leksikografski manji od znakova iz S. Rjeenje je prikazano
prikazano na
Sl. 4.2.

54

Sl. 4.2 Sufiksno stablo za niz S$ = ACGGGC$ ($ je leksikografski manji od znakova iz S).
Sufiksne veze oznaene su crvenim crtkanim strelicama.
4.1.3. Memorijski zahtjevi
Sufiksno stablo ima iroku primjenu u bioinformatici. Mnotvo primjena opisano je
posebno poetkom 2000.-ih (npr. Kurtz et al., 2004; Bray & Pachter, 2004). No, s
vremenom je alternativna struktura podataka, sufiksno polje (poglavlje 4.2), zamijenilo
sufiksno stablo. Glavni razlog tome je to u praksi sufiksno stablo za ulazni niz od n
znakova zahtijeva najmanje 10n okteta (eng. byte) memorijskog prostora, a esto 15n - 20n
okteta (Kurtz, 1998). S druge strane, sufiksno polje zauzima teorijski zauzima (n log n)
bita, a u praksi obino 4n okteta.
4.1.4. Izgradnja sufiksnog stabla u vremenu O(n
2
)
Sufiksno stablo se moe jednostavno izgraditi u vremenu koje je kvadratno ovisno o duljini
ulaznog niza, tj. u vremenu O(n
2
) za niz duljine n. Ideja je jednostavna ("naivni"
algoritam): u stablo dodajemo sufiks po sufiks, poevi od sufiksa s
1
, zatim s
2
i tako dalje
do s
n
. Openito, u i-tom koraku dodajemo sufiks s
i
tako da za njega u sufiksno stablo
dodajemo pripadajui list (s oznakom i). Pri tome, ako je potrebno, dodajemo nove
unutarnje vorove i/ili nove grane koje vode iz postojeih ili dodanih vorova.
Dakle, kada dodajemo vor s
i
kreemo od korijena stabla i promatramo za svaki znak
sufiksa s
i
odgovara li oznakama po postojeim granama stabla sve dok ne naiemo na j-ti
znak sufiksa s
i
za koji ne postoji odgovarajue podudaranje.
1. Ako se nepodudaranje znakova dogodilo na nekom voru w, onda se od vora w uvodi
nova grana do novog lista s oznakom i. Znakovi koji e initi oznaku nove grane su
preostali znakovi sufiksa s
i
, poevi od j-tog znaka sufiksa s
i
, dakle: s
i
[j, n].
ACGGGC$
GGGC$
6
1
4
G
7
$
5
C$ G
C
2
$
3
GC$ C$

55
2. Ako se nepodudaranje dogodilo izmeu j-tog znaka sufiksa s
i
i nekog znaka unutar
oznake grane koja je povezivala postojee vorove x i y, onda se uvodi novi vor w na
grani izmeu x i y. vor w e biti povezan s vorom x postojeom granom, ali e
njezina oznaka biti skraena do znaka prije s
i
[j]. Iz vora w e sada ii dvije grane:
jedna do postojeeg vora y i njezina e oznaka sadravati preostale znakove iz stare
oznake na grani (x, y), poevi od znaka na kojem je dolo do nepodudaranja s s
i
[j].
Druga e grana biti nova grana do novog lista s oznakom i, a oznaka na toj grani e
biti niz s
i
[j, n].
Broj sufiksa, odnosno listova, koje dodajemo u sufiksno stablo jednak je duljini ulaznog
niza, tj. n. U i-tom koraku, kada dodajemo sufiks s
i
, potrebno je obaviti k usporedbi, k |s
i
|,
dok se ne pronae najdulji prefiks izmeu s
i
i sufiksa koji su ve u stablu (s
1
, s
2
, .., s
i-1
).
Takav najdulji prefiks je duljine k - 1, jer je k prvi znak na kojem se s
i
razlikuje od
prethodno dodanih sufiksa. Preostali znakovi sufiksa s
i
, tj. podniz s
i
[k, n], se onda dodaju
na oznaku nove grane koja vodi do lista oznaenog s i. Ukupno vrijeme potrebno za i-ti
korak algoritma je (i), a za dodavanje svih n sufiksa je

.
Na Sl. 4.3 je prikazana izgradnja sufiksnog stabla za niz S$ = ACCA$ u vremenu O(n
2
).

56

Sl. 4.3 Izgradnja sufiksnog stabla "naivnim" algoritmom za niz S$ = ACCA$ (pretpostavljamo da
je znak $ leksikografski manji od znakova iz S). Naivnim algoritmom stablo se gradi u kvadratnom
vremenu ovisno o duljini niza.
U prvom koraku dodaje se u prazno stablo sufiks s
1
: korijen v se spaja s listom oznaenim
"1". Oznaka grane koja vodi do lista "1" oznaena je cijelim sufiksom s
1
, tj. sa "ACCA$".
Zatim u 2. koraku dodajemo sufiks s
2
. S obzirom da oznaka jedine grane u stablu (koja
spaja korijen v i list "1") poinje s "A", u stablo je potrebno dodati novu granu ija e
oznaka poeti s "C", a ujedno e sadravati i sve ostale znakove iz sufiksa s
2
. Ta grana e
voditi od korijena v do lista oznaenog s "2".
U 3. koraku dodajemo sufiks s
3
= CA$, koji poinje s "C". Kako sada ve postoji grana ija
oznaka poinje s "C", slijedimo tu granu. Meutim, sljedei znak na oznaci te grane je "C",
to ne odgovara drugom znaku sufiksa s
3
(koji je "A"), tj. dolo je do nepodudaranja
znakova. Stoga, dodajemo novi vor na mjestu gdje je dolo do nepodudaranja, tj. iza
prvog znaka na oznaci postojee grane (iza znaka "C"). Taj vor emo oznaiti s v
2
(kako
bi notacija odgovarala Sl. 4.1). Iz vora v
2
e sada ii dvije nove grane: jedna do
postojeeg lista oznaenog s "2" (oznaka grane e biti "CA$") i jedna do novog lista,
CCA$
CCA$
1 4 3 2
A C
$ A$ CA$
v
v
2
v
1
1 4 3 2
A
C
$ A$ CA$
5
$
v
v
2
v
1
s
4
= A$ s
5
= $
1
v
ACCA$
1
v
ACCA$
2
CCA$
v
1
ACCA$
3 2
C
A$ CA$
v
2
s
1
= ACCA$
s
2
= CCA$
s
3
= CA$
1. korak
2. korak
3. korak
4. korak 5. korak

57
kojeg emo oznaiti s "3", jer je se odnosi na sufiks s
3
. Na granu do lista "3" upisujemo
oznaku grane koja e sadravati preostale znakove sufiksa s
3
, tj. podniz s
3
[2, 3] = A$.
U sljedeem koraku dodajemo sufiks s
4
, koji poinje s "A". Ponovno polazei od korijena
v, traimo postoji li grana koja poinje s "A". Pronalazimo granu koja vodi od v do lista
"1". Kako ta grana poinje s "A", ali drugi znak na oznaci grane ne odgovara drugom
znaku s
4
, trebamo uvesti novi vor, koji emo oznaiti s v
1
i iz kojeg e izlaziti dvije nove
grane. Prva nova grana e ii do postojeeg lista "1" i njezinu oznaku ine znakovi sufiksa
s
1
koji se nalaze nakon prvog znaka "A", tj. podniz "CCA$". Na drugoj novoj grani e biti
preostali znak sufiksa s
4
(podniz s
4
[2, 2] = $) i ta e grana ii do novog lista oznaenog s
"4".
Naposljetku, dodajemo sufiks s
5
, iji je jedini znak "$". Kako iz korijena v ne izlazi niti
jedna grana koja poinje s $, dodajemo novu granu (oznaka grane je "$") od v do novog
lista "5". Time smo dodali sve sufikse u sufiksno stablo, odnosno, za svaki smo sufiks
dodali pripadajui list i izgradili put do lista.
4.1.5. Implicitno sufiksno stablo
U sufiksnom stablu izgraenom za neki niz S, zbog dodavanja jedinstvenog znaka $ na kraj
niza S, svaki sufiks niza S$ u stablu ima svoj pripadajui list. Svaki se sufiks se moe
odrediti tako da se spoje svi znakovi na putu od korijena stabla prema listu.
Implicitno sufiksno stablo (eng. implicit suffix tree) je izgraeno za neki niz S bez
dodavanja posebnog znaka $ na kraj niza. Time neki sufiksi niza S ne zavravaju u listu,
nego u nekom unutarnjem voru stabla. Implicitno sufiksno stablo se koristi u
Ukkonenovom algoritmu (Ukkonen, 1995) za izgradnju sufiksnog stabla (poglavlje 4.1.6).
Neka je zadan niz S i sufiksno stablo T izgraeno nad nizom S$. Implicitno sufiksno stablo
gradimo iz sufiksnog stabla T na sljedei nain (Sl. 4.4):
1. Obriemo sve znakove za kraj niza $ s oznaka svih grana u T.
2. Sve grane koje su sada bez ijednog znaka (tj. oznake grana su prazan niz), uklanjaju se
iz stabla.
3. Svi unutarnji vorovi, koji vie nemaju 2 djeteta, uklanjaju se iz stabla.

58

Sl. 4.4 Izgradnja implicitnog sufiksnog stabla iz sufiksnog stabla za niz S$ = ACCA$
4.1.6. Ukkonenov algoritam
U ovom e poglavlju biti izloena osnovna ideja izgradnje sufiksnog stabla Ukkonenovim
algoritmom (Ukkonen, 1995). Kao to je ve spomenuto, to je tzv. on-line algoritam za
koji ulazni niz S duljine n ne treba biti poznat u trenutku kada kreemo s izgradnjom
stabla, nego se u svakom koraku gradi trenutno implicitno sufiksno stablo za onoliko
znakova koliko je poznato u tom trenutku.
Poinje se s prefiksom S[1, 1] za koji se gradi implicitno sufiksno stablo I
1
. Zatim se za
sljedei prefiks S[1, 2] gradi stablo I
2
tako da se proiri postojee stablo I
1
: u stablo I
1

dodaju se sufiksi niza S[1, 2], S[1, 2] i S[2, 2].
Openito, u k-tom koraku algoritma gradi se implicitno sufiksno stablo I
k
za prefiks S[1, k]
tako da se proiruje stablo iz prethodnog koraka, I
k-1
. Postupak se ponavlja sve do zadnjeg
prefiksa S[1, n]. Kada se izgradilo implicitno sufiksno stablo I
n
, u stablu I
n
se na kraj
svakog sufiksa dodaje jedinstveni znak za kraj niza $ kako bi dobili obino sufiksno stablo
T. Tako dobiveno stablo T onda predstavlja konano rjeenje.
Kljuni postupak u k-tom koraku algoritma je proirenje stabla I
k-1
u stablo I
k
dodavanjem
svih sufiksa niza S[1, k] u stablo I
k-1
. Prefiks S[1, k] ima k sufiksa (S[1, k], S[2, k], .., S[k,
1 4 3 2
A C
CCA$ $ A$ CA$
5
$
S$ = ACCA$
1 4 3 2
A C
CCA A
CA
5
1. Obrisati oznake za kraj niza $
CCA
1 3 2
A C
A CA
2. Ukloniti grane koje sadre
samo prazan niz
1
3
2
C
A
CA
ACCA
3. Sve unutarnje vorove, koji vie
nemaju 2 djeteta, obrisati iz stabla

59
k]) za koja je moda potrebno napraviti proirenje (eng. extension) u stablu I
k-1
ili se ne
obavlja nita. Dakle, sa svakim sufiksom S[j, k], 1 j k, postupa se prema jednom od tri
sljedea pravila (Sl. 4.5):
1. Za sufiks se produljuje postojea grana do lista.
2. Za sufiks se dodaje nove grana u stablo.
3. Ako sufiks ve postoji u stablu, ne obavlja se nita.

1. pravilo
Ako u stablu postoji put S[j, k-1] koji zavrava kao list, onda se dodaje znak S[k] na kraj
oznake grane koja vodi do tog lista. Ovo pravilo se jo zove "jednom list, uvijek list" (eng.
once a leaf, always a leaf), tj. nije mogue dodati novi vor na granu koji zavrava u listu.
Primjer (Sl. 4.5):
Sufiks S[j, k-1] = C zavrava u listu stabla u koraku I
k-1
. U k-tom koraku algoritma (u
kojem stablo I
k-1
proirujemo u stablo I
k
) dodajemo u I
k-1
sufiks S[j, k] = CA i to tako da
znak "A" dodajemo na kraj postojee oznake grane "C". Sada je nova oznaka grane "CA" i
time smo osigurali da novi sufiks S[j, k] zavri u listu stabla I
k
.

Sl. 4.5 Ukkonenov algoritam: prikaz pravila za odreivanje proirenja sufiksa

2. pravilo
Ako u stablu I
k-1
postoji put S[j, k-1] i iz njega se ne nastavlja niti jedan put koji poinje
znakom S[k], onda trebamo napraviti novu granu koja vodi do novog lista. Oznaka grane
e biti S[k, k].
Pri tome, ako S[j, k-1] zavrava unutar grane, onda treba generirati novi unutarnji vor.
Primjer (Sl. 4.5):
1. pravilo
C CA
CA C
C
A
2. pravilo

60
Niz S[j, k-1] = C zavrava u grani koja vodi prema listu stabla u koraku I
k-1
(puna oznaka te
grane je "CA"). U k-tom koraku algoritma (u kojem stablo I
k-1
proirujemo u stablo I
k
)
dodajemo u I
k-1
sufiks S[j, k] = CC. S obzirom da u stablu ne postoji put S[j, k-1]C,
dodajemo u stablo novi vor iza znaka S[j, k-1], iz kojeg e sada ii dvije nove grane: jedna
s oznakom "A", a druga s oznakom "C". Ta druga e zavriti u novom listu koji odgovara
sufiksu S[j, k] = CC.
3. pravilo
Ako u stablu I
k-1
postoje putovi koji se nastavljaju na S[j, k-1], a jedan od njih poinje
znakom S[k], onda ne treba uiniti nita, jer sufiks S[j, k] ve postoji kao put u stablu u I
k-1
,
a time i u stablu I
k
.
Pravila koja smo naveli koriste se unutar algoritma (Sl. 4.6). Ovdje emo navesti jo samo
neka opaanja u svezi s algoritmom:
1. Pravilo 1 se odnosi na implicitno proirenje oznake grane koja vodi do lista sufiksa
S[j, k] znakom S[k] tako da e sad grana voditi do lista za promatrani sufiks S[j, k].
2. Oznake grana u implementacijskom smislu nisu podnizovi oblika S[p, k], gdje p
oznaava poetni znak oznake grane, a k zadnji znak oznake grane, nego se grane
oznaavaju indeksima p i k, ime se postie memorijska uteda (eng. edge-label
compression). Vrijednost k se moe pohraniti kao globalna varijabla, koja se moe u
vremenu O(1) postaviti, odnosno, promijeniti za sve listove odjednom.
3. Ako j
k-1
oznaava posljednje proirenje u koraku (k-1), to znai da su u koraku (k-1)
kreirani listovi do ukljuivo j
k-1
. Za njih se u k-tom koraku samo dodaje novi znak na
oznake grana koje vode do listova. To se moe obaviti jednostavno u vremenu O(1)
tako da se indeks k-1 promijeni u k.
4. Pravilo 3 predstavlja zavretak k-tog koraka (eng. "show-stopper"). Zato je to tako?
Promatramo k-ti korak i dodavanje sufiksa S[j, k]: moemo uoiti da ako S[j, k] ve
postoji u stablu, onda takoer i sufiksi S[j+1, k], .., S[k, k] postoje u stablu, pa za njih
nije potrebno dalje provjeravati. Dakle, k-ti korak zavravamo kada j > k ili kada
naiemo na prvi j za koji vrijedi pravilo 3.
5. Pravilo 2 se odnosi na eksplicitno dodavanje novog vora u stablu. Neka u k-tom
koraku indeks j
k-1
iz prethodnog (tj. k-1) koraka oznaava posljednji list koji je
generiran u koraku (k-1). Kandidati za eksplicitno proirenje u k-tom koraku su sufiksi
koji poinju s pozicijom j j
k-1
+1, odnosno k-ti korak se zaustavlja kada j > k ili se na
j-ti sufiks primijeni pravilo 3. S obzirom da Ukkonenov algoritam ukupno ima n

61
koraka, j je ogranien s n kroz sve korake, pa se zato kroz cijeli algoritam obavlja
najvie n eksplicitnih proirenja.
6. Koritenje sufiksnih veza kod dodavanja proirenja. Promatramo eksplicitno proirenje
u k-tom koraku: naemo kraj puta ija je oznaka S[1, k-1] u stablu i onda ga
proirujemo za znak S[k]. Za drugo proirenje u k-tom koraku, umjesto da kreemo od
korijena traiti podniz S[2, k], traimo vor v ispod kojeg zavrava put oznaen s S[1,
k] (jedino ako nema v, onda kreemo od korijena). Kada smo pronali v, onda slijedimo
sufiksnu vezu (v, s(v)), gdje je s(v) vor ispod kojeg zavrava S[2, k-1]. Traenje kraja
puta S[2, k-1] nastavljamo od s(v) i onda dodajemo znak S[k] iza S[2, k-1]ime smo
preskoili znakove na putu od korijena do s(v).
Ovi postupci zajedno osiguravaju izvoenje Ukkonenovog algoritma u vremenu O(n) za
niz duljine n.
Ukkonenov algoritam
Ulaz: niz S, |S| = n
Izlaz: sufiksno stablo izgraeno nad nizom S
Izgradi I
1


j
1
:= 1
za k = 2 do n radi /* u stablu e biti ukupno n eksplicitnih proirenja za n listova */
poetak /* k-ti korak */
Dodaj implicitna proirenja. /* primijeni pravilo 1 za j j
k-1

*/
za j = j
k-1
+1 do k radi /* pravilo 2 ili 3 */
poetak /* j-to proirenje */
U trenutnom stablu pronai kraj puta koji poinje u korijenu, a oznaen je s S[j, k-1].
Ako je potrebno, dodaj na kraj puta znak S[k] (osiguravamo da S[j, k] bude u stablu).
j
k
:= j /* priprema za sljedei korak */
ako je primijenjeno pravilo 3
onda j
k
:= j 1 i zavri k-ti korak
kraj
kraj
Sl. 4.6 Ukkonenov algoritam za izgradnju sufiksnog stabla za niz S

62
4.1.7. Poopeno sufiksno stablo
Mnogi problemi vezani uz znakovne nizove, kao npr. traenje najduljeg zajednikog
podniza dvaju (ili vie) nizova zahtijevaju izgradnju sufiksnog stabla za dva (ili vie)
nizova. Sufiksno stablo koje je izgraeno nad skupom ulaznih nizova {S
1
, .., S
k
} zove se
poopeno sufiksno stablo (eng. generalized suffix tree).
Poopeno sufiksno stablo T gradi se nad konkatenacijom nizova S
1
$
1
... S
k
$
k
, gdje svaki niz
S
i
zavrava jedinstvenim znakom za kraj niza $
i
, $
i
$
j
. Stablo T sadri sve sufikse nizova
nad kojim je izgraeno. Izgradnja poopenog sufiksnog stabla se obavlja u vremenu O(|S
1
|
+ .. + |S
k
|).
4.2. Sufiksno polje
Manber i Myers su 1990. (Manber & Myers, 1990) predloili novu strukturu podataka kao
memorijski manje zahtjevnu alternativu sufiksnom stablu: sufiksno polje (eng. suffix
array). Sufiksno polje je polje ne-negativnih cijelih brojeva, koji predstavljaju poetne
pozicije abecedno poredanih sufiksa ulaznog niza.
Primjer:
Neka je zadan ulazni niz S = ACCA. Analogno, postupku izgradnje sufiksnog stabla, na
kraj niza S dodajemo jedinstveni znak $, koji se ne nalazi u abecedi nad kojom je S
izgraen. Pretpostavljamo da je $ abecedno manji od znakova iz .
Sufiksi niza S$ su: s
1
= ACCA$, s
2
= CCA$, s
3
= CA$, s
4
= A$, s
5
= $.
Abecedno poredani sufiksi su:
s
5
= $
s
1
= ACCA$
s
4
= A$
s
3
= CA$
s
2
= CCA$
Dakle, sufiksno polje SA sadri poetne pozicije abecedno poredanih sufiksa: SA = [5, 1,
4, 3, 2].

63
Sufiksno polje moe zamijeniti sufiksno stablo, odnosno, svaki problem koji se moe
rijeiti koritenjem sufiksnih stabala, moe se rijeiti i koritenjem sufiksnog polja s istom
asimptotskom sloenou (Abouelhoda et al., 2004; Puglisi et al., 2006)
Mnotvo je algoritama koji omoguuju konstrukciju sufiksnog polja (eng. Suffix Array
Construction Algorithm; SACA). Originalni algoritam, koji su osmislili Manber i Myers
(1990), omoguavao je izgradnju sufiksnog polja u vremenu O(nlogn) za ulazni niz od n
znakova. Danas postoje algoritmi koji sufiksno polje mogu konstruirati u linearnom
vremenu (Krkkinen & Sanders, 2003; Ko & Aluru, 2003; Ge Nong et al., 2011).
Takoer postoje i algoritmi koji imaju supralinearno vrijeme izvoenja za najgori sluaj,
ali u praksi mogu biti podjednako brzi kao najbolji algoritmi s linearnim vremenom
konstrukcije, a u nekim sluajevima mogu i biti bri od njih (Puglisi et al., 2006; Ge Nong
et al., 2011).
Kao to je ve spomenuto, teorijsko memorijsko zauzee sufiksnog polja je (n log n) bita,
dok je to u praksi obino 4n okteta. Najbolji algoritmi za izgradnju sufiksnog polja
zahtijevaju ukupno tek neto vie od 5n okteta memorijskog prostora za ulazni niz duljine
n: od toga ulazni niz i sufiksno polje zauzimaju zajedno 5n okteta, a ostatak je za pomone
strukture (Ge Nong et al., 2011).
4.2.1. Sufiksno polje i sufiksno stablo
Neka je zadan niz S duljine n. Sufiksno polje SA moe se izravno dobiti iz sufiksnog stabla
preorder obilaskom stabla (Sl. 4.7). Svaki list stabla nosi oznaku pripadajueg sufiksa.
Primjer: prvi list slijeva je list s oznakom "5", to znai da je abecedno najmanji sufiks s
5
,
odnosno da je SA[1] = 5. Sljedei list na koji nailazimo obilaskom stabla je list s oznakom
"4", to znai da je sljedei po abecednom redu sufiks s
4
, tj. SA[2] = 4, itd.

64

Sl. 4.7 Sufiksno stablo i sufiksno polje (polje SA) za niz S$ = ACCA$. lan polja SA[i] odgovara
listu u sufiksnom stablu s oznakom i.
4.2.2. Izgradnja sufiksnog polja u linearnom vremenu
Krkkinen-Sandersovim algoritmom
Osnovna ideja postojeih algoritama za konstrukciju sufiksnog polja u linearnom vremenu
je podjela ulaznog niza u dva dijela prema nekom pravilu, npr. u nizove S' i S''. Jedan niz,
npr. S', se onda rekurzivno sortira (tj. odredi se SA(S')), a onda se drugi niz sortira
koritenjem prvog (tj. odredi se SA(S'')). Na kraju se odredi spojeno sufiksno polje SA(S)
koritenjem SA(S') i SA(S'').
Ista ideja koristi se i kod Krkkinen-Sandersovog algoritma (Krkkinen & Sanders,
2003): iz ulaznog niza S, tvore se nizovi S' i S''. Zatim se odreuje SA(S'), a na temelju
SA(S') generira se SA(S''), a zatim i SA(S) u linearnom vremenu. Niz S' je sastavljen od
trojki (podnizova iz S) tako da je |S'| < 2|S|/3. Ukupno vrijeme izvoenja algoritma je (n)
za niz S duljine n.
Algoritam:
1. Iz niza S duljine n oblikovati nizove S' i S''.
2. Sortirati S', to ujedno znai rekurzivno sortirati 2n/3 sufiksa niza S koji poinju na
poziciji i mod 3 0.
3. Sortirati S''; to ujedno znai sortirati preostale sufikse (n/3 sufiksa) koji poinju na
poziciji i mod 3 = 0 koristei rezultat koraka (1).
4. Napraviti spajanje (eng. merge) sortiranih sufiksa i sufiksnih polja dobivenih u
koracima (1) i (2).
4 1 3 2
A C
$ CCA$
A$ CA$
5
$
S$ = ACCA$
i s
i
SA[i]
5 $ 5
1 A$ 4
2 ACCA$ 1
3 CA$ 3
4 CCA$ 2

65
Niz S', koji se jo naziva 1,2-niz, tvori se na sljedei nain: svaki znak S'[i] ine tri
uzastopna znaka iz S, tj. podniz S[i, i+2], gdje je i mod 3 0 (ili i = 1, 2).
Primjer:
Neka je zadan S = mississippi$$ (na kraj niza su dodana 2 znaka $, kako bi zadnji indeks
znaka u S bio viekratnik od 3).
Prvo se iz niza S tvori niz T, gdje je T konkatenacija podnizova S[i, i+2], i mod 3 0.
Ovdje: T = ississippi$$ssissippi (Sl. 4.8). S' se tvori iz T tako da se svaki podniz T[3i-2, 3i]
zamijeni jedinstvenim leksikografskim imenom S'[i] uz uvjet: S'[i] S'[j], ako i samo ako
T[i, i+2] T[j, j+2]. Na primjer, T[0, 2] = iss zamjenjujemo znakom "C" (Sl. 4.8 B)).

Sl. 4.8 Krkkinen-Sandersov algoritam: 1. korak. A) Tvorba niza T = ississippi$$ssissippi iz niza
S = mississippi$$. Niz T ine podnizovi duljine 3 iz S, tj. konkatenirani podnizovi oblika S[i, i+2], i
mod 3 = 1 i i mod 3 = 2). B) Svaki jedinstveni podniz T[3i-2, 3i] zamjenjuje se jednim
jedinstvenim znakom (leksikografskim imenom) S'[i].
Ovakvim se postupkom povezuje svaka trojka iz T sa svojim rangom: leksikografsko ime
iz S' odgovara rangu pripadajue trojke iz T. Ako su leksikografska imena u S' jedinstvena,
tj. niti jedno ime se ne ponavlja, tada je T, pa onda i pripadajui sufiksi iz S, automatski
sortirani. Ako leksikografska imena u S' nisu jedinstvena, onda se poredak sufiksa iz S'
dalje odreuje rekurzivno. Poredak leksikografskih imena u S' odreuje se radix-
sortiranjem.
Vano je primijetiti da sortirani sufiksi od S' imaju isti poredak kao i sufiksi od T, odnosno
temeljem SA(S') odreuje se SA(T). Ovime zavrava 2. korak algoritma.
0 1 2 3 4 5 6 7 8 9 10 11 12
m i s s i s s i p p i $ $
i mod 3 = 0
i mod 3 = 1
i mod 3 = 2
2 5 8 1 3 6 9
iss iss ipp i$$ ssi ssi ppi
C C B A E E D
A)
B)

66
U 3. koraku algoritma redoslijed sufiksa S'' odreuje se koritenjem prethodno sortiranih
sufiksa niza S'. Prvo se iz niza S oblikuje niz T'' koji ine trojke S[i, i+2], i mod 3 = 0.
Ovdje: T'' = mispi$sipsis. Za sortirani T'' dovoljno je koristiti sortirane sufikse T', odnosno
prema T' znamo: s
i
i s
j
iz S'' se sortiraju prema S[i]s
i+1
u odnosu na S[j]s
j+1
, gdje s
i+1
i s
j+1

znamo iz sortiranog S'.
U 4. koraku spajamo sortirana polja S' i S'': usporedba 2 sufiksa obavlja se u vremenu O(1)
kako bi se spajanje cijelih polja obavilo u vremenu O(n). Koristimo sljedea pravila:
1. Sufiksi s
i
(i mod 3 = 0) i s
j
(j mod 3 = 1) usporeuju se tako da se usporede podnizovi
S[i, i+2] i S[j, j+2]. Ako je S[i] S[j], onda je leksikografski s
i
ispred s
j
. Ako S[i] =
S[j], onda se uzima redoslijed sufiksa s
i+1
i s
j+1
, koji se preuzimaju iz sortiranog polja
S'.
2. Sufiksi s
i
(i mod 3 = 2) i s
j
(j mod 3 = 0) se usporeuju tako da se usporede njihova
prva 2 znaka. Analogno prethodnom sluaju, ako su prva 2 znaka ista za oba sufiksa,
onda se usporeuju sortirani rangovi s
i+2
i s
j+2
, koji se preuzimaju iz sortiranog polja
S'.


67
4.3. Literatura
Abouelhoda,M.I. et al. (2004) Replacing suffix trees with enhanced suffix arrays. J.
Discrete Algorithms, 2, 5386.
Boyer,R.S. and Moore,J.S. (1977) A fast string searching algorithm. Commun. ACM, 20,
762772.
Bray,N. and Pachter,L. (2004) MAVID: Constrained Ancestral Alignment of Multiple
Sequences. Genome Res., 14, 693699.
Ge Nong et al. (2011) Two Efficient Algorithms for Linear Time Suffix Array
Construction. IEEE Trans. Comput., 60, 14711484.
Gusfield,D. (1997) Algorithms on strings, trees, and sequences: computer science and
computational biology Cambridge University Press, Cambridge [England]; New
York.
Krkkinen,J. & Sanders,P. (2003) Simple Linear Work Suffix Array Construction. In,
Baeten,J.C.M. et al. (eds), Automata, Languages and Programming. Springer
Berlin Heidelberg, Berlin, Heidelberg, pp. 943955.
Knuth,D.E. et al. (1977) Fast Pattern Matching in Strings. SIAM J. Comput., 6, 323350.
Ko,P. & Aluru,S. (2003) Space efficient linear time construction of suffix arrays. In,
Journal of Discrete Algorithms. Springer, pp. 200210.
Kurtz,S. (1998) Reducing the Space Requirement of Suffix Trees. Softw. Pract. Exp., 29,
11491171.
Kurtz,S. et al. (2004) Versatile and open software for comparing large genomes. Genome
Biol., 5, R12.
Manber,U. & Myers,G. (1990) Suffix Arrays: A New Method for On-line String Searches.
In, Proceedings of the First Annual ACM-SIAM Symposium on Discrete
Algorithms, SODA 90. Society for Industrial and Applied Mathematics,
Philadelphia, PA, USA, pp. 319327.
McCreight,E.M. (1976) A Space-Economical Suffix Tree Construction Algorithm. J.
ACM, 23, 262272.
Puglisi,S.J. et al. (2006) Suffix Arrays: What Are They Good for? In, Proceedings of the
17th Australasian Database Conference - Volume 49, ADC 06. Australian
Computer Society, Inc., Darlinghurst, Australia, Australia, pp. 1718.
Ukkonen,E. (1995) On-line construction of suffix trees. Algorithmica, 14, 249260.
Weiner,P. (1973) Linear pattern matching algorithms. IEEE, pp. 111.






68
5. Poravnavanje dva ili vie sljedova odjednom
5.1. Heuristiki pristup poravnavanju para sljedova
U poglavlju 3 prikazano je poravnavanje ulaznog slijeda s bazom podataka sljedova te je
objanjen princip rada programa BLAST, kao najee koritenog alata. Takvo
poravnavanje je lokalnog tipa: pokuavaju se poravnati pojedini dijelovi ulaznog slijeda s
pojedinim dijelovima sljedova iz baze podataka. Takav se pristup tipino koristi kada za
novi gen ili protein elimo vidjeti postoje li njegovi homolozi u bazi podataka. Meutim,
program BLAST nije uinkovit kada elimo usporediti cijele genome. Zato se koriste
posebni programi koji koriste heuristiki pristup globalnom poravnanju para sljedova (eng.
pairwise sequence alignment). Neki od alata koji se koriste u tu svrhu su: MegaBLAST
(Zhang et al., 2000) i MUMmer (Kurtz et al., 2004), koji se koriste za usporedbe srodnih
dugakih sljedova, npr. za usporedbe kromosoma i genoma eukariotskih organizama.
Ovdje emo prikazati heuristiki pristup poravnanju koji se koristi kod MUMmer-a.
5.1.1. MUMmer
Osnovna ideja koja se koristi kod MUMmer-a je pronai dugake podnizove nukleotida (ili
aminokiselina) koji su zajedniki nizovima koje usporeujemo, a zatim ih pokuati proiriti
koritenjem dinamikog poravnanja (Kurtz et al., 2004).
Dugaki podniz koji je zajedniki usporeivanim ulaznim sljedovima naziva se MUM
(eng. Maximal Unique Match) i to je najdulji jedinstveni podnizovi koji predstavlja
podudaranje 2 ulazna niza. Ovdje se "najdulji jedinstveni podniz" ne odnosi na cijele
duine ulaznih nizova, nego na najdulji podniz unutar jednog podruja, gdje se takav
podniz ne moe proiriti niti u lijevo niti u desno da bi se dobio dulji jedinstveni podniz.
MUM-ovi se onda koriste kao ishodine toke (eng. anchor) oko kojih se onda pokua
napraviti dulje lokalno poravnanje (Sl. 5.1).
MUMmer algoritam
1. Odrediti MUM-ove za dva ulazna niza (npr. genoma) S
1
i S
2
. Prvo se nad nizovima S
1
i
S
2
izgradi poopeno sufiksno stablo T. Zatim se obilaskom stabla T odreuju MUM-
ovi: pronalaze se unutarnji vorovi v
1
, v
2
, ... od kojih svaki ima tono 2 djeteta-lista

69
koja pripadaju ulaznim nizovima S
1
i S
2
. Svaki vor v
i
odnosi se na jedan MUM, jer je
podniz koji vodi od korijena stabla T do vora v
i
jedinstven za nizove S
1
i S
2

promatrajui cijelo stablo (v
i
ima tono 2 djeteta, od kojih je jedno dijete list koji se
odnosi na sufiks S
1
, a drugo dijete je list koji se odnosi na sufiks S
2
). Takav podniz je
najdulji u smislu da nema duljeg zajednikog prefiksa sufiksa koji zavravaju u
listovima vora v
i
.
2. Odabrati MUM-ove koji e biti koriteni za poravnanje. Odabiru se oni MUM-ovi koji
se nadovezuju jedan na drugog (eng. Longest Increasing Subsequences).
3. Podruja izmeu MUM-ova koji se nadovezuju jedan na drugog poravnavaju se
koritenjem Smith-Watermanovog algoritma (Smith & Waterman, 1981).

Sl. 5.1 Prikaz osnovne ideje programa MUMmer za poravnanje para sljedova S
1
i S
2
. Prvo se
pronalaze MUM-ovi, a zatim se odabiru MUM-ovi koji e se koristiti u poravnanju (ovdje oznaeni
brojevima 1, 3, 4, 5, 6). Naposljetku, MUM-ovi 1, 3, 4, 5 i 6 pokuavaju se povezati tako da se
podruja izmeu njih lokalno poravnaju.
5.2. Poravnavanje vie sljedova odjednom
Poravnavanje vie sljedova odjednom (eng. multiple sequence alignment; MSA) ima
smisla kada su sljedovi ili neki njihovi dijelovi homologni. Potrebno je naglasiti da se
ovdje polazi od pretpostavke da su sljedovi koje elimo poravnati homologni, za razliku od
usporedbe ulaznog slijeda s bazom podataka, gdje se homologija izmeu ulaznog slijeda i
sljedova u bazi podataka tek odreuje.
1 2 3 4 5 6
1 3 2 4 5 6
1 3 4 5 6
1 3 4 5 6
MUM-ovi ovi koji e se koristiti u poravnanju: 1, 3, 4, 5, 6
Poravnanje izmeu MUM-ova
S
1
S
2
S
1
S
2

70
Ako su sljedovi homologni cijelom svojom duinom i podjednake duljine, govorimo o
globalnom poravnanju vie sljedova odjednom (npr. poravanje kromosoma ovjeka i
impanze; poravnavanje genoma vie sojeva neke bakterije, itd.) Ako sljedovi nisu
homologni cijelom svojom duinom, onda se mogu poravnati po dijelovima koji su ostali
sauvani (eng. conserved regions) i tada govorimo o lokalnom poravnanju (npr.
poravnanje homolognih proteina izmeu razliitih vrsta).
Ideja poravnanja tri ili vie sljedova odjednom je smjetanje homolognih mjesta u
promatranim sljedovima u iste stupce. Formalno to moe izrei na sljedei nain: Neka je
zadan skup od n sljedova: S
1
, , S
n
nad istom abecedom (znakovi abecede mogu biti
nukleotidi ili aminokiseline). Poravnanje vie sljedova odjednom je skup sljedova S
1
', ,
S
n
', gdje vrijedi:
1. Duljine poravnatih sljedova su jednake, tj. |S
1
'| = = | S
n
'|.
2. Uklanjanjem procijepa (praznina; eng. gap) iz S
i
' dobiva se S
i
za i = 1, .., n.
Poravnanje ulaznih sljedova predstavljamo kao matricu od n redaka i m stupaca, gdje je n
broj sljedova, a m duljina svakog slijeda nakon poravnanja, tj. m = |S
i
'| | S
i
| za svaki i = 1,
.., n. Duljine poravnatih sljedova mogu biti dulje od originalnih sljedova, ako su u
originalne sljedove dodani procijepi. Procijepi ili praznine se dodaju ako slijed S
i
u
odreenom stupcu (homolognom mjestu) nema odgovarajui znak (nukleotid ili
aminokiselinu). To moe biti posljedica npr. brisanja (eng. deletion) tog znaka u slijedu S
i
,
dok je u drugim sljedovima taj znak ostao zadran ili umetanje (eng. insertion) tog znaka
na i-to mjesto u ostalim sljedovima, dok u S
i
nije dolo do umetanja tog znaka.
5.2.1. Metoda sume parova
S obzirom na mnotvo kombinacija moguih poravnanja, konano rjeenje, odnosno
najbolje od svih moguih poravnanja odreuje se prema unaprijed zadanoj mjeri. Mjeru
moemo definirati na sljedei nain: neka je poravnanje predstavljeno kao matrica A
dimenzija n x m. Elementi matrice su oblika A
i,j
, gdje i predstavlja indeks slijeda, a j indeks
stupca u matrici poravnanja.
Neka je s(A
k,j
, A
l
,
j
) je rezultat poravnanja (eng. score):
1. para nukleotida A
k,j
i A
l
,
j
prema zadanom bodovanju za par nukleotida
(podudaranje/nepodudaranje) ili bodovanju para nukleotid-procijep, ili

71
2. para aminokiselina A
k,j
i A
l
,
j
prema zadanoj supstitucijskoj matrici (PAM ili
BLOSUM) ili bodovanju para aminokiselina-praznina
Metoda sume parova (eng. Sum-of-Pairs Scoring Method) boduje cijelo poravnanje
n sljedova tako da se prvo odrede rezultati bodovanja za svaki A
j
stupac matrice, SP(A
j
)
(5.1):
SP(A
j
) =

(5.1)
Ukupan rezultat bodovanja cijelog poravnanja je SP(A) (3.1):
SP(A) =

(5.2)
Primjer
Neka su zadani ulazni nukleotidni sljedovi AGC, AGGG, ATGC, koje elimo poravnati.
Neka je zadano sljedee bodovanje: +1 za podudaranje nukleotida; -1 za nepodudaranje
nukleotida; -2 za prazninu.
Promatramo jedno od moguih poravnanja prikazano matricom A koja ima 3 retka i 4
stupca:
A 1 2 3 4
1 A - G C
2 A G G G
3 A T G C
Vrijednost sume parova za poravnanje prikazano matricom A raunamo na sljedei nain:
SP(A
1
) = s(A
1,1
, A
2,1
) + s(A
1,1
, A
3,1
) + s(A
2,1
, A
3,1
) = 1 + 1 + 1 = 3
SP(A
2
) = s(A
1,2
, A
2,2
) + s(A
1,2
, A
3,2
) + s(A
2,2
, A
3,2
) = -5
SP(A
3
) = s(A
1,3
, A
2,3
) + s(A
1,3
, A
3,3
) + s(A
2,3
, A
3,3
) = 3
SP(A
4
) = s(A
1,4
, A
2,4
) + s(A
1,4
, A
3,4
) + s(A
2,4
, A
3,4
) = -1
SP(A) = SP(A
1
) + SP(A
2
) + SP(A
3
) + SP(A
4
) = 3 - 5 + 3 - 1 = 0

72
Metoda sume parova ima nedostatak u velikoj teini koja je dana mutacijama, to u velikoj
mjeri smanjuju vrijednost konanog zbroja.

Primjer
Promatramo poravnanje 4 nukleotidna slijeda. Neka su vrijednosti sljedova u i-tom stupcu:
C, C, G i C. Dakle, jedino se nukleotid G u 3. slijedu razlikuje od ostalih. Neka je zadano
bodovanje: +1 za podudaranje nukleotida; -1 za nepodudaranje nukleotida. Suma
poravnanja za stupac A
i
je:
SP(A
i
) = 1 1 + 1 1 + 1 1 = 0
Za usporedbu, ako promatramo 4 nukleotidna slijeda za koje je isti nukelotid C u i-tom
stupcu u svim sljedovima, onda je suma poravnanja za i-ti stupac A
i
:
SP(A
i
) = 1 + 1 + 1 + 1 + 1 + 1 = 6
5.2.2. Poravnavanje vie sljedova odjednom dinamikim
programiranjem
Globalno optimalno poravnanje dva slijeda dinamikim programiranjem opisano je u
potpoglavlju 2.3. Needleman-Wunschov algoritam (Needleman & Wunsch, 1970)
usporeuje svaki znak iz jednog slijeda duljine m sa svakim znakom iz drugog slijeda
duljine n. Bodovanje poravnanja sprema se u dvodimenzionalno polje (matricu) koje je
dimenzija m x n. Svaki element matrice sadri vrijednost poravnanja promatranih znakova
zbrojen s vrijednou najboljeg poravnanja koje vodi do te kombinacije znakova. Element
matrice u donjem desnom kutu sadri konanu vrijednost poravnanja, a samo poravnanje
se odreuje kao put od elementa u donjem desnom kutu prema elementu u gornjem lijevom
kutu. Optimalno poravnanje se obino nalazi oko dijagonale matrice.
Globalno optimalno poravnanje k sljedova je poopenje Needleman-Wunschov algoritma
za dva slijeda. Vrijednosti poravnanja za neku kombinaciju znakova k sljedova sprema se u
k-dimenzionalno polje, tj. poliedar (eng. polyhedron). Optimalno rjeenje nalazi se oko
dijagonale k-dimenzionalnog polja Sl. 5.2. Kako bi se ubrzalo traenje optimalnog puta
kroz poliedar, pretraivanje se moe koncentrirati samo na podruje oko dijagonale,
odnosno na vrijednosti u podruju tzv. Carrillo-Lipmanove granice (eng. Carillo-Lipman
Bound) (Carrillo & Lipman, 1988).

73
Prvo razmatramo sluaj optimalnog poravnanja 3 slijeda: S
1
, S
2
i S
3
. Raunanje poravnanja
za 3 slijeda pohranjujemo u trodimenzionalno polje M (Sl. 5.2). Svaki element polja M
oznaen je s M
i,j,k
gdje se indeks i odnosi na i-ti znak u slijedu S
1
, tj. S
1
[i]; indeks j se
odnosi na j-ti znak u slijedu S
2
, tj. S
2
[j], a indeks k se odnosi na k-ti znak u slijedu S
3
, tj.
S
3
[j]. Izraun elemenata polja M poinje od elementa M
1,1,1
i ide prema elementu M
4,4,3
(za
primjer na Sl. 5.2), tj. izraun zavrava u elementu koji se odnosi na zadnje znakove u
svakom od sljedova.

Sl. 5.2 Raunanje poravnanja tri slijeda S
1
, S
2
, S
3
odjednom. Rjeenje se obino nalazi oko
dijagonale trodimenzionalnog polja (izlomljena crta oznaena crvenom bojom).
Svaki element M
i,j,k
, analogno Needleman-Wunschovim algoritmu za optimalno
poravnanje dva slijeda, rauna kao zbroj vrijednosti poravnanja trenutno promatranih
znakova iz S
1
, S
2
i S
3
(ili praznina na mjestu pojedinog znaka) zbrojeno s najboljom
vrijednou poravnanja znakova do tada.

Sl. 5.3 Raunanje elementa M
i,j,k
.
S
2
[1]
S
2
[2]
S
2
[3]
S
2
[4]
S
3
[1]
S
1
[1] S
1
[2] S
1
[3] S
1
[4]
S
3
[2]
S
3
[3]
M
i-1, j-1, k
M
i, j, k
M
i-1, j-1, k-1
M
i-1, j, k-1
M
i, j, k-1
M
i-1, j, k
M
i, j-1, k-1
M
i, j-1, k

74
Konkretno, element M
i,j,k
matrice (Sl. 5.3) rauna se prema izrazu (5.3):
M
i, j, k
=


(5.3)
Za odreivanje elementa M
i,j,k
potrebno je ispitati sedam kombinacija, tj. razmatraju se sve
kombinacije poravnanja znaka S
1
[i] ili praznine za slijed S
1
, znaka S
2
[j] ili praznine za
slijed S
2
te znaka S
3
[k] ili praznine za slijed S
3
. Nije doputeno, tj. nema smisla, da su u
nekom stupcu poravnanja sve praznine te je zato ukupan broj kombinacija 222 1 = 7.
Na primjer: izraz S(S
1
[i], , ) znai vrijednost (zbroj, eng. sum) poravnanja znaka S
1
[i] s
prazninom (procijepom) u slijedu S
2
i prazninom u slijedu S
3
. Ta se vrijednost zbraja s
vrijednou matrice u elementu M
i-1,j,k
. Analogno tome, odreuje se i preostalih est
kombinacija te se zatim maksimalna vrijednost postavlja u element M
i,j,k
.
Openito, ako raunamo poravnanje k sljedova, tada se vrijednost poravnanja pohranjuje
po koracima u k-dimenzionalno polje M. Svaki element

rauna se prema izrazu


(5.4), gdje se indeksi i
1
, i
2
, .., i
k
se odnose na indekse promatranih znakova u sljedovima S
1
,
S
2
, ..., S
k
, tj. na znakove S
1
[i
1
], S
2
[i
2
], ..., S
k
[i
k
]. Za svaki element

promatraju se
vrijednosti poravnanja svih moguih putova iz kojih se moglo doi do tog elementa te se
na te vrijednosti dodaje vrijednost (zbroj) poravnanja trenutno promatranih znakova ili
praznina za odgovarajui slijed. Na primjer, ako promatramo zadnji stupac u poravnanju:
za svaki od k sljedova u poravnanju moe na tom mjestu u stupcu biti
nukleotid/aminokiselina ili praznina (procijep), to je ukupno 2
k
1 kombinacija (-1, jer nije
dozvoljeno da su samo praznine u stupcu). Ako se svaki zbroj S metodom sume parova,
tada je vrijeme potrebno za raunanje jednog zbroja: O(k
2
). Ukupno treba izraunati 2
k
1
zbrojeva za 2
k
1 kombinacija. Ukupno vrijeme potrebno za raunanje jednog elementa
matrice M je: O(k
2
2
k
).

75


(5.4)
Vremenska sloenost izrauna k-dimenzionalnog polja M za k sljedova duljine n iznosi
O(k
2
2
k
n
k
), gdje je n
k
broj elemenata u k-dimenzionalnom polju, a O(k
2
2
k
) je vrijeme
potrebno za raunanje jednog elementa polja M. Prostora sloenost je O(n
k
), zbog prostora
potrebnog za pohranu k-dimenzionalnog polja M.
Zbog vremenske i prostorne sloenosti koje eksponencijalno ovise o broju sljedova (k),
dinamiko programiranje optimalnog poravnanja tri ili vie sljedova vrlo je zahtjevno i u
praksi se ne primjenjuje. Kao alternativa, koristi se heuristiko poravnavanje vie sljedova
odjednom.
5.2.3. Heuristiki pristup poravnanju vie sljedova odjednom
Nekoliko je osnovih heuristikih pristupa pristup poravnanju vie sljedova odjednom:
1. progresivno poravnavanje (eng. progressive alignment)
2. iterativne metode (eng. iterative methods)
3. metode temeljene na skrivenim Markovljevim modelima (eng. Hidden Markov Model;
HMM)
4. metode temeljene na genetskim algoritmima
5. metode temeljene na filogenetskom predznanju (eng. phylogeny-aware methods)
Ovdje emo ukratko objasniti dvije metode: progresivnu i iteativnu metodu. Kao primjer
progresivne metode objasnit emo prikaz rada popularnog alata za poravnavanje vie
sljedova odjednom: ClustalW/ClustalX (Thompson et al., 1994; Larkin et al., 2007) te
njegove vieprocesorske verzije, Clustal Omega (Sievers et al., 2011). Kao primjer
koritenja iterativne metode ukratko emo objasniti princip rada programa MUSCLE
(Edgar, 2004).
Clustal skupina programa kao ulaz prima skup nukleotidnih ili aminokiselinskih sljedova.
Sljedovi se inicijalno poravnavaju po parovima. Zatim se prema inicijalnih poravnanjima
odrede udaljenosti na temelju kojih se onda gradi pomono filogenetsko stablo (eng. guide
tree). Stablo se gradi koritenjem metode najbliih susjeda (eng. neighbor joining;
potpoglavlje 7.5.2). Prema stablu se odabere najsliniji sljedovi i oni se prvi dodaju u

76
konao poravnanje. Zatim se ponavlja postupak tako da se dodaju jedan po jedan preostali
slijed u konano poravnanje, a postupak se zavrava kada se svi sljedovi dodaju u
poravnanje. Na kraju se poravnanje moe jo runo prilagoditi (Sl. 5.4). Nedostatak
metode je to konani rezultat ovisi o paru sljedova koji su prvi odabrani, a to se
naknadno ne moe mijenjati.
Algoritam ClustalW
Inicijalno poravnati sve parove sljedova
Ponavljati dok se ne dodaju svi preostali sljedovi
Odabrati sljedei slijed ili grupu sljedova koji e se dodati prethodno poravnatim sljedovima
Poravnati novododani slijed ili grupu s prethodno poravnatim sljedovima
Runo prilagoditi izraunata poravnanja
Sl. 5.4 Princip rada programa ClustalW/ClustalX
Primjer
Zadani su sljedovi S
1
= AGC, S
2
= ATGC, S
3
= AGGG. Prvo se naprave inicijalna
poravnanja parova sljedova. Rezultat poravnanja para sljedova npr. moe biti:
1. Mjera slinost (eng. similarity) izmeu sljedova, definirana kao broj podudaranja u
poravnanju podijeljeno s ukupnim brojem stupaca koje ne sadre praznine
2. Mjera udaljenosti (eng. distance) izmeu sljedova, definirana kao broj nepodudaranja
u poravnanju podijeljeno s ukupnim brojem stupaca koje ne sadre praznine.
U ovom emo primjeru raunati rezultat poravnanja kao mjeru slinosti sljedova (Sl. 5.5).
Vidimo da izmeu 3 mogua poravnanja, najveu slinost ima par (S
1
, S
2
), ija je slinost
1. S obzirom da su ta dva slijeda meusobno najslinija, njih prvo grupiramo, a na kraju
dodajemo S
3
.

77

Sl. 5.5 Odreivanje poravnanja sljedova S
1
, S
2
i S
3
.

1 2 3
S
1
A - G C
S
2
A T G C
S
1
A G C -
S
3
A G G G
S
2
A T G C
S
3
A G G G
S S S
Rezultat(S1, S2) = 1
A-GC
ATGC
AGGG
Rezultat(S1, S3) = 2/3 Rezultat(S2, S2) = 2/4

78
5.3. Literatura
Carrillo,H. & Lipman,D. (1988) The Multiple Sequence Alignment Problem in Biology.
SIAM J Appl Math, 48, 10731082.
Edgar,R.C. (2004) MUSCLE: multiple sequence alignment with high accuracy and high
throughput. Nucleic Acids Res., 32, 17921797.
Kurtz,S. et al. (2004) Versatile and open software for comparing large genomes. Genome
Biol., 5, R12.
Larkin,M.A. et al. (2007) Clustal W and Clustal X version 2.0. Bioinforma. Oxf. Engl., 23,
29472948.
Needleman,S.B. & Wunsch,C.D. (1970) A general method applicable to the search for
similarities in the amino acid sequence of two proteins. J. Mol. Biol., 48, 443453.
Sievers,F. et al. (2011) Fast, scalable generation of high-quality protein multiple sequence
alignments using Clustal Omega. Mol. Syst. Biol., 7.
Smith,T.F. & Waterman,M.S. (1981) Identification of common molecular subsequences. J.
Mol. Biol., 147, 195197.
Thompson,J.D. et al. (1994) CLUSTAL W: improving the sensitivity of progressive
multiple sequence alignment through sequence weighting, position-specific gap
penalties and weight matrix choice. Nucleic Acids Res., 22, 46734680.
Zhang,Z. et al. (2000) A greedy algorithm for aligning DNA sequences. J. Comput. Biol. J.
Comput. Mol. Cell Biol., 7, 203214.



79
6. Samostojni indeksi
Indeks je podatkovna struktura koja omoguuje uinkovit dohvat i pretraivanje podataka.
Potpuni indeks (eng. full-text index) je indeks koji omoguuje dohvat ili pretraivanje
cijelog teksta ili bilo kojeg njegovog dijela; takvi indeksi su npr. sufiksno stablo i sufiksno
polje.
Neka je zadan niz S izgraen nad abecedom i duljine n. Za pohranu niza S potrebno je
O(n log ||) bita. Za pohranu potpunog indeksa izgraenog nad nizom S potrebno je (n
log n) bita. Meutim, u praksi je za pohranu niza S obino potrebno n okteta (eng. byte). Za
pohranu potpunog indeksa potrebno je od 4n okteta (u sluaju sufiksnog polja) do barem
10n okteta u sluaju sufiksnog stabla (Kurtz, 1998).
Kao memorijski uinkovitija alternativa, 2000. godine se pojavio prvi samostojni indeks
(eng. self-index) (Ferragina & Manzini, 2000), ije je memorijsko zauzee proporcionalno
veliini komprimiranog teksta, odnosno sublinearno u odnosu na originalni tekst. Takav
indeks zamjenjuje tekst, tj. sam indeks omoguuje pristup tekstu ili dijelovima teksta
(podnizovima) nad kojima je indeks izgraen.
Prvi takav indeks bio je FM-indeks (Ferragina & Manzini, 2000), koji se temelji na
Burrows-Wheelerovoj transformaciji (BWT) ulaznog niza (Burrows & Wheeler, 1994).
Osim samostojnih indeksa koji se temelje na BWT, postoji grupa samostojnih indeksa koja
koristi komprimirana sufiksna polja, npr. (Sadakane, 2003) te indeksi koji koriste LZ-
saimanje (Ziv & Lempel, 1977, 1978), npr. (Navarro, 2009). Iako samostojni indeksi
zauzimaju znatno manje memorijskog prostora u odnosu na potpune indekse, za njihovu
izgradnju potrebno je 5n-9n okteta za ulazni niz duljine n (Ferragina et al., 2008).
U ovom e poglavlju biti izloen FM-indeks, koji se najvie primjenjuje u bioinformatici.
S obzirom da je memorijski prostor, koji je potreban za pohranu tog indeksa, ovisan o k-toj
entropiji ulaznog teksta, najprije emo ukratko objasniti kako se rauna entropija
znakovnog niza (6.1), a zatim i Burrows-Wheelerovu transformaciju (6.2) te na kraju sam
FM-indeks.

80
6.1. Odreivanje entropije znakovnog niza
6.1.1. Shannonova entropija
Shannon je 1948. godine uveo koncept statistike entropije u teoriju informacija (Shannon,
1948). U teoriji informacija, entropija (u tom kontekstu jo se naziva i Shannonova
entropija) moe se definirati kao nesigurnost informacije o nekoj sluajnoj varijabli:
entropija je maksimalna kada svi ishodi u promatranom sustavu imaju jednaku
vjerojatnost, a minimalna kada je mogu samo jedan ishod.
Neka je p
i
vjerojatnost i-tog ishoda. Tada je Shannonova entropija H definirana kao:
H =

(6.1)
Primjer:
Promatramo bacanje kocke, gdje kocka moe pasti na jednu od 6 stranica oznaenih
brojevima: 1, 2, 3, 4, 5 i 6. Dakle, bacanje kocke moe imati jedan od 6 moguih ishoda.
Zbroj vjerojatnosti svih ishoda je:
P(X=1) + P(X=2) + P(X=3) + P(X=4) + P(X=5) + P(X=6) = 1
Ako je kocka nepristrana, onda je vjerojatnost da kocka padne na bilo koju stranicu
jednaka, odnosno, P(X=1) = P(X=2) = P(X=3) = P(X=4) = P(X=5) = P(X=6) = 1/6.
Entropija je u tom sluaju H =

= - 6 1/6 log(1/6) = 2.58 (za log koristimo


log
2
, ali se moe koristiti i neka druga baza logaritma).
Ako je kocka pristrana, npr. kocka uvijek pada na stranicu oznaenu sa 6, onda je P(X=6)
= 1, P(X6) = 0. Takoer, pretpostavljamo 0 log 0 = 0. Entropija je tada jednaka H =
1 log(1) 5 0 = 0.
Dakle, u sluaju nepristrane kocke entropija je maksimalna (nije mogue predvidjeti ishod
sljedeeg bacanja), odnosno, u sluaju pristrane kocke koja uvijek pada na stranicu
oznaenu sa 6, entropija je minimalna (uvijek je mogue predvidjeti ishod sljedeeg
bacanja).

81
6.1.2. Shannonova entropija znakovnog niza
Neka je zadan niz znakova S, duljine n. Neka je p
i
vjerojatnost pojavljivanja i-tog znaka u
S, gdje se p
i
odreuje kao uestalost pojavljivanja tog znaka u S, tj. p
i
= n
i
/ n. Shannonova
entropija niza S definirana je kao:
H(S) =

(6.2)
Ovako definirana entropija se jo zove nulta entropija niza S ili H
0
(S).
Primjer:
Neka su zadani nizovi S
1
= ACCA (n = 4, n
A
= n
C
= 2) i S
2
= ACCC (n = 4, n
A
= 1, n
C
=
3). Potrebno je odrediti nultu entropiju nizova S
1
i S
2
(log je log
2
):
H
0
(S
1
) = (

) = (

) = 1
H
0
(S
2
) = (

) = (

) = 0.811
Rezultat moemo tumaiti na sljedei nain: niz S
1
ima veu entropiju od niza S
2
, odnosno
tee je predvidjeti sljedei znak u nizu u sluaju niza S
1
. Za niz koji bi se sastojao od samo
jednog znaka, uvijek bi bilo mogue predvidjeti sljedei znak, tj. entropija takvog niza bi
bila 0. Takav bi se niz mogao vrlo lako saeti (komprimirati): npr. cijeli niz bi se mogao
komprimirati tako da se pohrani samo znak koji se ponavlja i broj ponavljanja znaka u
nizu. Suprotno, to je niz sloeniji, tj. ako se sastoji od vie znakova abecede koji su
sluajno poredani, to je takav niz tee saeti.
6.1.3. Entropija vieg reda
Osim nulte entropije, za neki se niz mogu definirati i entropije vieg, odnosno, k-tog reda,
H
k
(S). Nadovezujui se na prethodni primjer, ovdje emo ukratko izloiti vezu izmeu
entropije i saimanja (eng. compression) teksta te ulogu entropija vieg reda u saimanju.
Naime, svaki je znak u raunalu pohranjen kao niz bitova. Za pohranu znakova neke
abecede , elimo osigurati da je svaki znak pohranjen jedinstvenom kombinacijom 0 i 1
(eng. codeword). Ako je svaki znak pohranjen s jednakim brojem bitova, onda je za
pohranu svakog znaka potrebno

. Openito, veliina idealno komprimiranog niza



82
je nH
0
(S), gdje se za pohranu svakog znaka koristi log(n
i
/n) bitova (Manzini, 2001).
Dakle, H
0
(S) moe predstavljati prvu aproksimaciju kod saimanja teksta.
Meutim, ako se uoe neke pravilnosti u tekstu, znakove je mogue pohraniti i koritenjem
manjeg broja bitova. Takvo saimanje teksta odnosi se na entropije vieg reda, H
k
, k > 0.
Neka je
k
je skup svih nizova duljine k iji su znakovi iz . Promatramo kontekst (eng.
context) con, koji je podniz niza S duljine k. Neka je S
con
niz konkateniranih znakova koji
se pojavljuju u S iza con gledano s lijeva na desno. Tada definiramo k-ti red entropije niza
S (eng. the k-th order entropy of S), H
k
(S), k 0:
H
k
(S) =

(6.3)
Moemo uoiti da je: 0 H
k
(S) H
k-1
(S) . . . H
1
(S) H
0
(S) log||.
Primjer:
Neka je zadan niz S = ACCA. Promatramo con
1
= A i con
2
= C (podnizovi niza S duljine
1). Tada je niz S
con1
konkatenacija znakova koji slijede iza podniza con
1
= A u S: S
con1
= C.
Niz S
con2
koji je konkatenacija znakova koji slijede iza podniza con
2
: S
con2
= AC. Koristimo
(6.2) i (6.3):
H
0
(S) = (

) = (

) = 1
H
0
(S
con1
) = (

= 0
H
0
(S
con2
) = 2 (

= 1
H
1
(S) =

= 0.5
Prema oekivanju, vidimo da je H
1
(S) manja od H
0
(S).
6.2. Burrows-Wheelerova transformacija (BWT)
Burrows i Wheeler su 1994. osmislili transformaciju teksta (Burrows & Wheeler, 1994),
koja je vrlo prikladna za saimanje teksta. Meu ostalim, koristi se npr. u programu bzip2
(Seward, 2007). Osim pod nazivom Burrows-Wheelerova transformacija (krae, BWT),
poznata je i pod nazivom block-sorting compression.

83
Neka je zadan niz S. Niz S' = BWT(S) moe se odrediti na dva naina: (i) rotacijom niza S,
ili (ii) sufiksnog polja SA(S).
6.2.1. Konstrukcija BWT rotacijom znakovnog niza
Neka je zadan niz S duljine n nad abecedom . Na kraju niza S nalazi se jedinstveni znak
koji predstavlja oznaku kraja niza, $. Pretpostavljamo da je $ leksikografski manji od svih
ostalih znakova iz . Prvi znak niza S nalazi se na poziciji 0, a zadnji na poziciji n 1.
Da bi se izgradio niz B = BWT(S), potrebno je obaviti sljedee korake:
1. Napraviti sve ciklike rotacije CR (permutacije) niza S, tj. formirati nizove oblika S[i,
n 1]S[0, i 1] za i 1. CR(0) = S, CR(1) = S[1, n 1]S[0, 0], itd.
2. Sve ciklike rotacije potrebno je leksikografski poredati.
3. Zadnji stupac u tablici leksikografski poredanih ciklikih rotacija predstavlja B =
BWT(S).
Primjer:
Neka je zadan niz S = ACCA$ (n = 5). Pretpostavljamo da je znak leksikografski $ manji
od svih znakova abecede nad kojom je izgraen S. Potrebno je odrediti B = BWT(S).
Prvo odreujemo ciklike rotacije (CR) niza S (drugi stupac Tablica 6.1). Npr. ciklika
rotacija CR(0) = ACCA$; CR(1) = CCA$A, jer je CR(1) = S[1, 4]S[0, 0], itd.
Zatim se ciklike rotacije niza S poredaju abecedno (trei stupac Tablica 6.1). Naposljetku
se konkateniraju zadnji znakovi abecedno poredanih ciklikih rotacija (etvrti stupac
Tablica 6.1) niza S, im se dobije niz B = BWT(S) = AC$CA.
Tablica 6.1 Izgradnja niza BWT(S) za niz S = ACCA$ ciklikim rotacijama.
i Ciklike rotacije (CR) niza S Abecedno poredane ciklike rotacije niza S B[i]
0 ACCA$ $ACCA A
1 CCA$A A$ACC C
2 CA$AC ACCA$ $
3 A$ACC CA$AC C
4 $ACCA CCA$A A

84
6.2.2. Konstrukcija BWT koritenjem sufiksnog polja
Kao i u prethodnom poglavlju, neka je zadan niz S duljine n nad abecedom . Na kraju
niza S nalazi se $, jedinstveni znak koji je leksikografski manji od svih ostalih znakova iz
i nalazi se samo na kraju niza S. Prvi znak niza S nalazi se na poziciji 0, a zadnji na poziciji
n 1.
Neka je izgraeno sufiksno polje SA nad nizom S. Tada niz B = BWT(S) definiramo na
sljedei nain:
1. B[i] = $, ako je SA[i] = 0
2. B[i] = S[SA[i] 1], inae.

Primjer:
Zadan je niz S = ACCA$ (n = 5). Pretpostavljamo da je znak $ leksikografski manji od
znakova abecede nad kojom je izgraen S. Odreujemo B = BWT(S) koritenjem
sufiksnog polja SA izgraenog nad S.
Prvo smo abecedno poredali sufikse od S (drugi stupac Tablica 6.2). Npr., abecedno je
najmanji sufiks s
4
= $, zatim slijedi s
0
= ACCA$, itd. Sufiksno polje SA = {4, 3, 0, 2, 1}
(trei stupac Tablica 6.2). Na kraju, koritenjem pravila da je B[i] = $, ako je SA[i] = 0, a
inae B[i] = S[SA[i] 1], dobijemo B = BWT(S) = AC$CA (etvrti stupac Tablica 6.2).
Tablica 6.2 Izgradnja niza B = BWT(S) koritenjem sufiksnog polja SA od S.
i Abecedno poredani sufiksi od S SA[i] BWT[i]
0 $ 4 A
1 A$ 3 C
2 ACCA$ 0 $
3 CA$ 2 C
4 CCA$ 1 A
Lako je uoiti vezu izmeu postupka izgradnje niza B = BTW(S) koritenjem sufiksnog
polja i ciklikih rotacija: svaka abecedno poredana ciklika rotacija (trei stupac Tablica

85
6.1) do ukljuivo znaka $ je odgovara sufiksu niza S na istoj poziciji (drugi stupac Tablica
6.2).
6.2.3. LF-mapiranje
Neka je zadan niz S nad abecedom . Niz S zavrava znakom $ koji nije lan abecede .
Neka je niz B = BWT(S) izgraen ciklikim rotacijama niza S.
LF-mapiranje (eng. LF-mapping; Last-to-Front mapping; Last-to-First mapping) opisuje
vezu, odnosno mapiranje, zadnjeg i prvog stupca u listi leksikografski sortiranih ciklikih
rotacija niza S, a temelji se na sljedeem: i-ta pojava znaka c u zadnjem stupcu (stupcu L)
leksikografski sortiranih ciklikih rotacija odgovara i-toj pojavi znaka c u prvom stupcu
(stupcu F). Dakle, BWT[i] se nalazi u stupcu F na mjestu LF[i].
LF-mapiranjem moemo iz niza B, uz prisutnost stupca F, izgraditi poetni niz S. Prvi
stupac F sainjavaju leksikografski sortirani znakovi iz S, a time i B, to znai da nam je
samo B dovoljan da bi odredili S. Zbog toga kaemo da je BWT reverzibilna
transformacija.
Primjer:
Neka je zadan niz S = ACCA$, gdje je $ leksikografski manji od ostalih znakova iz S. Niz
B = BWT(S) = AC$CA (vidjeti primjer u poglavlju 6.2.1; Tablica 6.1).
Koristimo LF-mapiranje da bi iz niza B = AC$CA izgradili niz S (Sl. 6.1). Na Sl. 6.1 zadnji
stupac abecedno poredanih ciklikih rotacija od S oznaen je s L, a prvi s F. Stupac L je
ujedno i B = BWT(S). Da bi izgradili S, osim B (koji je pohranjen u stupcu L), potreban
nam je jo stupac F. Stupac F sainjavaju poetni znakovi abecedno sortiranih sufiksa, a
time i abecedno sortirani znakovi iz S, odnosno B.
U 1. koraku kreemo od prvog znaka u B (stupac L), tj. od B[0] = A: znak A u stupcu L je
oznaen crvenom bojom (Sl. 6.1). S obzirom da promatrani znak A predstavlja prvo
pojavljivanje znaka A u stupcu L, onda i u stupcu F traimo prvo pojavljivanje znaka A (na
Sl. 6.1 u 1. koraku prva pojavljivanja znakova A u stupcima L i F povezani su crvenom
strelicom). Ovdje smo zapravo primijenili pravilo LF-mapiranja koje kae da i-ta pojava
znaka c u zadnjem stupcu (L) odgovara i-toj pojavi znaka c u prvom stupcu (F).

86

Sl. 6.1 Reverzibilnost BWT: iz niza B = AC$CA LFmapiranjem se dobije niz S = ACCA$, gdje je
B = BWT(S).
Na kraju 1. koraka odreuje se sljedei znak u stupcu L (od kojeg emo nastaviti
konstrukciju niza S): to je znak C kojeg smo dobili tako da smo povukli strelicu od prvog
pojavljivanja znaka A u F prema znaku na istom mjestu u L (Sl. 6.1; drugi dio 1. koraka).
To je mogue napraviti s obzirom da je C prethodnik od A u originalnom nizu, a to je
vidljivo kada promatramo cijelu cikliku rotaciju na tom mjestu (A$ACC), tj. ako A
zarotiramo, onda e doi iza C.
Analogno 1. koraku rekonstruiramo i sve ostale znakove iz S (Sl. 6.1), sve do zadnjeg
znaka u nizu, $, kada zaustavljamo postupak (u 5. koraku smo pronali zadnji, 5. znak u
nizu S).
6.3. FM-indeks
6.3.1. Interval sufiksnog polja
Neka je zadan niz S duljine n nad abecedom (S zavrava znakom $ koji ne postoji u ).
Za niz S je izgraeno sufiksno polje SA. elimo pronai sva pojavljivanja podniza P u S.
Promatramo abecedno poredane sufikse niza S, iji redoslijed znamo prema SA. U
sufiksnom se polju, svi sufiksi (preciznije: njihovi indeksi), iji je prefiks P, nalaze slijedno
jedan iza drugog, tj. odreeni su intervalom sufiksnog polja [L
P
, R
P
]. L
P
je indeks abecedno
prvog sufiksa prema SA kojemu je P prefiks, a R
P
je indeks abecedno zadnjeg sufiksa
prema SA kojemu je P prefiks, tj.:
1. L
P
= min {k: P je prefiks sufiksa S
SA[k]
}
2. R
P
= max {k: P je prefiks sufiksa S
SA[k]
}
Za P = vrijedi [L
P
, R
P
] = [0, n 1].
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
F L F L
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
F L
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
F L
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
F L F L
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
S = A S = A S = AC S = ACC S = ACCA S = ACCA$
1. korak 2. korak 3. korak 4. korak 5. korak

87
Primjer:
Zadan je niz S = ACCA$ i za niz S je izgraeno sufiksno polje SA = {4, 3, 0, 2, 1}
(Tablica 6.3). Traimo podniz P = A u nizu S.
Svi se sufiksi niza S, koji poinju prefiksom P = A (s
3
= A$ i s
1
= ACCA$), nalaze slijedno
jedan iza drugoga u listi abecedno sortiranih sufiksa. Indeksi abecedno sortiranih sufiksi
koji poinju s P su elementi sufiksnog polja iz intervala SA[1, 2] = {3, 1}.
Tablica 6.3 Sufiksno polje SA izgraeno za S = ACCA$. Za podniz P = A vrijedi [L
P
, R
P
] = [1, 2].
i SA[i] S[SA[i], n - 1]
0 4 $
1 3 A$
2 0 ACCA$
3 2 CA$
4 1 CCA$
6.3.2. Traenje podniza u nizu koritenjem FM-indeksa
Neka je zadan niz S duljine n nad abecedom (S zavrava znakom $ koji ne postoji u ).
Za niz S su izraunati sufiksno polje SA i BWT(S). FM-indeks, u kojem se kombiniraju
BWT i sufiksno polje za zadani znakovni niz S (Ferragina & Manzini, 2000), omoguuje
uinkovito pretraivanje niza kako bi se odredilo postoji li podniz P u S te pronalazi sva
pojavljivanja P u S (odnosno sve pozicije na kojima se P pojavljuje). FM-indeks zauzima
najvie 5nH
k
(S) + logn (Ferragina & Manzini, 2000).
FM-indeks omogue odreivanje broja pojavljivanja P u S metodom pretraivanja unatrag
(eng. backward search). Pretraivanje unatrag se temelji na LF-mapiranju.
Algoritam u kojem se broje pojavljivanja podniza P u S zove se BW_Count (Ferragina &
Manzini, 2000). Algoritam koristi pomono polje C i funkciju Occ (ovisno o
implementaciji, Occ moe biti i dvodimenzionalno polje).
Element polja C, koji se odnosi na znak c iz abecede , tj. C[c], predstavlja broj znakova u
S[0, n - 1] koji su leksikografski prije c (ukljuujui i ponavljanja znakova).

88
Occ je funkcija (ili podatkovna struktura, ovisno o realizaciji) koja za parametre znak c i
poziciju i, Occ(c, i), vraa broj pojavljivanja znaka c u B[0, i], gdje je B = BWT(S).
BW_Count algoritam kree s pretraivanjem niza S poevi od zadnjeg znaka podniza P.
Za svaki promatrani sufiks podniza P (poevi od sufiksa koji sadri samo zadnji znak iz
P) odreuje se interval pozicija [L
P
, R
P
] na kojima se ti sufiksi pojavljuju. Postupak se
ponavlja sve dok se ne pregledaju svi znakovi iz P. Ako P postoji u S, algoritam vraa broj
pojavljivanja P u S, koji iznosi: (R
P
- L
P
+ 1), a ako P ne postoji u S, vraa 0.
Ulaz: C, Occ, P
Izlaz: broj pojavljivanja podniza P u nizu S
i = |P| - 1 /* kree od zadnjeg mjesta u P */
c = P[|P| - 1] /* zadnji znak u P */
L
P
= C[c]
R
P
= C[csljed] 1 /* csljed je znak nakon c u */
ponavljaju za ((L
P
R
P
) i (i 1))
i = i 1
c = P[i]; /* sljedei znak iz P */
L
P
= C[c] + Occ(c, L
P
1)
R
P
= C[c] + Occ(c, R
P
) - 1
ako (R
P
< L
P
) onda vrati 0
inae vrati (R
P
- L
P
+ 1)
Sl. 6.2 Algoritam BW_Count (Ferragina & Manzini, 2000)
Primjer:
Neka je zadan S = ACCA$; pretpostavljamo da je znak $ leksikografski manji od svih
drugih znakova iz S. Duljina niza S je n = 5. Sufiksno polje SA izgraeno nad S je SA =
{4, 3, 0, 2, 1}. elimo odrediti koliko se puta podniz P = CA pojavljuje u nizu S.
Kako bi primijenili algoritam BW_Count na traenje P u S, prvo trebamo odrediti
vrijednosti pomonog polja C i strukture Occ. Occ koristi B = BWT(S) = AC$CA (Tablica
6.1).
Vrijednosti elemenata polja C, C[c], raunaju se kao broj znakova u S koji su abecedno
prije c:
C('$') = 0, jer ne postoji niti jedan znak u S, koji je abecedno manji od $;
C('A') = 1, jer je znak $ abecedno manji od znaka A, a pojavljuje se jedanput;

89
C('C') = 3, jer su znakovi $ i A abecedno manji od C, a pojavljuju se ukupno tri puta
(znak $ se pojavljuje jedanput, a znak A dva puta).
Vrijednosti elemenata strukture Occ, Occ(c, i), rauna se kao broj pojavljivanja c u B[0, i]
(B = AC$CA):
Occ('A', 0) = 1, jer se znak A pojavljuje jedanput u B[0, 0];
Occ('A', 1) = 1, jer se znak A pojavljuje jedanput u B[0, 1]; itd.
Occ('C', 0) = 0, jer se znak C ne pojavljuje niti jednom u B[0, 0];
Occ('C', 1) = 1, jer se znak C pojavljuje jedanput u B[0, 1];
Occ('C', 2) = 1, jer se znak C pojavljuje jedanput u B[0, 2]; itd.
Traenje P u S poinjemo sa zadnjim znakom niza P, tj. s P[i = 1] = A. Odreujemo
inicijalne vrijednosti L
P
i R
P
(algoritam BW_Count, Sl. 6.2) koritenjem prethodno
izraunatih vrijednosti za polje C:
L
P
= C['A'] = 1
R
P
= C(csljed) 1 = C('C') = 2
Ovime smo odredili da je interval pozicija leksikografski poredanih sufiksa koji poinju
znakom A u sufiksnom polju SA(S): [L
P
, R
P
] = [1, 2]. Ako pogledamo SA(S), vidimo da se
interval [L
P
, R
P
] = [1, 2] odnosi na elemente sufiksnog polja SA[1] = 3 i SA[2] = 1 to
odgovara sufiksima s
3
= A$ i s
1
= ACCA$.
U sljedeem koraku algoritma BW_Count smanjujemo vrijednost varijable i za 1 (i postaje
0) i pretraivanje nastavljamo sljedeim znakom niza P, P[0] = C. Meu sufiksima iz
intervala SA[1, 2] pronaenima u prethodnom koraku traimo postoji li sufiks kojemu je
prethodnik znak C (u Tablica 6.4 crvenom strelicom su povezani sufiks koji poinje
slovom A, a kojemu prethodi znak C u originalnom nizu S). U algoritmu, to se odreuje
raunanjem novih vrijednosti L
P
i R
P
:
L
P
= C['C'] + Occ('C', L
P
1) = 3 + Occ('C', 0) = 3 + 0 = 3
R
P
= C['C'] + Occ('C', R
P
) 1 = 3 + Occ('C', 2) 1 = 3 + 1 1 = 3
Ovime smo odredili da je interval pozicija leksikografski poredanih sufiksa koji poinju
nizom P = CA u sufiksnom polju SA(S): [L
P
, R
P
] = [3, 3].
S obzirom da je P[0] = C poetni znak niza P, algoritam se ovdje zaustavlja i vraa
vrijednost:
R
P
- L
P
+ 1 = 3 - 3 + 1 = 1,

90
to znai da se P pojavljuje samo jedanput u S.
Tablica 6.4 Traenje niza P = CA u nizu S = ACCA$ prema algoritmu BW_Count
i SA[i] Abecedno poredane ciklike rotacije niza S B[i]
0 4 $ACCA A
1 0
ACCA$
C
2 3 A$ACC $
3 2 CA$AC C
4 1 CCA$A A

Drugi nain, kako moemo odrediti postoji li P = CA u S = ACCA$, je koritenjem LF-
mapiranja (Sl. 6.3). Kao to vidimo na Sl. 6.3, traenje P u S poinje sa zadnjim znakom
niza P, tj. s A. U 1. koraku u stupcu F, koji ine poetni znakovi abecedno poredanih
ciklikih rotacija niza S, pronalazimo interval [L
P
, R
P
] = [1, 2] koji se odnosi na ciklike
rotacije niza S koje poinju znakom A. Te se ciklike rotacije zapravo odnose na sufikse
niza S koji poinju znakom A (naime, sufiksi koji poinju znakom A su prefiksi tih
ciklikih rotacija sufiksi niza S se proteu do ukljuivo znaka $ u ciklikoj rotaciji, to se
vidi na Sl. 6.3). Ovime smo utvrdili da znak A postoji u S.

Sl. 6.3 Traenje niza P = CA u nizu S = ACCA$ LF-mapiranjem (stupac L predstavlja niz B =
BWT(S) = AC$CA).
U 2. koraku gledamo nalazi li se sufiks CA u nizu S: znak C u nizu S treba doi prije znaka
A. Kako bi to odredili, od znakova A koji se nalaze na poetnim mjestima ciklikih
rotacija oznaenih intervalom [L
P
, R
P
] = [1, 2] povlaimo strelice prema stupcu L. To je
mogue napraviti zato to je svaki znak koji se nalaze u i-toj ciklikoj rotaciji (CR[i]) u
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
$ A C C A
A $ A C C
A C C A $
C A $ A C
C C A $ A
L
P

R
P

F L F L
P = CA P = CA
L
P
= R
P

91
stupcu L, tj. znak L[i], prethodnik znaka F[i] promatrano u nizu S. Na primjer, ako
promatramo F[1] = A i L[1] = C, vidimo da je tono ovaj znak C prethodnik tono ovog
znaka A u nizu S, to je lako vidljivo iz ciklike rotacije CR[1], koja poinje znakom F[1] i
zavrava znakom L[1] (Sl. 6.3). Isto tako, za F[2] = A i L[2] = $ vidimo da je znak $
prethodnik tono ovog znaka A u nizu S. Dakle, ako promatramo F[1] i F[2] vidimo da
samo F[1] ima za prethodnika znak C, pa pretraivanje nastavljamo samo od L[1].
Kako LF-mapiranje znai da k-ta pojava znaka c u stupcu L odgovara k-toj pojavi znaka c
u stupcu F, tako za znak C na mjestu L[1] (to predstavlja prvu pojavu znaka C u stupcu
L), traimo prvu pojavu znaka C u stupcu F, tj. promatramo C na mjestu F[3]. Time
dobivamo kao rjeenje interval [L
P
, R
P
] = [3, 3], koji pokazuje na cikliku rotaciju CR[3]
(tj. na sufiks s
3
koji poinje prefiksom koji je jednak P). S obzirom da je znak C ujedno i
zadnji znak u nizu P gledano s desna na lijevo, tu zaustavljamo pretraivanje i vraamo
interval [L
P
, R
P
] = [3, 3] kao konano rjeenje.
6.3.3. Prostorna i vremenska sloenost FM-indeksa
FM-indeks je samostojni indeks iji su prostorni zahtjevi blizu teoretskog optimuma, tj.
proporcionalni su k-toj entropiji ulaznog niza. Teorijsko memorijsko zazuzee za niz S
duljine n je O(nH
k
(S)) + o(n) bita (Ferragina & Manzini, 2000).
Brojanje pojavljivanja podniza P u S zahtijevaju vrijeme O(|P|) u najboljem teoretskom
sluaju (Ferragina & Manzini, 2000), ali je praktino to vrijeme vee i ovisi o
implementaciji samog indeksa.


92
6.4. Literatura
Burrows,M. & Wheeler,D.J. (1994) A block-sorting lossless data compression algorithm.
Ferragina,P. et al. (2008) Compressed text indexes: From theory to practice. In, ACM
Journal of Experimental Algorithmics.
Ferragina,P. & Manzini,G. (2000) Opportunistic Data Structures with Applications. In,
FOCS., pp. 390398.
Kurtz,S. (1998) Reducing the Space Requirement of Suffix Trees. Softw. Pract. Exp., 29,
11491171.
Navarro,G. (2009) Implementing the LZ-index: Theory Versus Practice. J Exp
Algorithmics, 13, 2:1.22:1.49.
Sadakane,K. (2003) New Text Indexing Functionalities of the Compressed Suffix Arrays. J
Algorithms, 48, 294313.
Seward,J. (2007) bzip2. http://www.bzip.org.
Shannon,C. (1948) A Mathematical Theory of Communication. Bell Syst. Tech. J., 27,
379423, 623656.
Ziv,J. & Lempel,A. (1977) A universal algorithm for sequential data compression. IEEE
Trans. Inf. Theory, 23, 337343.
Ziv,J. & Lempel,A. (1978) Compression of individual sequences via variable-rate coding.
IEEE Trans. Inf. Theory, 24, 530536.



93
7. Filogenija
7.1.1. Povijesni razvoj ideja
Danas se smatra da je ivot na Zemlji poeo prije otprilike 3.8 milijardi godina. Dananji
ivui, a isto tako i izumrli organizmi, potomci su zadnjeg zajednikog pretka: prve ive
stanice. Genetiki materijal prve ive stanice prenosio se na njezine potomke kopiranjem.
Meutim, taj proces nije bio savren: pratile su ga mutacije i rekombinacije. Sve takve
promjene u genomima ivih bia prenosile su se na odreen broj sljedeih generacija, osim
onih koje su u velikoj mjeri negativno utjecale na reproduktivnu spremu (eng. fitness), pa
su vrlo brzo nestajale iz genoma procesom prirodne selekcije.
Teorija evolucije opisuje proces i objanjava mehanizme kojima su se od zajednikog
pretka (eng. common ancestor) razvili ivui i izumrli organizmi. Teoriju evolucije i
utjecaj prirodne selekcije na razvoj ivih bia izloili su Charles Darwin i Alfred Russel
Wallace prvi puta 1858. godine u radu: On the tendency of species to form varieties; and
on the perpetuation of varieties and species by natural means of selection (Darwin &
Wallace, 1858). Sljedee je godine C. Darwin objavio knjigu On the Origin of Species
(naslov 1. izdanja: On the Origin of Species by Means of Natural Selection, or the
Preservation of Favoured Races in the Struggle for Life) (Darwin, 1859) u kojoj je detaljno
izloio teoriju evolucije te opisao svoja istraivanja i zapaanja za vrijeme petogodinje
plovidbe svijetom brodom Beagle. Zanimljivo je da je jedina slika u knjizi stablo koje
prikazuje evolucijske odnose izmeu pojedinih vrsta: u korijenu stabla je zajedniki
predak, a kroz grananje stabla opisan je razvoj potomaka. Danas takvo stablo nazivamo
filogenetskim stablom, prema pojmu filogenija, koji je uveo Ernst Haeckel (Haeckel,
1866). E. Haeckel je objavio i prva filogenetska stabla kojima je povezao sve poznate
oblike ivota (Haeckel, 1866; Dayrat, 2003)
7
. Prikaz odnosa organizama u stablu temelji se

7
E. Haeckel je, meu ostalima, uveo i pojmove ekologija i ontogenija. On je pretpostavljao
da je ontogenija (ivotni ciklus jedinke) rekapitulacija filogenije, odnosno evolucijske
povijesti svih ivih bia. Ta je teorija bila osporavana od poetka 20. stoljea, a danas se
smatra da postoji sloena veza izmeu filogenije i ontogenije.


94
na njihovim morfolokim i molekularnim slinostima i razlikama, a meusobno srodniji
organizmi grupirani su zajedno u podstabla.
Otprilike u isto vrijeme, Gregor Mendel je istraivao prijenos nasljednih osobina s roditelja
na potomke i rezultate svojih eksperimenata krianja graka objavio je u radu Versuche
ber Pflanzenhybriden (Eksperimenti u hibridizaciji biljaka) (Mendel, 1865). On je
pokazao da organizmi nasljeuju osobine preko jedinica za nasljeivanje koje danas
nazivamo genima. Iako je njegov rad proao relativno nezapaeno u vrijeme kad je
objavljen, ponovno je otkriven na prijelazu u 20. stoljee i danas se Mendel smatra ocem
suvremene genetike.
7.2. Filogenija i filogenetsko stablo
Filogenija (eng. phylogeny) je prikaz evolucijskih odnosa izmeu organizama i, kao to je
ve spomenuto, ti se odnosi obino prikazuju filogenetskim stablom (eng. phylogenetic
tree). Filogenetsko stablo ukljuuje topoloku i, u sluaju ukorijenjenog stabla, vremensku
dimenziju (Sl. 7.1). Organizmi prikazani u vorovima filogenetskog stabla su sistematske
jedinice: npr. vrste, populacije, rodovi, itd. Sistematske jedinice se jo nazivaju
taksonomske jedinice ili taksoni, to dolazi od pojma taksonomija (znanstvena disciplina
koja prouava klasifikaciju organizama).
Izgradnja filogenetskog stabla temeljem molekularnih slinosti taksona odnosi se na
izgradnju stabla temeljem slinosti sljedova. Sljedovi mogu biti skupovi gena (ili proteina)
ili cijeli genomi (ili proteomi). U prvome sluaju, govorimo o izgradnji genskih ili
proteinskih stabala (eng. gene tree; protein tree), gdje se izgradnja stabla temelji na
pretpostavci da promatrani geni imaju zajednikog pretka. Kako bi se odredili filogenetski
odnosi izmeu vrsta, danas se izgrauju i stabla koja koriste vei broj filogenetski
informativnih dijelova genoma.
Na Sl. 7.1 prikazana su dva osnovna tipa filogenetskog stabla: ukorijenjeno (eng. rooted) i
neukorijenjeno (eng. unrooted) filogenetsko stablo. Duljina neke grane u stablu odnosi se
na relativni broj supstitucija koje su se dogodile izmeu sljedova koji predstavljaju vorove
koje ta grana povezuje. Ako je supstitucijska stopa (eng. substitution rate) jednaka u svim
granama kroz svo vrijeme, onda kaemo da vrijedi pretpostavka molekularnog sata (eng.
molecular clock). Ova pretpostavka openito ne vrijedi.



95
Ukorijenjeno stablo pokazuje smjer evolucijskog procesa odreujui odnos izmeu pretka i
potomaka, odnosno, ima ukljuen smjer vremena. Na Sl. 7.1 A) prikazano je ukorijenjeno
stablo koje ima etiri lista za etiri taksona sljedove S
1
, S
2
, S
3
i S
4
. Unutarnji vorovi
stabla predstavljaju sljedove-pretke, a listovi predstavljaju sljedove-potomke. Pored stabla
prikazana je strelica koja prikazuje smjer vremena (vrijeme diferencijacije; eng.
differentiation time) u evolucijskoj povijesti sljedova. Iz stabla se takoer moe vidjeti da
su sljedovi S
1
i S
2
meusobno srodniji nego ijedan od njih u odnosu na S
3
i S
4
. Iz stabla
vidimo i da S
1
i S
2
imaju zajednikog pretka, isto kao i S
3
i S
4
te da svi sljedovi zajedno
imaju jednog zajednikog pretka predstavljenog korijenom stabla.

Sl. 7.1 A) Ukorijenjeno (eng. rooted) i B) neukorijenjeno (eng. unrooted) filogenetsko stablo za 4
slijeda S
1
, S
2
, S
3
i S
4
. Ukorijenjeno stablo ima ugraen smjer vremena (od zajednikog pretka u
korijenu stabla prema potomcima u listovima stabla). Neukorijenjeno stablo nema ugraen smjer
vremena.
Na Sl. 7.1 B) prikazano je neukorijenjeno stablo s etiri lista za 4 taksona sljedove S
1
, S
2
,
S
3
i S
4
. Neukorijenjeno stablo ne sadri smjer evolucije (vremena) i nema korijen. Iz stabla
moemo iitati samo relativne odnose meu taksonima: ovdje su S
1
i S
2
meusobno blii u
odnosu na S
3
i S
4
.
S obzirom da ukorijenjeno stablo sadri vie informacija od neukorijenjenoga (poznat je
zajedniki predak, odnosno smjer vremena u stablu), ponekad je prikladno neukorijenjeno
stablo pretvoriti u ukorijenjeno. To se moe obaviti na jedan od sljedeih naina (Sl. 7.2):
1. Dodavanjem vanjske taksonomske jedinice (eng. outgroup rooting) u postojee
neukorijenjeno stablo. Naknadno dodani takson treba biti najudaljeniji takson u
odnosu na sve ostale taksone u poetnom stablu.
S1 S2 S3 S4
S2
S1 S3
S4
A) B)

96
2. Dodavanjem korijena na sredinu izmeu grana koje povezuju dva najudaljenija lista
postojeeg neukorijenjenog stabla (eng. mid-point rooting).
Na Sl. 7.2A) prikazane su matrice udaljenosti za taksone A, B i C, te za taksone A, B, C i
D, gdje je D najudaljeniji takson u odnosu na A, B i C. Na Sl. 7.2B) prikazano je
neukorijenjeno stablo za taksone A, B i C (duljine grana odgovaraju udaljenostima iz
matrice). Na Sl. 7.2C) prikazano je ukorijenjeno stablo koje je dobiveno iz stabla na Sl.
7.2B) tako da se korijen dodao na polovicu grane izmeu dvaju najudaljenijih taksona: A i
C (eng. mid-point rooting). Na Sl. 7.2D) prikazano je ukorijenjeno stablo, gdje je korijen
dodan izmeu taksona D i podstabla koje sadri taksone A, B i C (eng. outgroup rooting).

Sl. 7.2 Pretvaranje neukorijenjenog stabla u ukorijenjeno stablo za taksone A, B i C. A) Matrica
udaljenosti za taksone A, B i C, te matrica udaljenosti za taksone A, B, C i D, gdje je D vanjski
takson u odnosu na A, B i C. B) Neukorijenjeno stablo za taksone A, B i C. C) Ukorijenjeno stablo
za taksone A, B i C koje se dobilo postavljanjem korijena na sredinu grane izmeu dvaju
najudaljenijih taksona A i C (eng. mid-point rooting). D) Ukorijenjeno stablo koje se dobilo za A,
B i C tako da je dodan vanjski takson D koji je od svih njih najudaljeniji (eng. outgroup rooting).
A)
B)
A
B
C
A
B
C
D
A
B
C
C)
D)

97
7.2.1. Broj moguih stabala u ovisnosti o broju taksonomskih
jedinica
Neka je n broj taksonomskih jedinica za koje elimo izgraditi filogenetsko stablo. Ako je n
= 3 i zadani su taksoni A, B i C, tada je mogue izgraditi samo jedno neukorijenjeno stablo
(primjer na Sl. 7.2B)) ili 3 ukorijenjena stabla, ovisno o tome koji je par taksona najblii.
Na primjer, ako su A i B meusobno blii u odnosu na C, onda su A i B zajedno grupirani,
a C je vanjski takson (eng. outgroup); analogno za sluajeve kada su A i C najblii ili kada
su B i C najblii.
Ako je n 3, onda su broj moguih neukorijenjenih stabla, N
U
, i broj moguih
ukorijenjenih stabla, N
R
, odreeni sljedeim izrazima (Cavalli-Sforza & Edwards, 1967):
N
U
=

(7.1)
N
R
=

(7.2)
Kao to je vidljivo iz (7.1) i (7.2), broj moguih stabala u oba sluaja raste u ovisnosti o
faktorijelima, tako da je npr. za n = 5: N
R
= 105 i N
U
= 15, a ve za n = 20: N
R
= 8 10
21
i
N
U
= 2 10
20
. Za n = 50: N
R
je 2.8 10
76
(Pevsner, 2009). Jasno je, dakle, da je u praksi
teko ili nemogue ispitati sva mogua stabla za desetak ili vie taksona kako bi se
odredilo najbolje stablo prema nekoj unaprijed zadanoj mjeri. Zbog toga se koristi
heuristiki pristup, kojim se smanjuje skup moguih stabala koje treba pregledati.
7.3. Evolucijski DNA modeli
Kada promatramo 2 nukleotidna ili aminokiselinska slijeda S
1
i S
2
, elimo izraunati koliko
su meusobno divergirali (odnosno, koliko je svaki od njih divergirao od slijeda S
0
koji im
je bio zajedniki predak, ako nam je S
0
poznat). Kako bi se odredila evolucijska udaljenost
izmeu S
1
i S
2
, prvo se odreuje vidljivi broj razlika izmeu promatranog para sljedova, to
se obino rauna iz njihova poravnanja. Zatim se iz vidljivih razlika odreenim
evolucijskim modelom odreuje stvarna evolucijska udaljenost izmeu sljedova. Ono to
je vano naglasiti jest da je broj vidljivih razlika u pravilu manji ili eventualno jednak

98
broju promjena koje su se stvarno dogodile kroz njihovu evolucijsku povijest. tovie, to
su S
1
i S
2
vie divergirali, to je razlika izmeu stvarnog broja promjena i vidljivog broja
razlika vea. Na primjer, neka je u 1. stupcu u slijedu S
0
bio nukleotid A, a sada je na tom
mjestu u S
1
nukleotid C, a u slijedu S
2
nukleotid A. Meutim, to ne znai da je jedina
promjena bila u S
1
iz A u C (A C), a da se u S
2
nije dogodila nikakva promjena na tom
mjestu, nego tek trebamo odrediti mogui broj promjena koje su se stvarno dogodile, a mi
vidimo samo konani rezultat. Ovisno o tome koliko je vremena proteklo te kojom su se
brzinom odvijale promjene na promatranom mjestu u sljedovima S
1
i S
2
, mogui su razni
scenariji, npr. u slijedu S
1
: A G C, a u slijedu S
2
: A T C A.
Kako bi se odredio stvaran broj evolucijskih promjena za promatrani par sljedova,
razvijeni su mnogi matematiki modeli. Najpoznatiji meu njima su: Jukes-Cantorov
model (Jukes & Cantor, 1969), Kimurin model (Kimura, 1980), itd. te najopenitiji i
najsloeniji model, GTR model (Generalised time-reversible) (Tavar, 1986). Ovdje emo
izloiti najjednostavniji, odnosno, Jukes-Cantorov model za DNA sljedove. Slini modeli,
osim za DNA, postoje i za aminokiselinske sljedove.
7.3.1. Jukes-Cantorov model
Jukes-Cantorov model (Jukes & Cantor, 1969) je najjednostavniji model kojim se
procjenjuje stvarna evolucijska udaljenost, odnosno stvarni broj promjena izmeu
promatranih sljedova. Zbog svoje jednostavnosti prikladan je samo za odreivanje
evolucijske udaljenosti izmeu vrlo srodnih sljedova.
Osnovne pretpostavke na kojima se temelji ovaj model su:
1. Jednaka je frekvencija svih nukleotida u promatranim sljedovima, tj.

A
=
C
=
G
=
T
= 0.25
2. Supstitucijska stopa u jedinici vremena (eng. substitution rate) jednaka je za sve
nukleotide, tj. jednaka je vjerojatnost da e bilo koji nukleotid X mutirati u bilo koji
drugi nukleotid Y (X Y).
3. Nukleotidi u sljedovima su meusobno neovisni (eng. independently identically
distributed).

99

Sl. 7.3 Jukes-Cantorov model: vjerojatnost prijelaza iz jednog stanja u drugo, tj. vjerojatnost
prijelaza iz jednog nukleotida u drugi u jedinici vremena je oznaena s za sve nukleotide.
Vjerojatnost ostanka u istom stanju je 1-3.
Na Sl. 7.3 prikazan je model prijelaza iz jednog stanja u drugo, odnosno vjerojatnost
supstitucije jednog nukleotida drugim.
Sada emo izvesti vjerojatnost da se na nekom mjestu u slijedu, gdje je u trenutku t = 0 bio
neki nukleotid, u nekom kasnijem trenutku t > 0 na tom mjestu nalazi isti ili neki drugi
nukleotid. Izvod poinjemo pretpostavkom da je poetno stanje A (iako proizvoljno moe
biti bilo koje druge stanje/nukleotid), tj. da za t = 0 vrijedi P
A(0)
= 1.
Zatim promatramo trenutak t = 1. Neka je P
AA(1)
vjerojatnost prijelaza A A u trenutku
t=1. P
AA(1)
se jo moe krai pisati P
A(1)
, gdje je implicitno pretpostavljeno poetno stanje
(A), pa se poetno stanje ne navodi. Vrijedi (Sl. 7.3):
P
AA(1)
= p
AA
(t=1) = 1 - 3 (7.3)
U trenutku t = 1, ukupna vjerojatnost svih supstitucija A Y (A Y) iznosi 3, jer je
p
AC
(t=1) = p
AG
(t=1) = p
AT
(t=1) = (Sl. 7.3).
Openito, neka je s P
A(t)
oznaena vjerojatnost da je nukleotid u stanju A u trenutku t, a
neka je s P
A(t+1)
oznaena vjerojatnost da je nukleotid u stanju A u trenutku t+1. Vrijedi
sljedee:
1. Vjerojatnost da je na nekom mjestu u slijedu nukleotid A u trenutku t i da e ostati
nukleotid A i u trenutku t+1 je: (1 3)P
A(t)

2. Vjerojatnost da je na nekom mjestu u slijedu nukleotid X u trenutku t, gdje je X A
(dakle X = C, G, T) i da e zatim mutirati u nukleotid A u trenutku t+1 je: (1 P
A(t)
)
Konano, ukupna vjerojatnost da e na nekom mjestu u slijedu biti nukleotid A u trenutku
t+1 je P
A(t+1)
:
A C
G T
1-3


100
P
A(t+1)
= (1 3) P
A(t)
+ (1 P
A(t)
) (7.4)
P
A(t)
= P
A(t+1)
P
A(t)
= 3 P
A(t)
+ (1 P
A(t)
) = 4 P
A(t)
+ (7.5)
P
A(t)
momo zamijeniti s dp/dt, a P
A(t)
s p, pa izraz (7.5) moemo jednostavnije napisati
kao:
dp / dt = -4p + (7.6)
Iz (7.6) slijedi:
dt = dp / (-4p + ) (7.7)

t =

(7.8)
Konstantu C odreujemo prema poetnom uvjetu, tj. P
A(0)
= 1, to uvrstimo u (7.8) i
dobivamo:
C =

(7.9)
Zatim (7.9) uvrstimo u (7.8), iz ega slijedi:
t =

(7.10)
Konano,
p = P
A(t)
= P
AA(t)
=

(7.11)

101
Vjerojatnost P
AA(t)
, tj. vjerojatnost da je na nekom mjestu u slijedu, gdje je na poetku bio
nukleotid A, nakon vremena t ponovno nukleotid A opisana je izrazom (7.11). Iz P
AA(t)

odreujemo zatim P
AY(t)
kao vjerojatnost da se iz poetnog nukleotida A nakon vremena t
na istom mjestu nalazi nukleotid Y A (tj. Y = C, G ili T):
P
AY(t)
= 1 P
AY(t)
=

(7.12)
Odnosno,
P
AC(t)
= P
AG(t)
= P
AT(t)
=

(7.13)
Sada elimo odrediti evolucijsku udaljenost izmeu dva slijeda. Pretpostavit emo da je
zajedniki predak promatranog para sljedova u trenutku t=0 na nekom mjestu u slijedu bio
u stanju A. U trenutku t svaki od sljedovapotomaka bit e u stanju A s vjerojatnou
P
AA(t)
. Vjerojatnost da su oba slijeda u stanju A odreeno je s P
AA(t)
2
. Analogno, oba slijeda
e biti u stanju C s vjerojatnou P
AC(t)
2
, itd.
Neka je s I
(t)
oznaena vjerojatnost da su u oba slijedapotomka jednaki nukleotidi u
promatranom stupcu u trenutku t i da je na poetku na tom mjestu bio nukleotid A. Tada
vrijedi:
I
(t)
= P
AA(t)
2
+ P
AC(t)
2
+ P
AG(t)
2
+ P
AT(t)
2
=

(7.14)
Analogno, vjerojatnost da su u sljedovimapotomcima na promatranom mjestu razliiti
nukleotidi je:
p = 1 I
(t)
=

(7.15)
Vjerojatnost p predstavlja vjerojatnost pojave razliitih nukleotida u stupcima promatranog
para sljedova. p moemo zamijeniti uestalou promjena, odnosno relativnim brojem
razlika izmeu promatranog para sljedova.

102
Neka je s d oznaen relativni broj supstitucija od divergencije promatranog para sljedova.
Ako je 3t broj supstitucija u vremenu t na jednoj poziciji u jednom slijedu, tada je broj
supstitucija u oba slijeda:
d = 2 3t (7.16)
Ako uvrstimo (7.15) u (7.16), dobit emo konani izraz za evolucijsku udaljenost izmeu 2
slijeda prema Jukes-Cantorovom modelu:
d =

) (7.17)
Evolucijska udaljenost d predstavlja relativan broj supstitucija, a p se odreuje kao
relativan broj vidljivih razlika (odnosno, ukupan broj mutacija podijeljen s duljinom
poravnanja).
7.4. Metode za izgradnju filogenetskih stabala
Metode za izgradnju filogenetskih stabala moemo podijeliti u dvije osnovne skupine:
1. Metode temeljene na udaljenostima izmeu taksona
2. Metode temeljene na obiljejima taksona
Metode temeljene na udaljenosti polaze od pretpostavke da su blii (srodniji) organizmi
(odnosno, njihovi sljedovi) meusobno sliniji. Odreivanje evolucijske udaljenosti
izmeu parova sljedova polazi od relativnog broja razlika izmeu promatranih sljedova
(sliniji sljedovi imaju manji broj razlika) (poglavlje 7.3.). U ovoj su skupini najpoznatije
metode:
1. UPGMA (eng. Unweighted Pair Group Method with Arithmetic Mean) (Sokal &
Michener, 1958)
2. Metoda povezivanja susjeda (eng. Neighbour-Joining; NJ) (Saitou & Nei, 1987)

Metode temeljene na obiljejima mogu koristiti i morfoloka i molekularna obiljeja
(nukleotide ili aminokiseline). U ovoj skupini najpoznatije su:
1. Metoda najmanjeg broja evolucijskih promjena (eng. maximum parsimony)

103
2. Metoda najvee izglednosti (eng. maximum likelihood)
7.4.1. Mjera udaljenosti
Neka je D(i, j) udaljenost izmeu taksona i i j, to moemo krae zapisati kao D
ij
(nekad se
zapisuje i kao D
i,j
). Neka je X skup taksona. Da bi neka funkcija D: X X bila mjera
udaljenosti (eng. distance measure) treba vrijediti sljedee:
1. ne-negativnost udaljenosti: D
ij
0
2. udaljenost od nekog taksona i do sebe samog je 0: D
ii
= 0
3. simetrinost: D
ij
= D
ji
za taksone i j
4. nejednakost trokuta za taksone i, j, k: D
ij
+ D
jk
D
ik

Dodatni uvjet za aditivnost je:
5. nejednakost etverokuta za taksone i, j, k, l: D
ik
+ D
jl
= D
il
+ D
jk
D
ij
+ D
kl

7.5. Metode temeljene na udaljenostima izmeu taksona
7.5.1. UPGMA
UPGMA metoda (Unweighted Pair Group Method with Arithmetic Mean) (Sokal &
Michener, 1958) je metoda koja se oslanja na pretpostavku molekularnog sata, odnosno da
je evolucijska stopa konstantna u vremenu u cijelom stablu. Kao posljedica te
pretpostavke, udaljenost od svakog lista do korijena je jednaka.
Osnovna ideja ove metode je da se u svakom koraku dvije najslinije skupine taksona
(svaka skupina moe sadravati jedan ili vie taksona) spajaju u jednu skupinu (eng.
cluster). To se obavlja tako da se ili postojeoj skupini dodaje novi takson ili se dvije
postojee skupine meusobno spajaju (algoritam je prikazan na Sl. 7.4).
Neka je s d
i,j
oznaena udaljenost izmeu taksona i i j. Tada se slinost izmeu
promatranih skupina A i B odreuje prema njihovoj meusobnoj udaljenosti, koja se
rauna kao prosjek svih meusobnih udaljenosti lanova skupine A i lanova skupine B:



(7.18)
za svaki takson i /* inicijalizacija */

104
C
i
= {i} /* inicijalno svaka skupina C
i
sadri samo i-ti takson */
d(C
i
, C
j
) = d
i,j

h(i) = 0 /* visina i-tog taksona u stablu */
kraj
Ponavljaj sve dok ima taksona koji nisu dodani u stablo
Izmeu svih skupina pronai C
i
i C
j
tako da je d(C
i
, C
j
) minimalna
Dodati novu skupinu C
k
koja zamjenjuje C
i
i C
j

Dodati u stablo novi vor N
i,j
tako da je visina h(N
i,j
)= d(C
i
, C
j
) /* izraz (1) */
d(C
i
, N
i,j
) = h(N
i,j
) h(C
i
) /* povezati C
i
i N
i,j
*/ /* izraz (2) */
d(C
j
, N
i,j
) = h(N
i,j
) h(C
j
) /* povezati C
j
i N
i,j
*/ /* izraz (3) */
za sve C
l
C
k

d(C
k
, C
l
) = (|C
i
| d(C
i
, C
j
) + |C
j
| d(C
j
, C
l
)) / (|C
i
| + |C
j
|) /* izraz (4) */
kraj
kraj
Sl. 7.4 Algoritam UPGMA
S obzirom da je ovo jedna od najjednostavnijih metoda za izgradnju filogenetskog stabla,
koristi se npr. za izgradnju inicijalnog stabla (eng. guide tree) kao pomo drugim
sloenijim i preciznijim metodama za izgradnju filogenetskog stabla ili za odreivanje
poravnanja vie sljedova odjednom.
Njezina je vremenska sloenost O(n
2
) za n taksona.

Primjer
Neka je zadan skup taksona A, B, C i D te matrica udaljenosti kao na Sl. 7.5. U 1. koraku
vidimo da je, izmeu svih moguih parova taksona, najmanja udaljenost izmeu taksona A
i B, pa se oni prvi grupiraju zajedno. Kao rezultat dobivamo stablo s listovima A i B te
vorom (A, B), koji predstavlja zajednikog pretka. Prema izrazu iz UPGMA algoritma
(Sl. 7.4; izraz (1)) raunamo udaljenosti od A i B do vora (A, B) i one iznose polovicu
njihove meusobne udaljenosti, odnosno d(A, B) / 2 = 1 (Sl. 7.4; izrazi (2) i (3)). Oba lista
su jednako udaljena od vora (A, B), jer UPGMA koristi pretpostavku molekularnog sata
da je evolucijska stopa jednaka u vremenu i u svim granama, pa e u konanom rezultatu
udaljenost od svakog lista do korijena biti jednaka.

105
U 2. koraku, kreemo od matrice koja sada ima tri taksona (A, B), C i D, gdje se A i B
promatraju zajedno kao jedna skupina (ili grozd; eng. cluster). Udaljenosti od C i D do
novog vora (A, B) su izraunate prema izrazu iz UPGMA algoritma (Sl. 7.4; izraz (4)). U
ovom se koraku u stablo dodaje novi vor ((A, B), C), jer su, prema matrici udaljenosti,
najmanje udaljeni takson (A, B) i takson C.

Sl. 7.5 UPGMA primjer (1. i 2. korak)
U posljednjem, 3. koraku, (Sl. 7.6) dodaje se u stablo preostali takson (D) te korijen stabla.
Kao to i oekujemo za UPGMA, svi listovi su jednako udaljeni od korijena (ta udaljenost
iznosi 4.67).

Sl. 7.6 UPGMA primjer (3. korak)
A B C D
A 0 2 4 6
B 2 0 8 10
C 4 8 0 12
D 6 10 12 0
A B
(A,B)
1 1
(A,B) C D
(A,B) 0 6 8
C 6 0 12
D 8 12 0
(1 4 + 1 8) / 2 = 6
A B
(A,B)
C
((A,B), C)
1. korak
2. korak
(1 6 + 1 10) / 2 = 8
1
2 3
h(N
A,B
)= d(A, B) / 2
= 2 / 2 = 1
h(N
AB,C
)= d(AB, C) / 2 = 3
((A,B),C) D
((A,B),C) 0 9,33
D 9,33 0
3. korak
A B
(A,B)
C
((A,B),C)
D
(((A,B),C),D)
4.67 3
1
(2 8 + 1 12) / (2 + 1) = 9,33
1,67
2

106
7.5.2. Metoda povezivanja susjeda
Metoda povezivanja najbliih susjeda (eng. Neigbor-Joining) (Saitou & Nei, 1987)
razlikuje se od UPGMA po tome to osim topologije, odreuje i duljinu grana
filogenetskog stabla (kod UPGMA je, zbog pretpostavke molekularnog sata, jednaka
udaljenost svih listova do korijena stabla). U ovoj metodi se polazi od ideje da je u svakom
koraku minimiziran zbroj duljina grana, no konaan rezultat ne mora biti minimalan zbroj
duljina svih grana.
Postupak kree s inicijalnim stablom koje ukljuuje svih n taksona. Zatim se napravi
n(n1)/2 usporedbi kako bi se pronala dva najblia taksona, npr. A i B, koji e se zatim
tretirati kao jedan takson u daljnjim usporedbama. Koji e taksoni biti spojeni ovisi o
udaljenosti M izmeu taksona, gdje se M rauna iz inicijalnih udaljenosti taksona i njihovih
prosjenih udaljenosti od ostalih taksona (izrazi (7.19) i (7.20)).
Nakon to su odabrani najblii taksoni A i B, u stablo se dodaje novi vor koji povezuje
taj par: (A, B). Zatim se odreuju udaljenost taksona A i B do novog vora (A, B) te
udaljenost svih ostalih vorova X (X A, B) do novog vora (A, B). Postupak se ponavlja
dok se ne dodaju svi taksoni, odnosno, dok se ne odrede sve grane (dok n ne postane 2).
Vremenska sloenost metode je O(n
3
) za n taksona.
Neka je s D
ij
oznaena originalna udaljenost izmeu taksona i i j. Neka je S
i
zbroj
udaljenosti vora i do ostalih vorova (analogno se odreuje i S
j
). Prosjenu "korigiranu"
udaljenost vora i do ostalih vorova dobijemo dijeljenjem S
i
s n2 (7.19).
Originalne udaljenosti D
ij
pretvaramo u udaljenosti za izgradnju filogenetskog stabla, M
ij

(7.20). Meu M
ij
traimo minimum, kako bi odredili koji e i i j biti prvi spojeni. Ako ima
vie jednakih minimalnih M
ij
, tada proizvoljno odabiremo bilo koji od njih.

(7.19)


(7.20)
Ako su prema mjeri M najblii taksoni A i B (tj. M
AB
je minimalna vrijednost), onda njih
spajamo i zamjenjujemo novim vorom X. Nakon toga za A i B raunamo udaljenosti do

107
novog vora X (7.21) te takoer nove udaljenosti svih ostalih taksona Y (Y A, B) do X
(7.22).

(7.21)

(7.22)
Primjer
Neka je zadan skup taksona A, B, C i D (n = 4) te njihove meusobne udaljenosti u matrici
udaljenosti D, kao na Sl. 7.7 u 1. koraku. Kako bi se dobile vrijednosti koje predstavljaju
elemente matrice M, prvo se izraunaju sume S
i
, te zatim M
ij
vrijednosti (Sl. 7.7, 1. korak).
Izmeu M
ij
vrijednosti, odabire se najmanja. S obzirom da i M
AD
i M
BC
imaju jednaku
minimalnu vrijednost -19, proizvoljno odabiremo M
AD
, to znai da smo u 1. koraku
odabrali taksone A i D kao najblie susjede, koje emo zamijeniti novim vorom X.
U 2. koraku odreujemo udaljenosti taksona A i D do zamjenskog vora X (izraz (7.21)) te
udaljenosti preostalih vorova B i C do novog vora X (izraz (7.22)) te s tim vrijednostima
oblikujemo novu matricu udaljenosti koja sada ima tri taksona (tj. n' = 3).

Sl. 7.7 Metoda povezivanja susjeda primjer (1. i 2. korak)
U 3. koraku raunamo nove M
ij
vrijednosti, uz smanjeni broj taksona: n' = 3. S obzirom da
su u ovom koraku sve M
ij
vrijednosti jednake, proizvoljno odabiremo vorove X i B koje
A B C D
A 0 6 10 6
B 6 0 8 10
C 10 8 0 12
D 6 10 12 0
n = 4, S
A
= 22, S
B
= 24, S
C
= 30, S
D
= 28
M
AB
= D
AB
(S
A
+ S
B
) / 2 = 6 23 = -17
M
AC
= -16, M
AD
= -19 odaberemo npr. M
AD
M
BC
= -19, M
BD
= -16
M
CD
= -17
Uvodimo novi vor X:
D
AX
= D
AD
/ 2 + (S
A
- S
D
) / 4 = 1.5
D
DX
= D
AD
/ 2 + (S
D
- S
A
) / 4 = 4.5
D
CX
= (D
AC
+ D
DC
- D
XA
- D
XD
) / 2
= (10 + 12 1.5 4.5) / 2 = 8
D
BX
= (D
AB
+ D
DB
- D
XA
- D
XB
) / 2
= (6 + 10 1.5 4.5) / 2 = 5
X B C
X 0 5 8
B 5 0 8
C 8 8 0
A
D
X
1.5
4.5
1. korak
2. korak

108
emo u ovom koraku spojiti i zamijeniti novim vorom Y (Sl. 7.8; 3. korak). U 4. koraku
raunamo udaljenost od vorova X i B do novog vora Y (izraz (7.21)) te udaljenost
preostalog vora C do vora Y (izraz (7.22)). Time su odreene duljine svih grana u stablu
i broj promatranih taksona se smanjio na n'' = 2, ime zavravamo postupak. Konano
stablo prikazano je na Sl. 7.8 (4. korak) i u stablu su ucrtane duljine grana. Ovakvo stablo
je neukorijenjeno, odnosno ne poznajemo tijek vremena, nego samo topoloke odnose
izmeu taksona.

Sl. 7.8 Metoda povezivanja susjeda primjer (3. i 4. korak)
7.6. Metode temeljene na obiljejima
7.6.1. Metoda najmanjeg broja evolucijskih promjena
Metoda najmanjeg broja evolucijskih promjena (mutacija) (eng. maximum parsimony)
koristi princip Occamove otrice (eng. Occam razor's principle), tj. koristi se princip da je
najjednostavnije rjeenje vjerojatno ispravno.
U ovom je postupku cilj pronai filogenetsko stablo kojime se mogu opisati promatrani
sljedovi tako da izgraeno stablo odraava minimalan broj evolucijskih promjena. S
obzirom da je rije o NP-problemu, ovaj postupak nije prikladan za velike skupove
podataka. Takoer, ovaj postupak ne generira eksplicitne mjere udaljenosti izmeu
zadanog skupa taksona.
X B C
X 0 5 8
B 5 0 8
C 8 8 0
n' = 3, S
B
= 13, S
C
= 16, S
X
= 13
M
XB
= D
XB
(S
X
+ S
B
) / 1 = 5 (13 + 13) / 1 = -21
M
XC
= D
XC
(S
X
+ S
C
) / 1 = 8 (13 + 16) / 1 = -21
M
BC
= D
BC
(S
B
+ S
C
) / 1 = 8 (13 + 16) / 1 = -21
Uvodimo novi vor Y:
D
XY
= D
BX
/ 2 + (S
X
- S
B
) / 2 = 2.5
D
BY
= D
BX
/ 2 + (S
B
- S
X
) / 2 = 2.5
D
CY
= (D
BC
+ D
XC
- D
BX
) / 2 = 5.5
Y C
Y 0 5.5
C 5.5 0
D
A
X
B
Y
1.5
4.5
2.5
2.5
5.5
C
3. korak
4. korak

109
Osnovna ideja postupka je za zadani skup taksona (sljedova) izgraditi sva mogua
filogenetska stabla te pronai ono koje ukljuuje najmanji broj evolucijskih promjena.
Zadani skup ine poravnati sljedovi, tj. matrica n x m, gdje je n broj sljedova, a m duljina
poravnatih sljedova. Za svaki promatrani stupac matrice, koja predstavlja poravnanje,
potrebno je odabrati ono stablo koje ukljuuje minimalan broj promjena. Nakon to se za
sve stupce u poravnanju pronau najbolja stabla, konani rezultat je stablo za koje je
ukupno po svim stupcima bilo najmanje promjena.
Kako bi se ubrzao postupak, u poravnanju se promatraju samo tzv. informativni stupci
(eng. informative site), tj. oni za koje vrijede sljedea dva uvjeta:
1. U tom stupcu su barem 2 tipa nukleotida.
2. Svaki od tipova nukleotida, koji se pojavljuje u stupcu, zastupljen je u barem 2 slijeda
u poravnanju.
1. primjer
Zadana su 4 slijeda: S
1
, S
2
, S
3
i S
4
te njihovo poravnanje kao u Tablica 7.1. Stupci 1 i 3 su
informativni, jer se u oba stupca pojavljuju po 2 tipa nukleotida svaki u dva slijeda. Na
primjer, u 1. stupcu nukleotid A pojavljuje se u sljedovima S
1
i S
2
, a nukleotid C u S
3
i S
4
.
Stupac 4 nije informativan, jer su svi nukleotidi u stupcu isti, tj. imaju vrijednost C.
Stupac 2 nije informativan, jer se nukleotid A nalazi na tom mjestu u slijedu S
1
, a u svim
drugim sljedovima se nalazi nukleotid C. S obzirom da se koristi pretpostavka da je
najvjerojatniji dogaaj onaj koji ima najmanje promjena (tj. mutacija), ovdje moemo
pretpostaviti da je u slijedu S
1
dolo do mutacije nukleotida C u A, pa bi svako od tri
mogua stabla ukljuivalo promjenu na tom mjestu, to znai da nam takva promjena ne
nosi nikakvu novu informaciju koje bi stablo bilo najvjerojatnije.
Tablica 7.1 Poravnanje sljedova S
1
, S
2
, S
3
i S
4
.
1 2 3 4
S
1
A A C C
S
2
A C A C
S
3
C C A C
S
4
C C C C


110
2. primjer
Zadana su 4 slijeda: S
1
, S
2
, S
3
i S
4
i njihovo poravnanje kao u Tablica 7.1. Za 4 zadana
slijeda mogua su 3 neukorijenjena filogenetska stabla (Sl. 7.9). Svako od moguih stabala
promatrat emo za stupce 1, 2 i 3. Stupce 1 i 3 emo promatrati zato to su informativni, a
stupac 2 kako bi prikazali da neinformativni stupci ne nose nikakvu informaciju.

Sl. 7.9 Tri mogua neukorijenjena stabla za 4 slijeda: S
1
, S
2
, S
3
i S
4
.
Kreemo s 1. stupcem i promatramo minimalan broj promjena za svako od moguih
stabala. Kao to je vidljivo na Sl. 7.10, stablo 1 moemo konstruirati samo s jednom
promjenom. U vorovima su oznaeni nukleotidi koji su pretpostavljeni predci nukleotida
u listovima tako da je broj promjena minimalan. Npr. za stablo 1 u voru koji spaja
sljedove S
1
i S
2
pretpostavljamo da se nalazi nukleotid A, jer time bi dobili najmanji broj
promjena (preciznije: ne bi se dogodila niti jedna promjena s obzirom da je nukleotid A u
1. stupcu u sljedovima S
1
i S
2
). Analogno tome, pretpostavljene minimalne promjene
oznaene su u stablima 2 i 3 te pretpostavljene vrijednosti nukleotida u unutarnjim
vorovima. Vidljivo je (Sl. 7.10), dakle, da stablo 1 objanjava stupac 1 s najmanjim
brojem promjena (samo s jednom promjenom), dok stabla 2 i 3 imaju po 2 promjene.

Sl. 7.10 Broj promjena za svako od tri mogua stabla za 1. stupac u poravnanju
S
1
S
2
S
3
S
4
S
1
S
3
S
2
S
4
S
1
S
4
S
2
S
3
S
1
S
2
S
3
S
4
A C
S
1
S
3
S
2
S
4
A A
S
1
S
4
S
2
S
3
A A
Stablo 1: 1 promjena Stablo 2: 2 promjene
Stablo 3: 2 promjene

111
Analogno 1. stupcu, promatramo sva tri mogua stabla i za 2. i za 3. stupac (Sl. 7.11; Sl.
7.12). Za 2. stupac vidimo na Sl. 7.11 da svako od moguih stabala sadri samo jednu
promjenu, odnosno, da za ovaj stupac ne moemo dobiti informaciju koje bi stablo najbolje
opisivalo filogenetske odnose skupa sljedova (dakle, 2. stupac nije informativan).

Sl. 7.11 Broj promjena za svako od tri mogua stabla za 2. stupac u poravnanju

Sl. 7.12 Broj promjena za svako od tri mogua stabla za 2. stupac u poravnanju
Za 3. stupac vidimo na Sl. 7.12 da stabla 1 i 2 sadre dvije promjene, a stablo 3 samo jednu
promjenu. Dakle, 3. stupac u poravnanju najbolje je opisan stablom 3.
Ako sada prebrojimo sve promjene po informativnim stupcima (1. i 3. stupac) za sva
mogua stabla, vidimo da stabla 1 i 3 ukljuuju ukupno 3 promjene, a stablo 2 ukljuuje
ukupno 4 promjene. Iz toga zakljuujemo da metodom najmanjeg brojeg evolucijskih
promjena stabla 1 i 3 daju najbolja rjeenja.

S
1
S
2
S
3
S
4
C C
S
1
S
3
S
2
S
4
C C
S
1
S
4
S
2
S
3
C C
Stablo 1: 1 promjena
Stablo 2: 1 promjena
Stablo 3: 1 promjena
S
1
S
2
S
3
S
4
A A
S
1
S
3
S
2
S
4
A A
S
1
S
4
S
2
S
3
C A
Stablo 1: 2 promjene
Stablo 2: 2 promjene
Stablo 3: 1 promjena

112
7.7. Literatura
Cavalli-Sforza,L.L. & Edwards,A.W. (1967) Phylogenetic analysis. Models and estimation
procedures. Am. J. Hum. Genet., 19, 233257.
Darwin,C. (1859) On the Origin of Species by Means of Natural Selection, Or, The
Preservation of Favoured Races in the Struggle for Life J. Murray.
Darwin,C. & Wallace,A. (1858) On the Tendency of Species to form Varieties; and on the
Perpetuation of Varieties and Species by Natural Means of Selection. J. Proc. Linn.
Soc. Lond. Zool., 3, 4562.
Dayrat,B. (2003) The Roots of Phylogeny: How Did Haeckel Build His Trees? Syst. Biol.,
52, 515527.
Haeckel,E. (1866) Generelle morphologie der organismen ... Georg Reimer.
Jukes,T. and Cantor,C. (1969) Evolution of protein molecules. In, Mammalian Protein
Metabolism. Academic Press, New York, pp. 21132.
Kimura,M. (1980) A simple method for estimating evolutionary rates of base substitutions
through comparative studies of nucleotide sequences. J. Mol. Evol., 16, 111120.
Mendel,J. (1865) Versuche ber Plflanzenhybriden. Verhandlungen Naturforschenden
Vereines Brnn, IV, 347.
Pevsner,J. (2009) Bioinformatics and functional genomics 2nd ed. Wiley-Blackwell,
Hoboken, N.J.
Saitou,N. & Nei,M. (1987) The neighbor-joining method: a new method for reconstructing
phylogenetic trees. Mol. Biol. Evol., 4, 406425.
Sokal,R. & Michener,C. (1958) A statistical method for evaluating systematic
relationships. Univ. Kansas Science Bull., 38, 14091437.
Tavar,S. (1986) Some Probabilistic and Statistical Problems in the Analysis of DNA
Sequences. In, American Mathematical Society: Lectures on Mathematics in the
Life Sciences. Amer Mathematical Society, pp. 5786.





113
8. Sastavljanje genoma
8.1. Izazov sastavljanja
Zamislimo da imamo 10 primjeraka diplomskoga rada majke napisanoga na pisau mainu
i kopiranog prije 25 godina. U obitelji se to uva kao posebna vrijednost. Meutim, mlai
brat jednoga dana elei isprobati novu mainu za sjeckanje papira svih 10 primjeraka
sasjekao u sitne trake po retcima i odnio u kontejner za stari papir. Kasnije, kad je shvatio
to je uinio brzo je odjurio i pokupio sve trake koje uspio nai i sada ih eli natrag
sastaviti. Problem je to je veina traka oteena neke su potrgane na vie dijelova, neke
neprepoznatljive, a neke su zaostale u kontejneru. Da li je mogue da sastavi barem jednu
ispravnu kopiju te istu skenira ili prepie i tako sauva za nasljednike? Slian posao je
sastavljanje niza ljudskoga genome od sekvenciranih podataka, jedino bi knjiga imala oko
milijun stranica. Sreom, brat moe raunati na vae poznavanje algoritama.
itanje genome je od otkria strukture DNA predstavljalo velik izazov za znanstvenike. S
vremenom su razvijeni ureaji za itanje koji su s vremenom postajali sve bri i jeftiniji, no
ostao je problem da su oni ogranieni na samo kraa oitanja. Stoga u zadnjih 20 godina
velik izazov predstavlja kako sastaviti ta kratka oitanja u jedinstvenu sekvencu. Isto tako,
gotovo se iskljuivo koriste metode temeljene shotgun sekvenciranju cijeloga genoma pri
emu nemamo nikakvu informaciju o poretku pojedinih regija. Dodatnu sloenost
predstavljaju danas prevladavajui ureaji druge generacije koji daju oitanja dugaka od
nekoliko desetaka do par stotina nukleotida. Novi ureaji tree generacije koji proizvode
dulja oitanja (reda veliine nekoliko tisua nukleotida) imaju vei postotak greke to
zahtijeva ponavljanje postupka oitanja i sastavljanja u cilju odreivanja ispravnog poretka
nukleotida u DNA slijedu. ak i za dulja oitanja s dobrom kvalitetom postupak
sastavljanja e ostati zahtijevan. Primjer je sastavljanja genoma koji do sada nisu poznati.
Taj postupak se naziva de novo sastavljanje. Drugi primjer je metagenomika kada imamo
DNA uzorke od razliiti genoma, od kojih neki mogu biti do sada nepoznati i gdje moramo
sastaviti zasebne genome od dobivenih oitanja. U ovom sluaju postupak e moi biti
olakan jedino pronalaskom tehnologija koja e moi proitati oitanja dugaka reda
veliine milijun nukleotida ili razdvojiti genome iz uzorka.

114
Kao to je navedeno u poglavlju 1.2.2 cilj algoritama za sastavljanja genoma potrebno je
dobivena oitanja pretvoriti u izlazni niz koristei preklapanja izmeu oitanja.
Preklapanje se svodi na preklapanje sufiksa jednoga niza s prefiksom drugoga. Primjer
preklapanja nekoliko oitanje je slijei:
AGCTGTCTGTC
GCTGTCTGTCGTC
GTCTGTCGTCATCGCATT
GTCGTCATCGCATTCTGTCT
U idealnom sluaju koristei ovakva preklapanja mogli bi pokuati sastaviti genom,
meutim razvoj tone i uinkovite metode sastavljanja genoma je zahtjevan zadatak iz
nekoliko razloga. Jedna od glavnih prepreka je velika prisutnost dugakih identinih ili
gotovo identinih sljedova. Te ponavljajue regije se nalaze raznim genomima ukljuujui
bakterije i biljke dok kod ovjeka one ine glavnu komponentu genoma. S obzirom da su
mnoge od tih regija dulje nego trenutne duljine oitanja, njihova ispravna identifikacija i
razdvajanje oitanja koja ih pokrivaju su oteane. Ispravno sastavljanje tih podruja
genoma je vrlo teko i njihovo prisustvo vrlo esto vodi k tome da su te regije krivo
sastavljene ili uope ne mogu biti sastavljene to dovodi do stvaranja procijepa u
rezultantom slijedu. Druga prepreka su greka oitanja koje nastaju zbog potrebe novih
ureaja da to bre identificiraju nukleotide u oitanjima. Alati za sastavljanje moraju
dozvoljavati odreeni razinu greke oitanja. Meutim te greke u oitanjima mogu
uzrokovati lano pozitivna ujedinjavanja pojedinih oitavanja. Time moe nastati tzv.
kimerno sastavljanje kod kojeg su dva dijela genoma spojena makar u prirodi su oni
meusobno jako udaljeno.
Zbog jednostavnosti veina alata za sastavljanje genoma koriste krai podnizove oitanja
koja se nazivaju k-torke. K-torka je niz od oitanih nukleotida pri emu je k bilo koji
pozitivni cijeli broj. Na primjer u preklapanjima se gleda da li dva oitanja dijele k-torke
umjesto da pokuaju preklopiti cijela oitanja. Vjerojatnost da stvarno preklapanja se
prostire kroz dijeljene k-torke ovisi o vrijednosti k, duljini preklapanja i postotku pogreke
oitanja. Prikladna vrijednost k treba biti dovoljno velika da veina lanih preklapanja ne
dijele k-torke na sluajan nain i dovoljno mala da veina stvarnih preklapanja dijele k-
torke. Izbor k treba biti robustan na varijacije u pokrivanju oitanja i tonosti.

115
Za sastavljanje genoma postoje dva osnovana pristupa. Jedan se koristi kada radimo
ponovno sekvenciranja genoma u sluaju da je genom ve odreen. U tome sluaju
dovoljno je da samo mapiramo oitanja na taj odreen genom, kojeg nazivamo referentni
genom. Druga metoda sastavljanja genoma je sastavljanje genoma kada referentni genom
nije poznat. Ta metoda se naziva de novo sastavljanje.
8.2. Osnove sastavljanja
Idealno sastavljeni genom bi imao samo jedan slijed bez nepoznatih ili nejasnih dijelova.
Naalost u praksi to esto nije sluaj pa sastavljeni genom je hijerarhijska struktura
podataka koja mapira oitanja u pretpostavljenu rekonstrukciju ciljanog genoma. U toj
strukturi osnova su oitanja koja se grupiraju u kontige (engl. contig), a kotinzi u skafolde
(engl. scaffold). Kontizi nastaju kao rezultat viestrukog poravnanja oitanja zajedno s
konsenzus sekvencom dobivenom iz tih iz izlaza tog poravnanja. Skafoldi se sastoje od
vie kontiga i definiraju njihov poredak, orijentaciju i veliinu procijepa meu njima. Alati
za sastavljanje genoma najee na izlazu osim skafolda daju dodatno i skup oitanja koja
se ne nalaze u sastavljenom genomu, te ona koja se nalaze samo djelomino. Najei
izlazni format podataka je FASTA detaljnije pojanjen u poglavlju 1.3.1. Osim A, C, T, G
u izlaznom podacima nalazimo i druge specijalne znakove od kojih su najei - (znak za
prazninu) i N (u sluaju kada ne moemo odrediti o kojem je nukleotidu rije). Praznine,
mogu predstavljati dodatne nukleotide koji se ne pojavljuju u konsenzusu poravnanja, ali
su prisutni u manjini oitanja, a uzastopni N-ovi obino predstavljaju procjepe izmeu
kontiga, te njihov broj predstavlja oekivanu duljinu procjepa.
NNNN
skafold
kontig 1 kontig 2

Sl. 8.1 Primjer skafolda. U ovom sluaju skafold se sastoji od dva kontiga od kojih se kontig1
nalazi ispred kontiga 2, a izmeu njih je procijep duljine 4 znaka
Kvaliteta sastavljenog genoma se mjeri veliinom i tonou njegovih kontiga i skafolda.
Veliina sastavljenog genoma se obino daje raznim statistikama kao to su maksimalna
duljina, prosjena duljina, kombinirana totalna duljina te N50. N50 definiramo kao duljinu
najkraeg kontiga u skupu koji sadri najdulje kontige ija kombinirana duljina predstavlja
najmanje 50% ukupne duljine sastavljenog genoma. Na primjer ako imamo duljine

116
pojedinih kontiga 10, 8, 6, 5, 3, 3, 2, 1, 1, 1, onda je N50 vrijednost jednaka 6. Ako brojimo
sve vrijednosti duljina 6 i vee dobijemo (10+8+6) = 24, to je vie od 50% od ukupne
duljine (10+8+6+5+3+3+2+1+1+1) = 40. Vano je primijetiti da se N50 kao mjera
usporedbe ima smisla koristiti jedino u sluaju kada raznim metodama pokuamo sastaviti
isti genom. Najbolja mjera kvalitete je poravnanje s referentnim slijedom u sluaju da je on
poznat.
8.3. Algoritmi za sastavljanje
8.3.1. Traenje najkraeg zajednikog nadniza
Zamislimo da originalni niz s=TATACATTAG i da iz njega dobijemo oitanja {ACA, ATA,
ATT, CAT, TAC, TAG, TAT, TTA}. Oitanja smo naveli u abecednom poretku jer kod
sekvenciranja ne znamo niti originalni niz niti poredak. Kako iz ovoga oitanja sastaviti
poetni niz? Oito je da emo koristiti sufikse i prefikse te gledati njihova preklapanja i
tako progresivno pokuati doi do poetnoga niza. Ovakav problem se naziva nalaenje
najkraega zajednikog nadniza (engl. Shortest common superstring SCS). Zajedniki
nadniz je niz kojem su svi poetni nizovi podnizovi. Vano je napomenuti da pronaeni
nadniz s' ne mora odgovarati poetnom nizu s.
Pronalaenje nadniza svih podnizova nije teko, jer ih moemo sve jednostavno povezati
jedan iza drugoga. Ono to je problematino je pronalazak najkraeg takvoga niza. U
stvari, pronalazak najkraega zajednikog nadniza je NP-teak problem i time za vei broj
nizova predstavlja problem koje nije optimalno mogue rijeiti u dostupnom vremenu.
Stoga se koriste heuristiki pristupi pri emu dominiraju pohlepni (engl. greedy) pristupi.
Formuliramo problem tako da za danu kolekciju od n nizova

nad skupom ,
naemo najkrai niz z takav da svaki od

se pojavljuje kao podniz od z (Frieze and


Szpankowski, 1998). U bioinformatici obino koristimo i formulaciju koju nazivamo
priblini SCS (engl. shortest common supersting) koji sadri priblino (npr. u smislu
Hammingove udaljenosti) originalne nizove

kao podnizove. Radi


jednostavnosti za sada emo koristiti prvu definiciju. Pohlepni algoritmi proizvode ukupno
preklapanje SCS-a koje nazivamo

i koje se obino razlikuje od optimalnoga


poravnanja

.

117
Ako pretpostavimo da su s=s
1
s
2
s
p
i t = t
1
t
2
t
r
nizovi nad istom konanom abecedom

gdje je veliina abecede. Isto tako piemo za duljinu x.


Definiramo preklapanje o(s,t) kao:


Ako je , onda

.
Ako je S skup svih nadnizova izgraenih nad nizovima

. Tada,


(8.1)
Osnovni algoritam za nalaenje SCS-a je
GREEDYSCS
1


2 repeat
3
4
5

;
6 until
Kd 8.1 Pseudokod pohlepnog traenja najdulje zajednikog nadniza
Ako se vratimo na poetni niz s=TATACATTAG i njegova oitanja {ACA, ATA, ATT, CAT,
TAC, TAG, TAT, TTA} i pokuamo koristei algoritam iz Kd 8.1 dobiti SCS:
ACA, ATA, ATT, CAT, TAC, TAG, TAT, TTA
ACA, ATA, ATT, CAT, TAC, TAG, TAT, TTA
ACAT, ATA, ATT, TAC, TAG, TAT, TTA
ACAT, ATAC, ATT, TAG, TAT, TTA
ACAT, ATAC, ATTA, TAG, TAT
ACAT, ATAC, ATTAG, TAT
ACAT, TATAC, ATTAG
ACATTAG, TATAC
TATACATTAG
Dobijemo toan niz, no moe se primijetiti da smo mogli dobiti krivo rjeenje da samo u
etvrtom koraku ujedinili nizove ACAT i ATAC i dobili bi ACATAC koji ne postoji u
originalnom nizu i vrlo vjerojatno bi ostali bez preklapajuih nizova prije zavretka. U tom

118
sluaju bi se moda mogli vratiti korak unatrag i pokuati popraviti ili unaprijed pokuati
predvidjeti ujedinjenja koja nas dovode u situaciju da nema daljih preklapanja. U ovom
sluaju smo imali samo 8 poetnih nizova i lako bi mogli dobiti na taj nain tono rjeenje,
no za velike broj nizova bi to bilo nemogue. Isto tako esto u praksi pojedina oitanja
nedostaju te neka od njih sadre pogrene nukleotide.
Prvi algoritmi za sastavljanje genoma su bili temeljeni na traenju SCS-a od oitanja
unutar pogreke . Formalnije, traimo najkrai niz R takav da za svako oitanje f
i
, postoji
takav podniz R[sp
i
, ep
i
] koji nije vei od |f
i
| razlika od ili f
i
ili f
i
c
. Osnovni problem sa SCS
algoritmima je u tome da u praksi oni loe barataju sa ponavljajuim regijama to esto
dovodi do prevelike kompresije niza R i on bude puno krae od polaznog genoma.
Prekomjerna kompresija moe primijetiti u regijama gdje ponavljajue regije imaju
neubiajno veliko pokrivanje u izlaznom rjeenju. Ovo sugerira da se to moe izbjei
formulirajui problem sastavljanja oitanja u izrazima pronalaska slijeda koji maksimizira
izglednost hipoteze da su njena oitanja uzorkovana duljinom poetnoga slijeda s danom
distribucijom.
8.3.2. Algoritmi nad grafovima
Moderni algoritmi za sastavljanje genoma su temeljeni na algoritmima nad grafovima.
Zavisno o nainu na koji definiramo graf razlikujemo osnovne dvije metode: Preklapanje-
Razmjetaj-Konsenzus (engl. Overlap-Layout-Consensus, OLC) metode temeljene na
grafu preklapanja i metode temeljene na de Bruijn grafovima.
Osnovu grafa ine vrhovi i bridovi koji povezuju vrhove. Vrhove obino prikazujemo
krugovima, a crtama bridove. Vrhovima i bridovima moemo pridruiti razliite atribute i
semantike. U sluaju da se bridovima moe proi samo u jednom smjeru takvi vrhovi i graf
se nazivaju usmjereni, a strelicama prikazujemo smjer grafa. Sl. 8.2 prikazuje primjer
usmjerenoga grafa s pet vrhova i bridovima izmeu njih. Svaki usmjereni brid predstavlja
vezu izmeu izvorinog i odredinog vrha. Skupina bridova tvori etnje koje posjeuju
vrhove u nekom redoslijedu tako da odredini vrh jednoga brida tvori izvorite za slijedee
vrhove. Primjer etnje je etnja od vrha P do vrha R: (P,Q),(Q,R). Isto tako moemo
primijetiti da nema puta od vrha R do vrha P. Staza je etnja pri emu je svaki brid u etnji
posjeen samo jedanput. Primjer staze je: (P,Q),(Q,R),(R,S),(S,Q), (Q,S),(S,T). Put je
etnja gdje je svaki vrh koji je dio etnje posjeen samo jedanput.

119

Sl. 8.2 Primjer grafa. Graf g s vrhovima (vorovima) V:{P,T,Q,S,R} i bridovima
E:{(P,T),(P,Q),(P,S),(Q,T),(S,T),(Q,S),(S,Q),(Q,R),(R,S)}
Zatvorena staza pozitivne duljine iji su vrhovi (osim krajeva) meusobno razliiti zove se
ciklus. Broj bridova kojima je povezan vrh naziva se stupanj vrha. Ukoliko su bridovi
usmjereni onda razlikujemo ulazni i izlazni stupanj.
Za konstrukciju grafa od sekvenciranih oitanja koristimo dva pristupa (Miller et al.,
2010). U prvom pristupu oitanja su pridijeljeni vrhovima, a ukoliko postoji preklapanje
izmeu dva vrha, izmeu njih postoji brid. Takav graf nazivamo graf preklapanja. U
drugom pristupu oitanja dijelimo na krae k-torke i njih smjetamo na bridove, a vrhovi
predstavljaju prefiks i sufiks od k-1 nukleotida k-torke. Na taj nain radimo s k-torkama
koje su obino krae od duljine oitanja i sve su jednake duljine. Sl. 8.3 prikazuje primjere
oba grafa za jedan slijed razlomljen u etiri oitanja.
aac
aaccgg accgga ccggac cggacg
acc ccg
aacc accg
cgg gga gac
cgga ggac ccgg
acg
gacg
aaccggac (a)
(b)
(c)

Sl. 8.3 Oitanja predstavljeno grafovima. (a) Od poetnoga slijeda radimo etiri oitanja duljine 6
(b) Graf preklapanja ima po jedan vrh za svako oitanje plus direktan brid za svaki par oitanja iji
se sufiks i prefiks preklapaju. S iscrtanim linijama oznaavamo preklapanja sadrana u drugim
preklapanjima (tzv. tranzitivna preklapanje) (c) de Buijn graf ima brid za svaku k-torku, a u

120
vrhovima se nalaze preklapanja od k-1 baza. U praksi se informacija u vrhovima ovoga grafa samo
implicitno pretpostavlja i sve je sadrano u bridu. Poetna sekvenca se moe lako rekonstruirati
preko puta u oba grafa.
Graf preklapanja predstavlja sekvencirana oitanja i njihova preklapanja. U grafu vrhovi
predstavljaju oitanja, a bridovi preklapanja. U praksi graf moe imati razliite elemente ili
atribute za razlikovanje 5' i 3' krajeva oitanja, slijed nukleotida i njegov reverzni
komplement za oitanja, duljinu oitanja i tip preklapanja (sufiks-prefiks ili jedno oitanje
sadrava drugo). Putovi kroz graf su potencijalni kontinzi koji mogu biti pretvoreni u
sekvencu. Putovi moraju imati zrcalne slike koje predstavljaju slijed koji je reverzni
komplement. Postoje dva naina za oznaavanje takvih grafova: sa zasebnim vrhovima za
krajeve ili sa zasebnim bridovima. Ukoliko postoje zasebni vrhovi onda putovi moraju
izai na suprotnom kraju oitanja u koje su uli. Ukoliko postoje zasebni bridovi za oba
lanca, onda put mora izai na istom lancu na kojem je i uao.
Kod De Bruijn grafova koriste se k-torke oitanja fiksne duljine zbog prirode samih
grafova. Najee se jedna k-torka predstavlja bridom dok se implicitno pretpostavlja da su
vrhovi koje povezuje taj brid k-1 prefiksi i k-1 sufikse te k-torke.
8.4. Preklapanje-Razmjetanje-Konsenzus pristup
Preklapanje-Razmjetanje-Konsenzus (engl. Overlap-Layout-Consensus, OLC) pristup je
bio tipian za sastavljanje oitanja dobivenih ureajima temeljenim na Sangerovoj
tehnologiji prve generacije. Meutim danas postaje opet popularan prije svega zbog
ureaja tree generacije koji proizvode dulja oitanja. Najpoznatiji alati za sastavljanje
temeljeni na ovome principu su Celera (Myers et al., 2000) i SGA (Simpson and Durbin,
2012).
Kod OLC pristupa, traenje puta u grafu se svodi na traenje puta koja prolazi kroz sve
vrhove u grafu tono jedanput. Pronalaskom takvoga puta cijeli slijed bi bio poznat. Ono
to je osnovni problem toga pristupa je da je problem traenja takvoga puta, koji se naziva
Hamiltonov put je NP potpun problem i stoga je potrebno koristiti heuristike kojima e se
graf to je mogue vie pojednostaviti i na taj nain doi do slijeda.

121
8.4.1. Preklapanje
Preklapanje ukljuuje meusobnu usporedbu svih oitanja. Postoji dva glavna pristupa
kojima moemo pristupiti ovom problemu. Koristiti dinamiko programiranje ili koristiti
neku od heuristikih metoda koristei pronai sjeme i proiri pristup.
U sluaju koritenja dinamikoga programiranja poeljno je koristiti algoritam preklapanja
objanjen u poglavlju 2.4. Ono to je potrebno napraviti je za svaki par oitanja s i t nai
njihovo preklapanje. Ako s l
i
oznaimo pojedinano oitanja, s L ukupnu duljinu genoma,
sloenost poravnanja svih parova oitanja moe se prikazati kao:
) ( ) ( ) ( ) (
2
,
L O L l O l l O l l O
j i
i j
j i i
i j i



Problem takvoga pristupa je to je bi sloenost takvoga pristupa bila kvadratna s duljinom
genoma. Zbog sporosti dinamikoga programiranja koriste se heuristike metode koje
moemo podijeliti u dvije skupine. Prvu skupinu predstavljaju metode koji oitanja dijele u
k-torke fiksne duljine, a drugu skupinu ine metode koje promatraju podnizove oitanja
koji ne moraju biti fiksne duljine. Kod obje skupine princip je slian, u prvom koraku se
napravi indeks za sve podnizove oitanja, odaberu kandidatna oitanja koja dijele
podnizove i naprave poravnanja koristei podnizove kao sjemena. Osjetljivost otkrivanja
preklapanja ovisi duljini k-torki, minimalnoj duljini poravnanja, doputenom nepreklapanju
na krajevima i minimalnom postotku slinosti traenom za poravnanje (Sl. 8.4). Ti
parametri imaju utjecaj na robusnost u sluaju vee greke oitanja i malog pokrivanja.
Poto su pojedina preklapanja neovisna, ova faza se moe izvoditi paralelno.

Sl. 8.4 Primjer preklapanja. Kod odreivanja preklapanja potrebno je postaviti ogranienja na
duljinu dijela koji se preklapa, identinost nukleotida u tome dijelu te maksimalno dozvoljenom
ostatku koji se ne preklapa na krajevima oitanja.
Za indeksiranje podnizova odnosno k-torki mogu se koristiti: raspreno adresiranje,
sufiksna stabla, sufiksna polja, i komprimirane strukture poput FM indeksa. Redoslijedom
kako su navedene metode indeksiranja odgovara i njihovom rangiranju prema brzini
AGCCTAGACCTACAGGATGCGCGGACACGTAGCCAGGAC
CAGTACTTGGATGCGCTGACACGTAGCTTATCCGGT
preklapanje (19 baza)
ostatak (6 baza)
ostatak % identinost= 18/19 % = 94.7%

122
pristupa podacima, ali utroku memorije pri emu je pristup rasprenom adresiranju brz, ali
nam za njegovu izgradnju i smjetaj treba najvea koliina memorije, dok je pristup FM
indeksu najsporiji ali nam treba i najmanje memorije za njegovu izgradnju i smjetaj.
Odabir indeksa e prije svega ovisiti o veliini genoma odnosno dostupnoj memoriji.
Jedna od prvih heuristikih metoda koritenih za preklapanja je metoda temeljena na
poopenim sufiksnim stablima (Gusfield, 1997). Metoda trai sve parove sufiks-prefiks
slaganja. Problem traenja je definiran na slijedei nain. Za dva niza s
i
i s
j
, bilo koji sufiks
od s
i
koji se slae s prefiksom od s
j
naziva se sufiks-prefiks slaganje. Za danu kolekciju
nizova S=s
1
,s
2
,,s
k
totalne duljine L, problem svih parova sufiks-prefiks je problem
nalaenja, za svaki ureeni par s
i,
s
j
S, najduljeg sufiks-prefiks slaganja s
i
i s
j
.
Koristei sufiksna stabla mogue je izraunati k
2
parova preklapanja u O(L+k
2
), uz
pretpostavku da je abeceda fiksna. Za potrebe algoritma uvodimo termin krajnjeg brida.
Brid nazivamo krajnjim ako je oznaen samo sa znakom za kraj niza. Jasno je da svaki
krajnji brid ima list na svome kraju, ali nisu svi bridovi spojeni na listove krajnji bridovi.
Za rjeavanje problema koristimo poopeno sufiksno stablo T(S) za k nizova iz skupa S.
Tijekom izrade stabla T(S), algoritam takoer gradi listu N(v) za svaki unutarnji vor v.
Lista N(v) sadri indeks i ako i samo ako v je vezan terminalnim bridom iji list je oznaen
sufiksom niza s
i
. Pojednostavljeno, N(v) sadri indeks i ako i samo ako je oznaka puta u v
kompletan sufiks niza s
i
. Sl. 8.5 prikazuje primjer poopenog sufiksno stabla za dva niza.
vor s oznakom puta ba ima listu N koja se sadri samo jedan indeks 1. Isto tako vor s
oznakom puta a ima listu N koja takoer sadri indeks 1. Sve ostale liste su prazne. U
ovome sluaju nema niti jednoga unutarnjega vora koji bi u listi imao indeks 2. Lista sa
moe konstruirati u linearnom vremenom za vrijeme ili nakon izgradnje T(S).

a
c$
2
ba$
1
abba$
1
c$
2
c$
2
bba$
1
$
1
ba$
1
ac$
2
bac$
2
$
1
a
b
$
1
$
2
a$
1
bba$
1
c$
2
$
1
$
2
(1,1)
(2,2) (1,4)
(1,3) (2,1)
(1,2)
(2,3) (1,5) (2,4)

123
Sl. 8.5 Primjer traenja maksimalnoga preklapanja nizova s=ABBA i t=BAC koristei poopeno
sufiksno stablo. Crvenom bojom su oznaeni listovi u kojima zavrava niz s, a s plavom listovi oni
u kojim zavrava niz t. Bridovi koji opisuju preklapanje dodatno su obiljeeni crveno.
Ako promatramo niz s
j
i fokusiramo se na put od korijena T(S) do lista j koji predstavlja
cijeli niz s
j
. Kljuno je za primijetiti da ako je v vor na tom putu i i je u N(v), onda oznaka
puta od v je sufiks od s
i
koji odgovara prefiksu od s
j
.

Na taj nain za svaki indeks i,
najdublji vor v na putu do lista j takav da identificira najdulje poklapanje
sufiksa od s
i
i prefiksa od s
j
. Oznaka puta u v je najdulje sufiks-prefiks slaganje od (s
i
, s
j
).
Lako je vidjeti da jednom etnjom od korijena do lista j moemo pronai najdublje vorove
za sve .
Moemo primijetiti da ovako dizajnirani algoritam moe efikasno pokupiti potrebna
sufiks-prefiks slaganja koristei pretraivanjem prvo u dubinu (engl. depth-first search
DFS) stabla T(S). Za vrijeme pretrage on odrava k stogova, jedan za svaki niz. Za vrijeme
pretraivanja prvo u dubinu, gdje neki vor v obilazimo prvi put, stavljamo v na i-ti stog,
za svaki . Kada list j (koji predstavlja cijeli niz s
j
je dostignut, provjerimo k
stogova i zabiljeimo za svaki indeks i trenutni vrh i-tog stoga. Nije teko vidjeti da vrh
stoga i sadri vor v koji odreuje sufiks-prefiks slaganje od (s
i
, s
j
). Ako je i-ti stog prazan,
onda ne postoji preklapanje izmeu sufiksa niza s
i
i prefiksa niza s
j
. Kada se vraamo
natrag DFS-om i naiemo na vor v, skinemo vrhove svih stogova iji indeks je u N(v).
Primijetimo da ukupan broj indeksa u svim listama N(v) je O(m). Broj bridova u T(s) je
takoer O(m). Svako skidanje i stavljanje sa stoga je pridrueno listu T(s) i za svaki list
imamo najvie jedno skidanje i jedno stavljanje na stoga. Stoga obilazak T(s) i
osvjeavanje stogova uzima O(m) vremena. Spremanje svakog od O(k
2
) odgovara se moe
napraviti u konstantnom vremenu. Stoga vremenska sloenost ovoga algoritma je O(m+k
2
).
U sluaju da imamo

parova nizova koji imaju duljinu sufiksa i prefiksa razliitu od


nula, koritenjem dvostrukih veza, moemo odravati vezane liste nepraznih stogova. U
tom sluaju kada list na stablu je dostignut tijekom obilaska, samo stogove na njegovoj listi
treba ispitati. Na taj nain, sva sufiks-prefiks slaganja mogu biti pronaena u O(m+k
'
)
vremenu. Vano je primijetiti da pozicija stoga unutar liste moe varirati zbog toga stog
koji mijenja se iz praznog u neprazni se mora vezati na jedan kraj liste. Radi toga moramo
u stogu uvati ime niza pridruenog tom stogu.

124
S obzirom da sufiksno polje zajedno s lcp (engl. longest common prefiks) strukturom je
ekvivalentno sufiksnom stablu (Abouelhoda et al., 2004; Ohlebusch and Gog, 2010),
koritenjem takve takvih struktura moemo postii istu sloenost pronalaska preklapanja
kao za sufiksna stabla uz neto veu konstantu, ali uz manji utroak memorije. Slino je i s
FM indeksom s time da je to struktura koja ima najsporiji pristup.
Gornji algoritam temeljen na sufiksnom stablu je temeljen na potpunom egzaktnom
prefiksa i sufiksa, meutim to esto nije sluaj stoga se danas primjenjuju, algoritmi koji
trae preklapanja i u sluaju nekoliko neslaganja u nukleotidima. Kao pristup se esto
koristi metoda da se podijeli oitanje u odreeni broj k-torki i onda se pokuava napraviti
ili potpuno ili djelomino preklapanje tih k-torki i na osnovu broja preklopljenih k-torki
ocjeni kvaliteta preklapanja (Vlimki et al., 2012; Simpson and Durbin, 2010). Vrlo esto
se i za odreeni broj kandidatnih preklapanja napravi dodatna provjera dinamikim
programiranjem.
8.4.2. Razmjetanje
U fazi preklapanja, svako oitanje se usporeuje sa svim ostalim oitanjima (u obje
orijentacije) u cilju pronalaska moguih odnosa izmeu oitanja. Faza razmjetanja nakon
toga odabire podskup parova preklapanja to odreuje poziciju svakoga oitanja u odnosu
na sva ostala.
Neka se specifino rjeenje opie rekonstruiranim slijedom R, a razmjetaj se sastoji od F
parova cijelih brojeva,

gdje

. i-ti par razmjetaja pokazuje da


f
i
je kopija podniza

ako

ili

inae. Na taj nain poredak


odreuju orijentaciju oitanja u razmjetaju, to u stvari predstavlja da li je f
i
dobivena iz R
ili njegova komplementarnog lanca. Kaemo da je poetna toka sp
i
(engl. start-point)
oitanja f
i
u razmjetaju je

, a njegova krajnja toka ep


i
(engl. end-point) je

. Da bi bio -validan razmjetaj mora zadovoljavati slijedea dva svojstva: (a)


svako oitanje moe biti poravnato sa svojim pridruenim podnizom s ne vie od |f
i
|
razlika i (b) svaki simbol od R mora biti pokriven nekim oitanjem. Potencijalni prostor
rjeenja je skup svih -razmjetaja i odabir onog najboljeg.
Za dani razmjetaj, imamo opaene distribucije poetnih toaka poravnanja:



125
to predstavlja proporciju oitanja koja poinju prije pozicije x. Neka je poznata poetna
distribucija uzorkovanja

. Na osnovi gornjih pretpostavki moemo formulirati problem


sastavljanja oitanja na slijedei nain. Uz dana oitanja i maksimalnu stopu pogreke
pronai rekonstrukciju R i -validnog razmjetaja oitanja ija opaena
distribucija oitanja

ima minimum relativne devijacije od

(Myers, 1995)
Vano je primijetiti da je problem opisan kao traenje maksimalne izglednosti -validnog
razmjetaja. Na taj nain razmatra se prostor rjeenja za zaumljeni najkrai zajedniki
nadniz oitanja. Cilj je da rae nego da evaluiramo razmjetaj na osnovu duljine
rekonstrukcije, traimo onaj najvie konzistentan s injenicom da poetne toke oitanja su
uzete uzdu duljine ciljanog slijeda s distribucijom

. Vano je naglasiti da

moe
biti bilo koja distribucija.
Na osnovu gornje formulacije u fazi razmjetanja odreujemo parove

unutar
tonosti koja je ovisna o . U konsenzus fazi se formira mjera konsenzusa viestrukog
poravnanja u svim podrujima gdje je prekrivanje dva ili vie u cilju odabira konsenzus
znaka za svaku poziciju rezultirajui rekonstrukcijom R. Tek kada je R izraunat u zadnjoj
fazi tona vrijednost parova

razmjetaja je poznata.
Graf preklapanje G je rezultat faze preklapanja. Taj graf modelira sva priblina preklapanja
dobivena nekim od algoritama za preklapanje. Svako oitanje se prikazuje vrhom, a svako
preklapanje bridom. Graf moe biti viestruki na nain da moe postojati vie od jednog
brida izmeu parova oitanja A i B. Ovo je rezultat da moe postojati znaajno preklapanje
izmeu A i B, ali i izmeu A i B
c
. Graf preklapanja modeliramo preko dijelova oitanja
i ukljuenih u preklapanje i zbog mogunosti reverznoga preklapanja potrebno
je imati direktni graf. Po konvenciji da preklapanje uvijek gledamo iz perspektive koji
ima orijentaciju prema naprijed dok orijentacija je promjenjiva. Potpuna specifikacija
preklapanja je postignuta specificiranjem (a) podnizova

svakoga oitanja ukljuenog u poravnanje i (b) i listu pozicija


neporavnatih simbola svakoga oitanja u poravnanju preklapanja. Kako je opisan iz
perspektive uvijek je sluaj da je

, ali u specifikaciji razmjetaja


.

je znak da je dolo do preklapanja izmeu

. esto se naziva -kodiranje poravnanja i dok postoje drugi naini


za kodiranja -kodiranje je najvie memorijski efikasno zbog toga to je rijetko vei od
10% .

126
Obzirom na oitanje B i podnizove ukljuene u preklapanje moemo definirati etiri
kategorije bridova. Sl. 8.6 prikazuje te kategorije. Lako je uoiti da se svi ostale kategorije
mogu opisati s ove etiri.
A
B
A
B
B
A
A
B
Brid
Preklapanje
Obuhvaanje
Regularni lastin rep
Prefiksni lastin rep
Sufiksni lastin rep
A B
A B
A B
A B

Sl. 8.6 Taksonomija tipova preklapanja. Kod obuhvaanja smjer B oitanja nije bitan (strelica moe
gledati prema lijevo ili prema desno).
Brid obuhvaanja modelira situacije kada je cijeli B poravnat s podnizom od A i oznaen je
usmjerenim bridom s dvije linije od A prema B. Svi drugi bridovi imaju oblik lastinog repa
pri emu prefiks ili sufiks jednoga brida je poravnat s prefiksom ili sufiksom drugoga.
Svaki takav brid u obliku lastinog repa je oznaen dvosmjernim bridom s jednom linijom.
Za prefiksni lastin rep, strelice su usmjerene prema

. Za sufiksni lastin rep, obje


strelice usmjerene su od

.
Kao rezultat preklapanja dobijemo dvosmjerni viestruki graf obuhvaanja i bridova u
obliku lastina repa. Svaki brid/preklapanje je dalje oznaen egzaktnim podnizom
ukljuenim u poravnanje preklapanja i njegovim -kodiranjem. Sl. 8.7 prikazuje primjer
izgraenog grafa na osnovu njegovih preklapanja.

127
Razmjetaj:
A
B
C
E
F I
G
D H
Graf:
A
B D E G
C
F H
1 2 3 4 5
6 7
8

Sl. 8.7 Primjer izgradnje grafa iz preklapanja
Slijedei korak je pojednostavljenje grafa koje da bi opisali trebamo uvesti jo par oznaka.
Pretpostavimo da je

brid u G. Neka

oznaava

ako je ili


inae. Slino definiramo

tako da ne moramo se muiti s time koje


oitanje ima ulogu A oitanja u kodiranju . Nadalje neka je

i
neka je

ureeni graninici podniza koji se preklapa npr


. Na kraju, neka je

broj
simbola u g koji nisu u preklapanju i neka je

istina ako i samo ako je preklapanje


podniza od g sufiks od g. Primijetiti da za bridova lastinog repa,

je istina ako i
samo ako je strelica u g usmjerena od g.
Nastavljamo s nizom redukcija grafa preklapanja na nain da smanjujemo broj vrhova i
bridova bez promjene prostora potencijalnih rjeenja. Intuicija je da sastavimo sve dijelove
problema koji se ujedinjuju na jedinstveni nain, i onda baratamo s jasnim kombinatornim
izborima koji preostanu u reduciranom grafu blokova.
Sl. 8.8 Redukcija grafa preklapanjaSl. 8.8 prikazuje tri osnovne transformacije grafa
preklapanja. Transformacije su primijenjene neovisno i u slijedeem poretku:
1. Uklanjanje ukljuenih oitanja: Svako oitanje ukljueno nekim drugim se uklanja
iz grafa G zajedno sa svim bridovima spojenim s njime. Lista ti oitanja se sprema
tako da mogu biti ponovo koriteni kasnije u konsenzus fazi. Nakon ovoga koraka
ostaju samo vorovi u obliku lastinog repa.

128
2. Uklanjanje tranzitivnih bridova. Ako su

meusobno
konzistentna preklapanja izmeu oitanja f, g i h, onda se brid uklanja.
Preklapanja su meusobno konzistentna ako preklapanje izmeu f i h
podrazumijevano nastavljanjem poravnanja i

je isto kao od unutar stope


pogreke . Jednostavna formulacija dovoljna za praktine primjene je slijedea:


gdje je mala konstanta koja pomae uhvatiti fluktuacije u distribuciji pogreka
kada je duljina preklapanja mala. Odabir da bude 3 je u praksi velikoduno.
3. Ujedinjavanje. Ukoliko postoji brid

takav da za svaki drugi brid


pridruen f,

i za svaki drugi brid

pridruen g
.

, onda ujedinjujemo f i g u jedan vrh koji predstavlja kontig od f


preklopljenim na g s . Pojednostavljeno, uvjeti za ujedinjavanje su da strelice u f
svih bridova pridruenih f osim moraju pokazivati u suprotnom smjeru od onoga
od , i isto mora biti istina za strelice u g. Dobiveni graf se naziva graf blokova.
U drugom koraku treba biti posebno paljiv da se prvo obiljee svi tranzitivni vrhovi, a tek
onda uklanja obiljeene. Ovo je zbog toga to tranzitivni brid moe podrazumijevati da je
neki drugi brid tranzitivan.
8.4.3. Konsenzus
Nakon razmjetanja, OLC treba proglasiti konsenzusni slijed na osnovu viestrukog
poravnanja sljedova dobivenih u svakom bloku dobivenom u fazi razmjetanja.




129

Poetni graf:
Nakon koraka 1:
Nakon koraka 2:
Blok
Nakon koraka 3:


Sl. 8.8 Redukcija grafa preklapanja (Myers, 1995)

130
8.5. Sastavljanje koristei de Bruijn grafove
8.5.1. Problem sastavljanja genoma kratkim oitanjima
Pojavom novih tehnologija sekvenciranja (tzv. Sekvenciranje slijedee generacije) koje su
omoguavale bre sekvenciranje s manjim trokovima, javili su se i novi izazovi za
sastavljanje genoma. Osnovna karakteristika ovih ureaja je da su izlazna oitanja kraa,
nego ona dobivena Sangerovom metodom. Posljedino, potrebno je imati puno vee
pokrivanje. Za razliku od 8 pokrivanja u projektima koji koriste Sangerovo sekvenciranja,
projekti koji koriste oitanja slijedee generacije esto imamo 30, 40 i 50 pokrivanje.
U teoriji, algoritmi za sastavljanje kreirani za dulja oitanja (OLC) bi trebali raditi i za
kraa oitanja. Principi detekcije preklapanja i izrade kontiga nisu razliiti. Meutim, u
praksi se pokazalo da koritenje tih metoda na vrlo kratkim oitanjima daje slabe rezultate.
Neki od razloga su praktini kao to da te metode imaju ogranienja na minimalnu ulaznu
duljinu oitanja ili zahtijevaju minimalnu duljinu preklapanja koja je predugaka za kratka
oitanja. Drugi problemi su fundamentalniji.
Raunalno najkritiniji korak u sastavljanju je preklapanje. Projekti s kratkim oitanja
zahtijevaju redizajniranje toga koraka da ga se uini raunalno izvedivim, posebno to ima
je potrebno puno vie kratkih oitanja nego dugih za postizanje istoga preklapanja.
Dodatno jo za kraa oitanja trebamo puno vee pokrivanje.
Zbog navedenih razloga pojavila se nova generacija metoda za sastavljanje genoma
razvijena specifino za kraa oitanja. Najpoznatiji alati meu njima su Velvet (Zerbino
and Birney, 2008; Zerbino et al., 2009), ALLPATHS (Butler et al., 2008), ABySS
(Simpson et al., 2009) i SOAPdenovo (Luo et al., 2012).
8.5.2. Eulerova staza i de Bruijn grafovi
Eulerovu stazu definiramo kao etnju grafom u kojoj svaki brid obiemo tono jedanput.
Slino, Eulerov ciklus je Eulerova staza koja poinjenje i zavrava u istom vrhu. Prvi se
problemom traenja takvoga ciklusa bavio Leonhard Euler, jedan od najveih
matematiara u povijesti. Po njemu su takva staza i ciklus i nazvani. Euler je pokuao
rijeiti problem koji je dugo zabavljao graane starog Knigsberga, pruskoga grada na
rijeci Pregel (danas Kalinjingrad, Rusija). Grad se sastojao od etiri gradske etvrti
meusobno povezane sa sedam mostova. Dvije sredinje etvrti su bila dva otoka na rijeci

131
Pregel. Cilj je bio pronai etnju gradom tako se krene iz jedne gradske etvrti proe svaki
most jedanput i samo jedanput i vrati u istu etvrt. Problem je bio tim tei to u doba nije
postojala tehnika kojom bi se mogao takav problem rijeiti. Euler je uoio da etnja unutar
iste etvrti nije vana, te da je jedino bitan slijed prelazaka mosta. To mu je omoguilo da
postavi problem na nain da oznai samo etiri gradske etvrti i mostove izmeu njih (Sl.
8.9). Gradske etvrti su postali vrhovi, a mostovi bridovi. Time je postavio temelje teorije
grafova. Na kraju je Euler koristei novu metodologiju pokazao da traena etnja ne
postoji.

Sl. 8.9 Mostovi Knigsberga. (a) Mapa starog Knigsberga u kojoj je svaki dio grada oznaen
drugaije obojanom tokom (b) Graf Knigsbergovih mostova, stvoren tako da je svaki od etiri
dijela grada predstavljen vrhovi, a sedam mostova meu njima bridom.
Euler je u svom radu pokazao da je nuan uvjet za postojanje Eulerovog ciklusa taj da svi
vrhovi u grafu imaju paran stupanj i tvrdio bez dokaza da povezan graf sa svim vrhovima
parnog stupnja ima Eulerov ciklus. Tu tvrdnju je kasnije dokazao Carl Hierholzer. U
sluaju usmjerenih grafova potrebno je da svaki vrh ima jednak broj ulaznih i izlaznih
bridova. Takav graf nazivamo i balansiranim grafom. Graf koji ima Eulerov ciklus ujedno
ima i Eulerovu stazu.
Openito, moemo rei da su nuni i dovoljni uvjeti da graf imati Eulerovu stazu slijedei:
Najvie jedan vrh u grafu ima (izlazni stupanj ulazni stupanj) = 1.
Najvie jedan vrh u grafu ima (izlazni stupanj ulazni stupanj) = -1.
Svi ostali vrhovi imaju (izlazni stupanj ulazni stupanj) = 0.
Prvi efikasan algoritam za odreivanja Eulerove staze u linearnoj sloenosti razvio je
Hierholzer po komu se danas taj algoritam i naziva.


132
Hierholzerov algoritam
Odabrati poetni vrh v kojem je izlazni stupanj za jedan vei od ulaznog stupnja (ako takav ne
postoji, krenuti od bilo kojeg) i pratiti stazu bridova od toga vrha sve dok se ne vratimo u
njega ili ne doemo do vrha koji ima za jedan vei ulazni stupanj od izlaznog stupnja z (ukoliko
takav vrh postoji). Nije mogue da se zaglavimo niti u jednom drugom vrhu zato to paran
stupanj svi vrhova osigurava da kada bridom doemo u neki drugi vrh w mora postojati brid
kojim moemo napustiti w. etnja formirana na ovaj nain je zatvorena, ali nuno ne prolazi
svim vrhovima i bridovima poetnog grafa.
Sve dok ima vrhova v koji pripadaju trenutnoj etnji, ali imaju bridove koji joj ne pripadaju,
krenuti novom etnjom iz vrha v, pratei neiskoritene bridove sve dok se ne vratimo u v te
nakon toga ujedinimo novu etnju s postojeom.Inicijalno poravnati sve parove sljedova
Sl. 8.10 Hierholzerov algoritam za raunanje Eulerove staze u grafu
Algoritam se najee implementira koristei dva stoga. U jednom spremamo put kojim
idemo, a drugi koristimo za praenje unatrag u cilju odreivanja neposjeenih bridova.
Vrlo esto pitanje je kako to da nije poznat polinomni algoritam za rjeenje Hamiltonovog
puta dok Eulerov put moemo pronai u linearnoj sloenosti. Prvi razlog je to to uvjeti da
bi neki graf imao Hamiltonov ciklus nisu poznati, dok za postojanje Eulerov puta znamo
nune i dovoljne uvjete i lako ih je provjeriti. Dodatno, za pronalaenje Eulerovog puta
moemo koristiti ve rijeene podprobleme i na taj nain se pribliavamo rjeenju
originalnoga problema.
Nizozemski matematiar Nicolaas de Bruijn je prilagodio Eulerove ideje u cilju pronalaska
ciklikih sljedova slova uzetih iz dane abecede za koju svaka mogua rije odreene
duljine (k) se pojavljuje kao niz uzastopnih znakova u ciklikom slijedu tono jedanput
(Compeau et al., 2011). Pojednostavljeno, uzmemo sve mogue nizove duljine k za danu
abecedu i traimo najkrai zajedniki nadniz. U poglavlju 8.3.1 pokazali smo da traenje
zajednikoga nadniza je NP teak problem za koga postoje samo heuristika rjeenja.
Meutim, problem kako ga je definirao de Bruijn je specifian jer postoji svi mogui
nizove duljine k. Npr. ako se abeceda sastoji od znakova 0 i 1 i k=3, onda imamo 8
moguih nizova: 000, 001, 010, 011, 100, 101, 110, 111. S obzirom da imamo sve
kombinacije moemo primijetiti da uvijek moemo nai za svaki niz da njegov k-1 sufiks
odgovara k-1 prefiksu nekoga drugoga niza. Koristei tu injenicu de Bruijn je konstruirao
graf na nain da je svakom vrhu pridruio (k-1)-torku, a dva vrha je povezao bridom

133
ukoliko postoji k-torka kojoj je jedan vrh k-1 prefiks, a drugi k-1 sufiks. Bridovi su
oznaeni k-torkama. Sl. 8.11 prikazuje graf za k = 4. De Bruijn je ovaj tip grafova nazvao
B grafovima, no danas se u njegovo ime nazivaju de Bruijn grafovima. Ako promatramo s
koliko drugih vrhova pojedini vrh moe biti povezan doemo do toga da i ulazno i izlazno
moe biti povezan s brojem vrhova koji je jednak broju znakova u abecedi. Do toga
doemo uzimajui u obzir injenicu da se dva vrha koja spajamo razlikuju u maksimalno
jednom znaku. Stoga svaki vrh u grafu ima jednak ulazni i izlazni stupanj i moemo da
graf ima Eulerov ciklus. S obzirom da traimo cirkularni ciklus moemo krenuti od bilo
kojeg vrha. Rjeenje zajednikoga nadniza naemo na nain da zapamtimo prvi znak u
svakom vrhu kroz koji proemo ili prvi znak svakoga brida.

Sl. 8.11 De Bruijn graf. De Bruijn graf za k=4 i abecedu koja se sastoji od 0 i 1. Ovaj graf ima
Eulerov ciklus zato to svaki vrh ima ulazne i izlazne stupnjeve jednake 2. Slijedei bridove
oznaene plavim brojevima od 1 do 16 proemo Eulerovim ciklusom 0000, 0001, 0011, 0110,
1100, 1001, 0010, 0101, 1011, 0111, 1111, 1110, 1101, 1010, 0100, 1000. Pamtei samo prve
znakove u svakom bridu moemo dobiti cikliki nadniz 0000110010111101.
Upravo ta ideja jednostavnog nalaska najkraeg zajednikoga nadniza koristei de
Bruijnove grafove danas se koristi u sastavljanju genoma, no da bismo bili sigurni da
Eulerov ciklus postoji moramo imati sve k-torke prisutne u genomu. Dodatno, u veini
sluajeva mi nemamo grafove koji su cirkularni pa za razliku od traenja Eulerovog puta
moramo traiti Eulerovu stazu, no kao to je prije navedeno uz malu modifikaciju uvjeta
(poetni i zavrni vrh) prelazimo iz ciklusa u stazu.

134
8.5.3. Sastavljanje genoma
Vano je zapaziti to da bi smo moglo koristiti de Bruijn grafove i pronalazak Eulerove
staze za sastavljanje genoma nuan uvjet je da u oitanjima imamo sve k-torke prisutne u
genomu. Meutim, oitanja dobivena sekvenciranjem ureajima druge generacije, bez
obzira na visoku tonost i veliko pokrivanje ne ipak ne sadre sve k-torke. Zbog toga se
oitanja lome u krae k-torke, to rezultira da za dovoljno mali k imamo sve k-torke
prisutne u grafu. Npr. ako imamo oitanja duljine 100 razlomimo ih u 51 preklapajuu
k-torku duljine 50. Iako na prvu ovo izgleda kontraintuitivno jer na ovaj nain gubimo dio
informacije upravo ova metoda nam omoguava ispravno sastavljanje genoma. Sl. 8.12
prikazuje primjer lomljenja oitanja u kome vidimo kako kao rezultat dobijemo savreno
pokrivanje ulaznog slijeda. Primijeti da sa smanjenjem k postoji vea vjerojatnost
potpunoga pokrivanja, no isto tako dobiveni graf moe biti vei (vie vrhova i bridova) i
zapetljaniji, te je tee pronai pravu Eulerovu stazu. Stoga odabir k predstavlja kompromis
izmeu elje za to veim pokrivanjem i jednostavnosti grafa.

Sl. 8.12 Lomljenje oitanja. Lijeva oitanja ne sadre sve 10torke, no ako ih razlomimo na
5-torke (desno) dobijemo savreno pokrivanje.
Ovakav pristup sastavljanja genoma se naziva de Bruijn graf pristupom (engl. de Bruijn
graph - DBG) ili pristupom Eulerovog puta (Pevzner et al., 2001).
Za primjer konstrukcije de Bruijn grafa uzmimo niz GTCAGCCCAGACAG i napravimo od
njega sve k-torke (k=3) i njih pridruimo bridovima, a njihove k-1 sufikse i prefikse
vrhovima izmeu kojih se nalazi taj brid. Sa crvenom bojom su oznaene ponavljajue
regije. Sl. 8.13 prikazuje tako konstruiran graf.

135
GTC
GT TC CA AG
TCA CAG GCC
GC CC CC CA
CCC CCA AGC
AG
CAG GAC
GA AC CA AG
ACA AGA CAG

Sl. 8.13 Slijed GTCAGCCCAGACAG sastavljen od k-torki duljine 3. K-torke se nalaze na
bridovima, a vrhovi predstavljaju njihove k-1 prefikse i sufikse.
Moemo primijetiti da postoji vie vrhova s istim oznakama. Ako zadrimo bridove prema
njima susjednim vrhovima moemo te vrhove slijepiti odnosno ujediniti u jedan vrh. Na taj
nain pojednostavljujemo graf (Sl. 8.14). Postoji dva sluaja kod lijepljenja vrhova. U
prvom su svi vrhovi povezani s vrhovima drugaije oznake, dok su u drugom takvi vrhovi
GT TC CA
TCA
CA
CA
AG
AG
AG
CC GC
AC GA
CC
GTC
C
A
G
C
A
G
C
A
G
AGC
GCC CCC
CCA
AGA
GAC
ACA
GT TC CA
CAG
AG
AG
AG
CC GC
AC GA
CC
GTC
C
A
G
C
A
G
AGC
GCC
CCC
CCA
AGA
GAC
ACA
GT TC CA
CAG
AG
CC GC
AC GA
CC
GTC
AGC
GCC CCC
CCA
AGA
GAC
ACA
CAG
CAG
GT TC CA
CAG
AG
CC GC
AC GA
GTC
AGC
GCC CCC
CCA
AGA
GAC
ACA
CAG
CAG
(a) (b)
(c) (d)
TCA
TCA TCA

Sl. 8.14 Pojednostavljenje grafa lijepljenjem vrhova s istom oznakom. (a) Grupiramo vrhove s
istim oznakama. U ovom sluaju su to vrhovi CA i AG. (b) Lijepljenje vrhova CA. Primijetiti da
njihovi bridovi prema drugim vrhovima su zadrani. (c) Lijepljenje vrhova AG. (d) Lijepljenje
vrhova CC. S obzirom da je postojao brid izmeu njih dodajemo petlju iz vrha u samog sebe.

136
meusobno povezani. U prvom sluaju nakon lijepljenja bridovi prema drugim vrhovima
ostaju netaknuti. U drugom sluaju nakon ujedinjenja potrebno je napraviti petlje koje
povezuje vrh sa samim sobom i time predstavljaju brid izmeu dva identina vrha koja
smo ujedinili lijepljenjem.
U metodi izrade grafa navedenoj gore smo pretpostavili da znamo kako su bili povezane
pojedine k-torke. to ako nam ta informacija nije poznata kao to nee ni biti pri
sastavljanju genoma. Metoda koja se koristi u praksi za sastavljanje de Bruijnova grafa je
slijedea. Za danu ulaznu kolekciju k-torki naemo sve vrhove koji su jedinstvene
(k-1)-torke. S obzirom da ne znamo u kojem njihov originalni poredak moemo ih poredati
po abecedi. U naem primjeru k-torke su:
ACA AGA AGC CAG CAG CAG CCA CCC GAC GCC GTC TCA.
Jedinstveni vrhovi koji su njihovi k-1 prefiksi ili sufiksi su:
AC AG CA CC GA GC GT TC.
Za svaku od ulaznih k-torki poveemo njen prefiks vrh sa sufiks vrhom direktnim bridom
(Sl. 8.15).
GT TC GC CC CA AG GA AC

Sl. 8.15 Izgradnja de Brujin grafa kada ne znamo poetni poredak k-torki (ACA, AGA, AGC,
CAG, CAG, CAG, CCA, CCC, GAC, GCC, GTC i TCA) u slijedu. Za ulazne
k-torke naemo jedinstvene sufikse i prefikse koji definiraju vrhove. Na kraju poveemo vrhove
koristei poetne k-torke.
Iako dobiveni graf izgleda na prvi pogled drugaije ako provjerimo sve bridove moemo
primijetiti da se zapravo radi o istom grafu.
Nakon zavretka izrade grafa traeni slijed se dobije traenjem Eulerove staze u grafu. S
obzirom da izmeu vorova CA i AG moemo doi na tri naina postojati e vie
Eulerovih staza u grafu. U ovom sluaju kao konano rjeenje moemo dobiti poetni
slijed GTCAGCCCAGACAG, ali i GTCAGCAGACCCAG. Na taj nain nismo dobili
jedinstveno rjeenje.


137
8.6. Literatura
Abouelhoda,M.I. et al. (2004) Replacing suffix trees with enhanced suffix arrays. J.
Discret. Algorithms, 2, 5386.
Butler,J. et al. (2008) ALLPATHS: de novo assembly of whole-genome shotgun
microreads. Genome Res., 18, 81020.
Compeau,P.E.C. et al. (2011) How to apply de Bruijn graphs to genome assembly. Nat.
Biotechnol., 29, 98791.
Frieze,A. & Szpankowski,W. (1998) Greedy Algorithms for the Shortest Common
Superstring That Are Asymptotically Optimal. Algorithmica, 21, 2136.
Gusfield,D. (1997) Algorithms on strings, trees, and sequences: computer science and
computational biology Cambridge University Press.
Luo,R. et al. (2012) SOAPdenovo2: an empirically improved memory-efficient short-read
de novo assembler. Gigascience, 1, 18.
Miller,J.R. et al. (2010) Assembly algorithms for next-generation sequencing data.
Genomics, 95, 315327.
Myers,E.W. et al. (2000) A whole-genome assembly of Drosophila. Science (80-. )., 287,
21962204.
Myers,E.W. (1995) Toward simplifying and accurately formulating fragment assembly. J.
Comput. Biol., 2, 27590.
Ohlebusch,E. & Gog,S. (2010) Efficient algorithms for the all-pairs suffix-prefix problem
and the all-pairs substring-prefix problem. Inf. Process. Lett., 110, 123128.
Pevzner,P. a et al. (2001) An Eulerian path approach to DNA fragment assembly. Proc.
Natl. Acad. Sci. U. S. A., 98, 974853.
Simpson,J.T. et al. (2009) ABySS: a parallel assembler for short read sequence data.
Genome Res., 19, 111723.
Simpson,J.T. & Durbin,R. (2010) Efficient construction of an assembly string graph using
the FM-index. Bioinformatics, 26, i36773.
Simpson,J.T. & Durbin,R. (2012) Efficient de novo assembly of large genomes using
compressed data structures. Genome Res., 22, 54956.
Vlimki,N. et al. (2012) Approximate all-pairs suffix / prefix overlaps. Inf. Comput., 213,
4958.
Zerbino,D.R. et al. (2009) Pebble and rock band: heuristic resolution of repeats and
scaffolding in the velvet short-read de novo assembler. PLoS One, 4, e8407.

138
Zerbino,D.R. & Birney,E. (2008) Velvet: algorithms for de novo short read assembly using
de Bruijn graphs. Genome Res., 18, 8219.

You might also like