Panašių s ek ų paieškos algoritmai
Algoritmų taikymo sritis <ul><li>Taikomi biologinių duomenų paieškai: </li></ul><ul><li>Apribota abėcėlė: </li></ul><ul><u...
<ul><li>Sekos paieškos rezultatas gali būti: </li></ul><ul><li>Tikslus sutapimas: </li></ul><ul><ul><li>ABCTUV ABUV ABCTUV...
Globalūs ir lokalūs palyginiai <ul><li>ABQRTASGGBV </li></ul><ul><li>ABRRRASGVBB </li></ul><ul><li>ABQRTASGGBV </li></ul><...
Amino rūgčių pakeitimo matricos <ul><li>Amino rūgštys pasižymi tam tikromis, savitomis fizikinėmis ir cheminėmis savybėmis...
Amino rūgščių pakeitimo matricos pavyzdys
Amino rūgčių pakeitimo matricos <ul><li>BLOSUM ir PAM matricos. </li></ul><ul><li>PAM –Point accepted mutation.  </li></ul...
BLOSUM <ul><li>BLOSUM - BLOcks of Amino Acid SUbstitution Matrix </li></ul><ul><li>Sudaromas daugybinis palyginys iš mažai...
Sekų sulyginimo algoritmai <ul><li>Taškinės matricos (dot matrix) </li></ul><ul><li>Dinaminis programavimas </li></ul><ul>...
Dinaminis programavimas <ul><li>DP yra vienas iš algoritmų, taikomų optimizavimo problemoms spręsti </li></ul><ul><li>DP v...
Dinaminis programavimas <ul><li>Kiekviena subužduotis vykdoma tik vieną kartą, o jos rezultatas išsaugomas </li></ul><ul><...
Dinaminis programavimas <ul><li>Gali būti taikomas globalių ir lokalių palyginių paieškai. </li></ul><ul><li>Palyginių įve...
Dinaminis programavimas <ul><li>Tikslas – surasti optimalų globalų palyginį tarp dviejų sekų leidžiant atsirasti tarpams. ...
Dinaminis programavimas <ul><li>F(i,j) = max { F(i-1, j-1) + s(xi , yj ); F(i-1,j) – d; F(i, j-1) – d } </li></ul><ul><li>...
Dinaminis programavimas <ul><li>Sukonstravus matricą galima nesunkiai surasti palyginį. </li></ul>
Didžiausios bendros sekos paieška
Didžiausios bendros sekos paieška
Didžiausios bendros sekos paieška
Didžiausios bendros sekos paieška
Didžiausios bendros sekos paieška
Needleman-Wunsch algorit mas <ul><li>S1'  =  GCCCTAGCG   </li></ul><ul><li>S2'  =  GCGC-AATG   </li></ul>Query:  1   gccct...
Lokalių palyginių paieška <ul><li>Neigiamos reikšmės paverčiamos į 0 </li></ul><ul><li>Surandama didžiausia įverčio reikšm...
Dinaminis programavimas <ul><li>Garantuoja optimalaus palyginio radimą (naudojant tam tikrą įverčių schemą) </li></ul><ul>...
Smith-Waterman algorit mas <ul><li>Geriausias lokalus palyginys: </li></ul><ul><li>gcg </li></ul>
FASTA algoritmas <ul><li>DP algoritmas atlieka daug skaičiavimų bereikšmėje srityje </li></ul><ul><li>FASTA sutelkia paieš...
FASTA <ul><li>Naudojami artiniai (“heuristika”): </li></ul><ul><li>geras lokalus palyginys turi tam tikrą visiškos sutapim...
FASTA algoritmas <ul><li>Surasti visus “karštus taškus” (ilgio k sekos, kuirios idealiai sutampa) </li></ul><ul><li>Galima...
FASTA algoritmas <ul><li>Apjungti sub-palyginius atsižvelgiant į tarpus </li></ul>Vienas iš lokalių palyginių Tarpai
FASTA algoritmas <ul><li>Konstruojamas svorinis kryptinis grafas </li></ul><ul><li>Mazgai yra sub-palyginiai </li></ul><ul...
FASTA algoritmas <ul><li>Apribotoje  srityje naudojamas dinaminio programavimo algoritmas </li></ul>Juostos plotis paramet...
BLAST algoritmas <ul><li>Kitas heuristinis algoritmas </li></ul><ul><li>Rezultatai įvertinami statistiškai </li></ul><ul><...
BLAST algoritmas <ul><li>Paruošiamieji darbai: </li></ul><ul><li>1 žingsnis – paruošti daugiausiai taškų turinčius žodžius...
BLAST Algorit mas
BLAST algoritmas Query Word Neighborhood words
BLAST algoritmas <ul><li>2 žingsnis – paieška sekų duomenų bazėje. Kiekvienam žodžiui iš sąrašo randami tikslūs radiniai D...
BLAST algoritmas <ul><li>Galima naudotis hash-lentelėmis </li></ul>žodžiai Hash  lentelė
Pradinio  High Scoring Segment Pair (HSP)  praplėtimas Neighborhood Score Threshold Minimum Score   Significance Decay
BLAST algoritmas <ul><li>3 žingsnis – optimalaus palyginio paieška. Kiekviena rasta seka praplečiama į abi puses </li></ul...
BLAST algoritmas <ul><li>E- reikšmės apibrėžimas: </li></ul><ul><li>Tikėtinas HSP, kurių įvertis didesnis nei S,  skaičius...
BLAST algoritmas <ul><li>Sekų įverčiai pasiskirstę pagal ekstremalių verčių dėsnį. </li></ul>
Algoritmų palyginimas <ul><li>Užklausos ilgis – 153 </li></ul><ul><li>DB dydis – 5997 sekos </li></ul>0.118  [s] BLAST 0.6...
Algoritmų palyginimas <ul><li>Dinaminis programavimas: </li></ul><ul><ul><li>Jautriausias algoritmas </li></ul></ul><ul><u...
Algoritmų palyginimas <ul><li>FASTA </li></ul><ul><ul><li>Mažiau jautrus nei DP ir BLAST </li></ul></ul><ul><ul><li>Naudoj...
Algoritmų palyginimas <ul><li>BLAST </li></ul><ul><ul><li>Jautresnis nei  FASTA </li></ul></ul><ul><ul><li>Rezultatai įver...
Upcoming SlideShare
Loading in …5
×

