bioinformatika_skripta
DESCRIPTION
bioinformatika_skriptaTRANSCRIPT
-
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(n2) ............................................... 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 terminatorintron intron intronekson 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
pQSanger 10log10
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(si,sj) 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 3109 nukleotida) bi zahtijevalo 91018 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 = s1s2s3sm i niz t = t1t2t3tn i kao rezultat
dobijemo poravnanje p = p1p2p3pk pri emu je k m + n. Ako s sr oznaimo
reverzni niz od s tako da je sr= smsm-1sm-2s1 i analogno oznaimo t
r i p
r moemo
lako pokazati da je pr 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 sr i t
r. S V(i,j) oznaimo optimalan rezultat poravnanja
s1si s t1tj, a s Vr(i,j) optimalan rezultat poravnanja s
r1 s
ri s t
r1t
rj. Lako se moe
pokazati da je Vr(i,j) jednak poravnanju sm-i+1sm s tn-j+1tn. 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 91018 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(n3) 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, 100118.
-
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
106-10
7 bp. Genomi kukaca su reda veliine 108-109 bp, genomi sisavaca su oko 109 bp
(npr. ovjekov genom je 3109 bp), dok genomi cvjetnica doseu i 1011 (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 zajamen1. 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 203 = 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
matricama2. 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-
suelje3 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
blastx4 DNA (6 moguih itanja) Protein
tblastn5 Protein DNA (6 moguih itanja)
tblastx6 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 106-107 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 vrije