Upload
raf48
View
281
Download
4
Embed Size (px)
DESCRIPTION
se
Citation preview
Panašių sPanašių sekekų paieškos ų paieškos algoritmaialgoritmai
Algoritmų taikymo sritisAlgoritmų taikymo sritis
Taikomi biologinių duomenų paieškai:Taikomi biologinių duomenų paieškai: Apribota abėcėlė:Apribota abėcėlė:
Baltymų sekos sudarytos iš 20 amino rūgščiųBaltymų sekos sudarytos iš 20 amino rūgščių Nukleotidų sekos turi 4 (5) nukleotidusNukleotidų sekos turi 4 (5) nukleotidus
Sekos paieškos rezultatas gali būti:Sekos paieškos rezultatas gali būti: Tikslus sutapimas:Tikslus sutapimas:
ABCTUVABCTUVABUVABUV
ABCTUVABCTUVAB----UVAB----UV
Netikslus sutapimas:Netikslus sutapimas:GARUIPPRSTGARUIPPRSTGARVVBUIEEYSTGARVVBUIEEYST
GAR------UIPPRSTGAR------UIPPRSTGARVVBUIEEYSTGARVVBUIEEYST
Globalūs ir lokalūs palyginiaiGlobalūs ir lokalūs palyginiai
ABQRTASGGBVABQRTASGGBV ABRRRASGVBBABRRRASGVBB
ABQRTASGGBVABQRTASGGBV ABQ------SGGBVABQ------SGGBV
Amino rūgčių pakeitimo matricosAmino rūgčių pakeitimo matricos
Amino rūgštys pasižymi tam tikromis, Amino rūgštys pasižymi tam tikromis, savitomis fizikinėmis ir cheminėmis savitomis fizikinėmis ir cheminėmis savybėmis.savybėmis.
Ortologiniuose baltymuose amino rūgštys Ortologiniuose baltymuose amino rūgštys keičiamos viena į kitą skirtingais keičiamos viena į kitą skirtingais dažnumais.dažnumais.
Pakeitimo lengvumą (dažnumą) leidžia Pakeitimo lengvumą (dažnumą) leidžia įvertinti A.A. pakeitimo matricos.įvertinti A.A. pakeitimo matricos.
Amino rūgščių pakeitimo matricos Amino rūgščių pakeitimo matricos pavyzdyspavyzdys
Amino rūgčių pakeitimo matricosAmino rūgčių pakeitimo matricos
BLOSUM ir PAM matricos.BLOSUM ir PAM matricos.
PAM –Point accepted mutation. PAM –Point accepted mutation. Gautos lyginant 1572 mutacijas iš 71 baltymų Gautos lyginant 1572 mutacijas iš 71 baltymų
šeimų.šeimų. PAM1 – PAM30 – PAM70 – PAM250PAM1 – PAM30 – PAM70 – PAM250 Netinka evoliuciškai nutolusiems baltymamsNetinka evoliuciškai nutolusiems baltymams
BLOSUMBLOSUM
BLOSUM - BLOcks of Amino Acid BLOSUM - BLOcks of Amino Acid SUbstitution MatrixSUbstitution Matrix
Sudaromas daugybinis palyginys iš mažai Sudaromas daugybinis palyginys iš mažai pakitusių baltymų sekų regionųpakitusių baltymų sekų regionų
Tinka evoliuciškai labiau nutolusiems Tinka evoliuciškai labiau nutolusiems baltymamsbaltymams
BLOSUM40-BLOSUM62-BLOSUM80BLOSUM40-BLOSUM62-BLOSUM80
Sekų sulyginimo algoritmaiSekų sulyginimo algoritmai
Taškinės matricos (dot matrix)Taškinės matricos (dot matrix) Dinaminis programavimasDinaminis programavimas FASTAFASTA BLASTBLAST
Dinaminis programavimasDinaminis programavimas
DP yra vienas iš algoritmų, taikomų DP yra vienas iš algoritmų, taikomų optimizavimo problemoms spręstioptimizavimo problemoms spręsti
DP veikia skaidant didelę užduotį į DP veikia skaidant didelę užduotį į mažesnes sub-užduotis.mažesnes sub-užduotis.
Dinaminis programavimasDinaminis programavimas
Kiekviena subužduotis vykdoma tik vieną Kiekviena subužduotis vykdoma tik vieną kartą, o jos rezultatas išsaugomaskartą, o jos rezultatas išsaugomas
DP pasirenka sprendinį su didžiausiu DP pasirenka sprendinį su didžiausiu (mažiausiu) įverčiu(mažiausiu) įverčiu
Dinaminis programavimasDinaminis programavimas
Gali būti taikomas globalių ir lokalių Gali būti taikomas globalių ir lokalių palyginių paieškai.palyginių paieškai.
Palyginių įvertinimui gali būti naudojamos Palyginių įvertinimui gali būti naudojamos pakeitimo matricospakeitimo matricos
Reikia įvesti tarpo buvimo palyginyje Reikia įvesti tarpo buvimo palyginyje “baudą”“baudą”
Dinaminis programavimasDinaminis programavimas
Tikslas – surasti optimalų globalų palyginį Tikslas – surasti optimalų globalų palyginį tarp dviejų sekų leidžiant atsirasti tarpams.tarp dviejų sekų leidžiant atsirasti tarpams.
Sudaroma matrica F, kurios elementai Sudaroma matrica F, kurios elementai F(i,j) turi geriausio palyginio įverčio F(i,j) turi geriausio palyginio įverčio reikšmę kai naudojamos i ir j ilgio reikšmę kai naudojamos i ir j ilgio subsekossubsekos
Dinaminis programavimasDinaminis programavimas
F(i,j) = max {F(i,j) = max { F(i-1, j-1) + s(xi , yj );F(i-1, j-1) + s(xi , yj );F(i-1,j) – d;F(i-1,j) – d;F(i, j-1) – d }F(i, j-1) – d }
s(a,b) yra panašumo įvertis, gaunamas iš s(a,b) yra panašumo įvertis, gaunamas iš panašumo matricos.panašumo matricos.
d yra tarpo įvedimo baudad yra tarpo įvedimo bauda
Dinaminis programavimasDinaminis programavimas
Sukonstravus matricą galima nesunkiai surasti Sukonstravus matricą galima nesunkiai surasti palyginį.palyginį.
Didžiausios bendros sekos paieškaDidžiausios bendros sekos paieška
Didžiausios bendros sekos paieškaDidžiausios bendros sekos paieška
Didžiausios bendros sekos paieškaDidžiausios bendros sekos paieška
Didžiausios bendros sekos paieškaDidžiausios bendros sekos paieška
Didžiausios bendros sekos paieškaDidžiausios bendros sekos paieška
Needleman-Wunsch algoritNeedleman-Wunsch algoritmasmas
S1'S1' = = GCCCTAGCGGCCCTAGCG S2'S2' = = GCGC-AATGGCGC-AATG
Query: 1 gccctagcg 9 || | | |
Target: 1 gcgc-aatg 8
Lokalių palyginių paieškaLokalių palyginių paieška Neigiamos reikšmės paverčiamos į 0Neigiamos reikšmės paverčiamos į 0 Surandama didžiausia įverčio reikšmė visoje matricoje ir nuo jos Surandama didžiausia įverčio reikšmė visoje matricoje ir nuo jos
atsekamas palyginysatsekamas palyginys
Dinaminis programavimasDinaminis programavimas
Garantuoja optimalaus palyginio radimą Garantuoja optimalaus palyginio radimą (naudojant tam tikrą įverčių schemą)(naudojant tam tikrą įverčių schemą)
Lėtas - sudėtingumas O(nLėtas - sudėtingumas O(n22)) Kompiuterio atminties reikalavimai auga Kompiuterio atminties reikalavimai auga
kvadratiškai nuo sekos ilgiokvadratiškai nuo sekos ilgio Netinka ilgų sekų palyginimuiNetinka ilgų sekų palyginimui
Smith-Waterman algoritSmith-Waterman algoritmasmas
Geriausias lokalus palyginys:Geriausias lokalus palyginys:
gcggcg
FASTA algoritmasFASTA algoritmas
DP algoritmas atlieka daug skaičiavimų DP algoritmas atlieka daug skaičiavimų bereikšmėje srityjebereikšmėje srityje
FASTA sutelkia paiešką į įstrižainių sritįFASTA sutelkia paiešką į įstrižainių sritį
65555433321A
55554433221G
44444433221C
33333333221T
22222222221A
22221111111G
11111111111G
ATTGACTTAAG
FASTAFASTA
Naudojami artiniai (“heuristika”):Naudojami artiniai (“heuristika”):
geras lokalus palyginys turi tam tikrą geras lokalus palyginys turi tam tikrą visiškos sutapimo subseką.visiškos sutapimo subseką.
FASTA algoritmasFASTA algoritmas
Surasti visus “karštus taškus” (ilgio k Surasti visus “karštus taškus” (ilgio k sekos, kuirios idealiai sutampa)sekos, kuirios idealiai sutampa)
Galima naudoti “hash” arba “look-up” Galima naudoti “hash” arba “look-up” lenteleslenteles
Atrinkti N geriausių sekųAtrinkti N geriausių sekų
FASTA algoritmasFASTA algoritmas
Apjungti sub-palyginius atsižvelgiant į Apjungti sub-palyginius atsižvelgiant į tarpustarpus
Vienas iš lokalių palyginių
Tarpai
FASTA algoritmasFASTA algoritmas
Konstruojamas svorinis kryptinis grafasKonstruojamas svorinis kryptinis grafas Mazgai yra sub-palyginiaiMazgai yra sub-palyginiai Kraštinė (u,v) egzistuoja, jei u yra prieš vKraštinė (u,v) egzistuoja, jei u yra prieš v Kiekviena kraštinė turi tarpo baudą Kiekviena kraštinė turi tarpo baudą
(neigiamas svoris)(neigiamas svoris) Ieškoma maksimalausIeškoma maksimalaus
svorio keliosvorio kelio
Sub-seka
Kraštinė
FASTA algoritmasFASTA algoritmas
ApribotojeApribotoje srityje naudojamas dinaminio srityje naudojamas dinaminio programavimo algoritmasprogramavimo algoritmas
Juostos plotis parametrizuotas
BLAST algoritmasBLAST algoritmas
Kitas heuristinis algoritmasKitas heuristinis algoritmas Rezultatai įvertinami statistiškaiRezultatai įvertinami statistiškai Remiasi prielaida, kad homologinės sekos Remiasi prielaida, kad homologinės sekos
turi trumpų sekų porų su dideliais įverčiais.turi trumpų sekų porų su dideliais įverčiais. Šiuos trumpus segmentus algoritmas Šiuos trumpus segmentus algoritmas
praplečia į abi puses kad būtų gautas praplečia į abi puses kad būtų gautas optimalus palyginysoptimalus palyginys
BLAST algoritmasBLAST algoritmas
Paruošiamieji darbai:Paruošiamieji darbai:
1 žingsnis – paruošti daugiausiai taškų 1 žingsnis – paruošti daugiausiai taškų turinčius žodžius iš užklausos sekosturinčius žodžius iš užklausos sekos
BLAST AlgoritBLAST Algoritmasmas
BLAST algoritmasBLAST algoritmas
Query Word
Neighborhood words
BLAST algoritmasBLAST algoritmas
2 žingsnis – paieška sekų duomenų 2 žingsnis – paieška sekų duomenų bazėje. Kiekvienam žodžiui iš sąrašo bazėje. Kiekvienam žodžiui iš sąrašo randami tikslūs radiniai DBrandami tikslūs radiniai DB
Užklausos žodis Panašūs žodžiai DB sekos
1 žingsnis 2 žingsnis
1 seka
2 seka
BLAST algoritmasBLAST algoritmas
Galima naudotis hash-lentelėmisGalima naudotis hash-lentelėmis
žodžiai
Hash lentelė
Pradinio Pradinio High Scoring Segment High Scoring Segment Pair (HSP)Pair (HSP) praplėtimas praplėtimas
NeighborhoodScore Threshold
MinimumScore
SignificanceDecay
BLAST algoritmasBLAST algoritmas
3 žingsnis – optimalaus palyginio paieška. 3 žingsnis – optimalaus palyginio paieška. Kiekviena rasta seka praplečiama į abi Kiekviena rasta seka praplečiama į abi pusespuses
4 žingsnis – palyginio statistinio 4 žingsnis – palyginio statistinio reikšmingumo įvertinimas. Palyginio reikšmingumo įvertinimas. Palyginio plėtimas stabdomas, kai E-reikšmė būna plėtimas stabdomas, kai E-reikšmė būna didesnė nei ribinė. Toks rastas segmentas didesnė nei ribinė. Toks rastas segmentas vadinamas didelio įverčio segmentu (vadinamas didelio įverčio segmentu (High High Scoring Segment PairScoring Segment Pair, HSSP, HSP) , HSSP, HSP)
BLAST algoritmasBLAST algoritmas
E- reikšmės apibrėžimas:E- reikšmės apibrėžimas:
Tikėtinas HSP, kurių įvertis didesnis nei S, Tikėtinas HSP, kurių įvertis didesnis nei S, skaičius skaičius
E = K*n*m*eE = K*n*m*e--λSλS
K, K, λ λ nuo modelio priklausančios nuo modelio priklausančios konstantoskonstantos
n, m n, m užklausos ir sekos ilgiaiužklausos ir sekos ilgiai
BLAST algoritmasBLAST algoritmas
Sekų įverčiai pasiskirstę pagal ekstremalių verčių dėsnį.Sekų įverčiai pasiskirstę pagal ekstremalių verčių dėsnį.
0
1000
2000
3000
4000
5000
6000
7000
8000
<20 30 40 50 60 70 80 90 100 110 >120
Algoritmų palyginimasAlgoritmų palyginimas
Užklausos ilgis – 153Užklausos ilgis – 153 DB dydis – 5997 sekosDB dydis – 5997 sekos
0.118 [s]BLAST
0.618 [s]FASTA
16.989 [s]D.P
TrukmėAlgoritmas
Algoritmų palyginimasAlgoritmų palyginimas
Dinaminis programavimas:Dinaminis programavimas: Jautriausias algoritmasJautriausias algoritmas Panaudojama visa informacijaPanaudojama visa informacija Algoritmas lėtasAlgoritmas lėtas Naudojamos ir bereikšmės sritysNaudojamos ir bereikšmės sritys
Algoritmų palyginimasAlgoritmų palyginimas
FASTAFASTA Mažiau jautrus nei DP ir BLASTMažiau jautrus nei DP ir BLAST Naudojama dalinė informacija pagreitinant Naudojama dalinė informacija pagreitinant
skaičiavimusskaičiavimus Rezultatai nevertinami statistiškaiRezultatai nevertinami statistiškai Žymiai greitesnis nei DPŽymiai greitesnis nei DP
Algoritmų palyginimasAlgoritmų palyginimas
BLASTBLAST Jautresnis nei Jautresnis nei FASTAFASTA Rezultatai įvertinami statistiškaiRezultatai įvertinami statistiškai Greitesnis nei FASTA. Atsižvelgiant į rezultatų Greitesnis nei FASTA. Atsižvelgiant į rezultatų
patikimumą atmetamas triukšmas ir tokiu patikimumą atmetamas triukšmas ir tokiu būdu sutrumpėja skaičiavimo laikasbūdu sutrumpėja skaičiavimo laikas