IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI IV107 Bioinformatika I Přednáška 10 Katedra informačních technologií Masarykova Univerzita Brno Jaro 2008 IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Předchozí týden Získávání proteomických dat 2-D gely izolace skvrn štěpení enzymy (např. trypsin) hmotnostní spektrometrie (MS) proteinový čip MS MALDI-TOF tandemová MS IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Outline Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí DP - Needleman-Wunsch Vylepšení pro maximálně k chyb video HHMI IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Podrobné informace IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Základní pojmy abeceda {,a,c,g,t} podřetězec aaggtacgcgt prefix gtacgcgtgtt suffix cgtatgtacg IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Základní operace konkatenace x=cggat y=att x.y=cggatatt průnik x=cggat y=att Over(x,y)=at sjednocení x=cggat y=att x,y =cggatt IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Výskyt sekvenčních motivů v databázích Cílem je zjistit všechny pozice delšího řetězce, na kterých se vyskytuje kratší řetězec přesný výskyt přibližný výskyt řetězec t dlouhý (n), např genomová sekvence motiv p krátký (m), např cgcggctggtggctcg IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Naivní algoritmus a c t g t g t a t g a a a t c g c 1..n t g t c a 1..m Složitost: O(mn) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Boyer-Moore a c t g t g t a t g a a a t c g c g a t c a t × máme v motivu další t? a c t g t g t a t g a a a t c g c +1 g a t c a t kde máme v motivu další výskyt suffixu at? a c t g t g t a t g a a a t c g c +3 g a t c a t Realizujeme krok, který je větší Složitost konstrukce: O( abeceda .m) hledání: O(mn) (v praxi ale blíže k O(n)) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Automat pro hledání řetězce aba Automat vytvořen z motivu p postupně čte symboly z řetězce m. Koncový stav automatu dosáhneme po načtení celého hledaného motivu. IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI t=bababaa p=aba 0 b 0 ba 1 bab 2 baba 3 babab 2 bababa 3 bababaa 1 Složitost konstrukce: naivní O(m3 ); optimální O( abeceda .m) hledání: O(n) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Suffixový strom pro řetězec dabdac IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Kompaktní suffixový strom pro řetězec aaabbbc Konstrukce: O(n.logn) Hledání: O(m. abeceda +k) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Sufixové pole - ukazovatele na polohy suffixů seřazené lexikograficky Dlouho bylo považováno za méně kvalitní datovou strukturu, protože neobsahuje přímo informace o společných prefixech. Ty lze vsak spočítat do lcp pole (least common prefix) tak, že konstrukce pole i stromu má stejnou složitost. t = dabdac sa(t) = 7,2,5,3,6,1,4 lcp(t) = 0,0,1,0,0,0,2 6 0 1 0 abdac 4 1 ac 2 0 bdac 5 0 c 0 0 dabdac 3 2 dac IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Outline Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí DP - Needleman-Wunsch Vylepšení pro maximálně k chyb video HHMI IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Tandemová a palindromická opakování nesou biologický i praktický význam palindrom možná sekundární struktura DNA nebo RNA tandem regulace genů, telomery, identifikace jedinců z DNA IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Nejdelší společný prefix dvou pozic t g c a g a a g c a g a t c c t g a c g Složitost naivního algoritmu O(n3 ) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Posuzování tandemových opakování pomocí suffixových stromů, příp. polí (t=dabdac) lcp(1,4)=? Nalezneme větve označené 1 a 4 lcp(1,4)=da IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Hledání tandemových opakování konstrukce stromu: O(n.logn) hledání lcp pro dvě konkrétní pozice O(n.logn) Prohledávání sekvence Složitost: O(n.(logn)2 +p) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Nejdelší společný prefix mezi originální a komplementární sekvencí umožňuje urychlení hledání podobně jako pro tandemové opakování 8 t g c a g a a g c t t c t g t c t g a c g a c g t c t t c g a a g a c a g a c t g c 9* Složitost naivního algoritmu O(n3 ) Složitost naivního algoritmu O(nlp) (pro omezenou vzdálenost a délku Složitost s použitím suffixových struktur O(n) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Outline Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí DP - Needleman-Wunsch Vylepšení pro maximálně k chyb video HHMI IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Výpočet omezeného počtu buněk v tabulce DP Stačí počítat 2k+1 diagonál bez ohledu na délku sekvencí Složitost: O(kn) (naproti O(mn)) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Využití SA a LCP k rychlému postupu po diagonále Složitost: O(k2 ) IV107 Bioinformatika I Přednáška 10 Řetězce a algoritmy na řetězcích Základní pojmy Základní algoritmy Algoritmus využívající analýzu hledaného motivu Algoritmus využívající nalýzu prohledávaného řetězce Hledání opakování Tandemové opakování Palindromy Srovnávání dvou sekvencí Vylepšení pro maximálně k chyb Příště video HHMI Příště Video HHMI IV107 Bioinformatika I Přednáška 10 Dodatek For Further Reading Outline Dodatek IV107 Bioinformatika I Přednáška 10 Dodatek For Further Reading For Further Reading X