2011 04 (seku panasumu paieskos algoritmai)

480 views

Published on

se

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
480
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Word above threshold deemed to be similar RDQ matched with REQ Next the BLAST algorithm now attempts to extend this alignment in both directions Cumulative score kept, results from tallying the matches, mismatches, and gaps Keeps going until optimal local alignment found
  • How does the algorithm know when an optimal local alignment has been found. Initial seed hit is extended All starts initially if the original “word” match is above the cutoff (T&gt;11 – RDQ – REQ in our earlier example) The algorithm keeps a cumulative score (left axis) – addition for matches Once the mininum score S is reached a result will be returned – this result makes it to the BLAST output Algorithm keeps extending the alignment – addition for matches, negative for mismatches, gaps (dip in graph) Keeps extending alignment At some point, mismatches and gaps will outweigh matches and the cumulative score will drops off Another cutoff comes into play here to detect the lack of good alignment. (X) HSP trimmed back Resulting alignment is called the HSP – high scoring segment pair more than one HSP per sequence possible Show the length of the HSP on the graph
  • 2011 04 (seku panasumu paieskos algoritmai)

    1. 1. Panašių s ek ų paieškos algoritmai
    2. 2. Algoritmų taikymo sritis <ul><li>Taikomi biologinių duomenų paieškai: </li></ul><ul><li>Apribota abėcėlė: </li></ul><ul><ul><li>Baltymų sekos sudarytos iš 20 amino rūgščių </li></ul></ul><ul><ul><li>Nukleotidų sekos turi 4 (5) nukleotidus </li></ul></ul>
    3. 3. <ul><li>Sekos paieškos rezultatas gali būti: </li></ul><ul><li>Tikslus sutapimas: </li></ul><ul><ul><li>ABCTUV ABUV ABCTUV AB----UV </li></ul></ul><ul><li>Netikslus sutapimas: </li></ul><ul><ul><li>GARUIPPRST GARVVBUIEEYST GAR------UIPPRST GARVVBUIEEYST </li></ul></ul>
    4. 4. Globalūs ir lokalūs palyginiai <ul><li>ABQRTASGGBV </li></ul><ul><li>ABRRRASGVBB </li></ul><ul><li>ABQRTASGGBV </li></ul><ul><li>ABQ------SGGBV </li></ul>
    5. 5. Amino rūgčių pakeitimo matricos <ul><li>Amino rūgštys pasižymi tam tikromis, savitomis fizikinėmis ir cheminėmis savybėmis. </li></ul><ul><li>Ortologiniuose baltymuose amino rūgštys keičiamos viena į kitą skirtingais dažnumais. </li></ul><ul><li>Pakeitimo lengvumą (dažnumą) leidžia įvertinti A.A. pakeitimo matricos. </li></ul>
    6. 6. Amino rūgščių pakeitimo matricos pavyzdys
    7. 7. Amino rūgčių pakeitimo matricos <ul><li>BLOSUM ir PAM matricos. </li></ul><ul><li>PAM –Point accepted mutation. </li></ul><ul><ul><li>Gautos lyginant 1572 mutacijas iš 71 baltymų šeimų. </li></ul></ul><ul><ul><li>PAM1 – PAM30 – PAM70 – PAM250 </li></ul></ul><ul><ul><li>Netinka evoliuciškai nutolusiems baltymams </li></ul></ul>
    8. 8. BLOSUM <ul><li>BLOSUM - BLOcks of Amino Acid SUbstitution Matrix </li></ul><ul><li>Sudaromas daugybinis palyginys iš mažai pakitusių baltymų sekų regionų </li></ul><ul><li>Tinka evoliuciškai labiau nutolusiems baltymams </li></ul><ul><li>BLOSUM40-BLOSUM62-BLOSUM80 </li></ul>
    9. 9. Sekų sulyginimo algoritmai <ul><li>Taškinės matricos (dot matrix) </li></ul><ul><li>Dinaminis programavimas </li></ul><ul><li>FASTA </li></ul><ul><li>BLAST </li></ul>
    10. 10. Dinaminis programavimas <ul><li>DP yra vienas iš algoritmų, taikomų optimizavimo problemoms spręsti </li></ul><ul><li>DP veikia skaidant didelę užduotį į mažesnes sub-užduotis. </li></ul>
    11. 11. Dinaminis programavimas <ul><li>Kiekviena subužduotis vykdoma tik vieną kartą, o jos rezultatas išsaugomas </li></ul><ul><li>DP pasirenka sprendinį su didžiausiu (mažiausiu) įverčiu </li></ul>
    12. 12. Dinaminis programavimas <ul><li>Gali būti taikomas globalių ir lokalių palyginių paieškai. </li></ul><ul><li>Palyginių įvertinimui gali būti naudojamos pakeitimo matricos </li></ul><ul><li>Reikia įvesti tarpo buvimo palyginyje “baudą” </li></ul>
    13. 13. Dinaminis programavimas <ul><li>Tikslas – surasti optimalų globalų palyginį tarp dviejų sekų leidžiant atsirasti tarpams. </li></ul><ul><li>Sudaroma matrica F, kurios elementai F(i,j) turi geriausio palyginio įverčio reikšmę kai naudojamos i ir j ilgio subsekos </li></ul>
    14. 14. Dinaminis programavimas <ul><li>F(i,j) = max { F(i-1, j-1) + s(xi , yj ); F(i-1,j) – d; F(i, j-1) – d } </li></ul><ul><li>s(a,b) yra panašumo įvertis, gaunamas iš panašumo matricos. </li></ul><ul><li>d yra tarpo įvedimo bauda </li></ul>
    15. 15. Dinaminis programavimas <ul><li>Sukonstravus matricą galima nesunkiai surasti palyginį. </li></ul>
    16. 16. Didžiausios bendros sekos paieška
    17. 17. Didžiausios bendros sekos paieška
    18. 18. Didžiausios bendros sekos paieška
    19. 19. Didžiausios bendros sekos paieška
    20. 20. Didžiausios bendros sekos paieška
    21. 21. Needleman-Wunsch algorit mas <ul><li>S1' = GCCCTAGCG </li></ul><ul><li>S2' = GCGC-AATG </li></ul>Query: 1 gccctagcg 9 || | | | Target: 1 gcgc-aatg 8
    22. 22. Lokalių palyginių paieška <ul><li>Neigiamos reikšmės paverčiamos į 0 </li></ul><ul><li>Surandama didžiausia įverčio reikšmė visoje matricoje ir nuo jos atsekamas palyginys </li></ul>
    23. 23. Dinaminis programavimas <ul><li>Garantuoja optimalaus palyginio radimą (naudojant tam tikrą įverčių schemą) </li></ul><ul><li>Lėtas - sudėtingumas O(n 2 ) </li></ul><ul><li>Kompiuterio atminties reikalavimai auga kvadratiškai nuo sekos ilgio </li></ul><ul><li>Netinka ilgų sekų palyginimui </li></ul>
    24. 24. Smith-Waterman algorit mas <ul><li>Geriausias lokalus palyginys: </li></ul><ul><li>gcg </li></ul>
    25. 25. FASTA algoritmas <ul><li>DP algoritmas atlieka daug skaičiavimų bereikšmėje srityje </li></ul><ul><li>FASTA sutelkia paiešką į įstrižainių sritį </li></ul>6 5 5 5 5 4 3 3 3 2 1 A 5 5 5 5 4 4 3 3 2 2 1 G 4 4 4 4 4 4 3 3 2 2 1 C 3 3 3 3 3 3 3 3 2 2 1 T 2 2 2 2 2 2 2 2 2 2 1 A 2 2 2 2 1 1 1 1 1 1 1 G 1 1 1 1 1 1 1 1 1 1 1 G A T T G A C T T A A G
    26. 26. FASTA <ul><li>Naudojami artiniai (“heuristika”): </li></ul><ul><li>geras lokalus palyginys turi tam tikrą visiškos sutapimo subseką. </li></ul>
    27. 27. FASTA algoritmas <ul><li>Surasti visus “karštus taškus” (ilgio k sekos, kuirios idealiai sutampa) </li></ul><ul><li>Galima naudoti “hash” arba “look-up” lenteles </li></ul><ul><li>Atrinkti N geriausių sekų </li></ul>
    28. 28. FASTA algoritmas <ul><li>Apjungti sub-palyginius atsižvelgiant į tarpus </li></ul>Vienas iš lokalių palyginių Tarpai
    29. 29. FASTA algoritmas <ul><li>Konstruojamas svorinis kryptinis grafas </li></ul><ul><li>Mazgai yra sub-palyginiai </li></ul><ul><li>Kraštinė (u,v) egzistuoja, jei u yra prieš v </li></ul><ul><li>Kiekviena kraštinė turi tarpo baudą (neigiamas svoris) </li></ul><ul><li>Ieškoma maksimalaus svorio kelio </li></ul>Sub-se ka Kraštinė
    30. 30. FASTA algoritmas <ul><li>Apribotoje srityje naudojamas dinaminio programavimo algoritmas </li></ul>Juostos plotis parametrizuotas
    31. 31. BLAST algoritmas <ul><li>Kitas heuristinis algoritmas </li></ul><ul><li>Rezultatai įvertinami statistiškai </li></ul><ul><li>Remiasi prielaida, kad homologinės sekos turi trumpų sekų porų su dideliais įverčiais. </li></ul><ul><li>Šiuos trumpus segmentus algoritmas praplečia į abi puses kad būtų gautas optimalus palyginys </li></ul>
    32. 32. BLAST algoritmas <ul><li>Paruošiamieji darbai: </li></ul><ul><li>1 žingsnis – paruošti daugiausiai taškų turinčius žodžius iš užklausos sekos </li></ul>
    33. 33. BLAST Algorit mas
    34. 34. BLAST algoritmas Query Word Neighborhood words
    35. 35. BLAST algoritmas <ul><li>2 žingsnis – paieška sekų duomenų bazėje. Kiekvienam žodžiui iš sąrašo randami tikslūs radiniai DB </li></ul>Užklausos žodis Panašūs žodžiai DB sekos 1 žingsnis 2 žingsnis 1 seka 2 seka
    36. 36. BLAST algoritmas <ul><li>Galima naudotis hash-lentelėmis </li></ul>žodžiai Hash lentelė
    37. 37. Pradinio High Scoring Segment Pair (HSP) praplėtimas Neighborhood Score Threshold Minimum Score Significance Decay
    38. 38. BLAST algoritmas <ul><li>3 žingsnis – optimalaus palyginio paieška. Kiekviena rasta seka praplečiama į abi puses </li></ul><ul><li>4 žingsnis – palyginio statistinio reikšmingumo įvertinimas. Palyginio plėtimas stabdomas, kai E-reikšmė būna didesnė nei ribinė. Toks rastas segmentas vadinamas didelio įverčio segmentu ( High Scoring Segment Pair , HSSP, HSP) </li></ul>
    39. 39. BLAST algoritmas <ul><li>E- reikšmės apibrėžimas: </li></ul><ul><li>Tikėtinas HSP, kurių įvertis didesnis nei S, skaičius </li></ul><ul><li>E = K*n*m*e - λS </li></ul><ul><li> K, λ nuo modelio priklausančios konstantos </li></ul><ul><li>n, m užklausos ir sekos ilgiai </li></ul>
    40. 40. BLAST algoritmas <ul><li>Sekų įverčiai pasiskirstę pagal ekstremalių verčių dėsnį. </li></ul>
    41. 41. Algoritmų palyginimas <ul><li>Užklausos ilgis – 153 </li></ul><ul><li>DB dydis – 5997 sekos </li></ul>0.118 [s] BLAST 0.618 [s] FASTA 16.989 [s] D.P Trukmė Algori tmas
    42. 42. Algoritmų palyginimas <ul><li>Dinaminis programavimas: </li></ul><ul><ul><li>Jautriausias algoritmas </li></ul></ul><ul><ul><li>Panaudojama visa informacija </li></ul></ul><ul><ul><li>Algoritmas lėtas </li></ul></ul><ul><ul><li>Naudojamos ir bereikšmės sritys </li></ul></ul>
    43. 43. Algoritmų palyginimas <ul><li>FASTA </li></ul><ul><ul><li>Mažiau jautrus nei DP ir BLAST </li></ul></ul><ul><ul><li>Naudojama dalinė informacija pagreitinant skaičiavimus </li></ul></ul><ul><ul><li>Rezultatai nevertinami statistiškai </li></ul></ul><ul><ul><li>Žymiai greitesnis nei DP </li></ul></ul>
    44. 44. Algoritmų palyginimas <ul><li>BLAST </li></ul><ul><ul><li>Jautresnis nei FASTA </li></ul></ul><ul><ul><li>Rezultatai įvertinami statistiškai </li></ul></ul><ul><ul><li>Greitesnis nei FASTA. Atsižvelgiant į rezultatų patikimumą atmetamas triukšmas ir tokiu būdu sutrumpėja skaičiavimo laikas </li></ul></ul>

    ×