Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Podobné dokumenty
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Paralelní grafové algoritmy

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Hledání v textu algoritmem Boyer Moore

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Jan Březina. Technical University of Liberec. 30. dubna 2013

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole

Funkce, podmíněný příkaz if-else, příkaz cyklu for

63. ročník Matematické olympiády 2013/2014

Dynamické programování

Numerická stabilita algoritmů

Jan Březina. Technical University of Liberec. 21. dubna 2015

Programovací jazyk Pascal

Standardní algoritmy vyhledávací.

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Základy algoritmizace. Pattern matching

Dijkstrův algoritmus

Martin Flusser. November 1, 2016

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Binární vyhledávací stromy pokročilé partie

7. přednáška Systémová analýza a modelování. Přiřazovací problém

0.1 Úvod do lineární algebry

Algoritmus pro hledání nejkratší cesty orientovaným grafem

[1] samoopravné kódy: terminologie, princip

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

6 Příkazy řízení toku

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Lingebraické kapitolky - Analytická geometrie

Optimalizace & soft omezení: algoritmy

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Markov Chain Monte Carlo. Jan Kracík.

Základy vytěžování dat

Použití dalších heuristik

Markovovy modely v Bioinformatice

TGH09 - Barvení grafů

0.1 Úvod do lineární algebry

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

TECHNOLOGIE DOPRAVY A LOGISTIKA

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Vytěžování znalostí z dat

Třídy složitosti P a NP, NP-úplnost

TGH06 - Hledání nejkratší cesty

STROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Lineární diskriminační funkce. Perceptronový algoritmus.

1 Linearní prostory nad komplexními čísly

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Unbounded Model Checking

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Algoritmus pro generování normálních magických čtverců

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.

1. července 2010

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Výběr báze. u n. a 1 u 1

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Složitost a NP-úplnost

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Anotace. zpět k rekurzi: teorie her. Martin Pergel,

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

12. Lineární programování

Binární soubory (datové, typované)

Stromy, haldy, prioritní fronty

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Úvod do teorie grafů

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

1. Jordanův kanonický tvar

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Metoda hrubé sily, backtracking a branch-and-bound

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Algoritmizace prostorových úloh

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Příklad 1. Řešení 1a. Řešení 1b ŘEŠENÉ PŘÍKLADY Z M1B ČÁST 5

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Jan Březina. 7. března 2017

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Inferenční statistika - úvod. z-skóry normální rozdělení pravděpodobnost rozdělení výběrových průměrů

Dynamic programming. Historie. Dynamické programování je obsaženo v těchto programech: Příklad: chceme optimálně přiložit dvě sekvence

Programování v Pythonu

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Vrcholová barevnost grafu

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Anotace. Dámy na šachovnici dominance a nezávislost. Aritmetické výrazy, notace a převody mezi nimi, nejdelší rostoucí podposloupnost.

Principy indukce a rekursivní algoritmy

Algoritmizace. 1. Úvod. Algoritmus

Distribuované systémy a výpočty

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Transkript:

1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké, ale nemusí se přesně shodovat může jít o různé způsoby kódování stejného proteinu a nebo mohlo dojít k mutaci jde o tzv. motivy (motifs)

3 / 23 mějme t sekvencí DNA o délcé n hledáme motivy délky l (tzv. l-mery) v každé sekvenci chceme najít jeden l-mer tak, aby si l-mery v různých sekvencí byly co nejvíce podobné každý l-mer je jednoznačně určen svou pozicí s i v i-té posloupnosti DNA, kde 1 s i n l + 1 všech t l-merů lze jednoznačně určit vektorem s = (s 1,..., s t )

4 / 23 naším cílem nyní bude najít způsob, jak ohodnotit podobnost S mezi l-mery s čímž úlohu převedeme na problém s = arg max S( s). s k tomu použijeme tzv. matici zarovnání (alignment matrix) A( s) to jsou všechny l-mery zapsané pod sebou, takže jde o matici o t-řádcích a l sloupcích z matice zarovnání odvodíme profilovou matici P( s) ta udává, kolikrát se daný znak vyskytuje v určitém sloupci podle profilové matice vybereme konsensus C( s), tj. v každém sloupci znak, který má nejvíce výskytů nakonec podle počtu výskytu jednotlivých znaků v konsensu napočítáme celkové skóre shody S( s)

Example 1 Mějme jednu pevně danou t-tici l-merů pro t = 7, l = 8 A T C C A G C T G G G C A A C T A T G G A T C T A( s) A A G C A A C C T T G G A A C T A T G C C A T T A T G G C A C T A 5 1 0 0 5 5 0 0 P( s) T 1 5 0 0 0 1 1 6 G 1 1 6 3 0 1 0 0 C 0 0 1 4 2 0 6 1 C( s) A T G C A A C T max i=1,...,t P( s) i. 5 5 6 4 5 5 6 6 S( s) = 5 + 5 + 6 + 4 + 5 + 5 + 6 + 6 = 42 5 / 23

6 / 23 nyní již stačí najít s = arg max s S( s) platí lt 4 S( s) lt maximum tedy existuje Remark 2 K této úloze existuje duální úloha.

7 / 23 Mediánový řetězec mějme dva l-mery v a w Definition 3 Hammingova vzdálenost dvou řetězců v a w je definována jako počet pozic, na kterých se v a w liší. Example 4 v = "ATTGTC" w = "ACTCTC" d H (v, w) = 2

8 / 23 Mediánový řetězec mějme vektor s = (s 1,..., s n ), který nám udává pozice t l-merů v zadaných sekvencích mějme libovolný l-mer v definujme d H (v, s i ) jako Hammingovu vzdálenost l-meru v od l-meru začínajícím v i-té sekvenci na pozici s i definujme vzdálenost l-meru v od všech t ostatních l-merů jako t d H (v, s) = d H (v, s i ) i=1

9 / 23 Mediánový řetězec definujme celkovou vzdálenost l-meru v od zadaných DNA sekvencí jako d H (v, DNA) = min d H (v, s) s toto minum lze napočítat po složkách vektoru s je totiž min d H (v, s) = min s s t d H (v, s i ) i=1 a jednotlivé členy sumy jsou nezávislé Definition 5 Mediánový řetězec je definovaný jako v = arg min d H (v, DNA). v

10 / 23 Mediánový řetězec Theorem 6 Úlohy hledání motivu a hledání mediánového řetězce jsou vzájemně duální.

11 / 23 Proof. Mediánový řetězec snadno je vidět, že pro pevně daný vektor s a konsensus C( s) platí d H (C( s), s) = lt S( s), d H (C( s), s) počítá na jakých pozicích se konsensus C( s) liší od řetězců daných vektorem s skóre S( s) počítá na jakých pozicích se konsensus C( s) shoduje s řetezci danými vektorem s dohromady je těchto pozic lt dále je snadno vidět, že v = arg min d H (C( s), s) s a min s d H (C( s), s) = lt max S( s) s

12 / 23 Kombinatorické optimalizace tím jsme úlohu převedly na dvě různé (ale duální) úlohy z kombinatorické optimalizace (combinatorial optimization) při hledání motivu počítáme arg max s S( s) (n l + 1) t při hledání mediánového řetězce arg min v d H (v, DNA) 4 l obecně musíme generovat všechny možné řetězce z určitého stavového stromu při hledání motivu všechny možné vektory s o délce t a na každé pozici může být číslo 1 až n l + 1 při hledání mediánového řetězce všechny možné řetězce o délce l a na každé pozici může být jeden ze čtyř znaků obecně chceme generovat všechny možné řetězce o délce L tvořené abecedou o k znacích

Kombinatorické optimalizace 1: procedure ALLLEAVES( L, k) 2: a:=(1,...,1) 3: while true do 4: vypiš a 5: a:=nextleaf( a, L, k ) 6: if a = (1,...,1) then 7: return 8: end if 9: end while 10: end procedure 1: procedure NEXTLEAF( a, L, k) 2: for i = L to 1 do 3: if a i <k then 4: a i := a i + 1 5: return 6: end if 7: a i := 1 8: end for 9: return a 10: end procedure 13 / 23

14 / 23 Kombinatorické optimalizace takto lze generovat celou množinu řetězců, přes kterou hledáme optimální řešení výpočet lze urychlit technikou zvanou branch-and-bound generování řetězců si zorganizujeme do k-árního stromu, ve kterém na n-té úrovni máme fixováno prvních n 1-znaků řetězce a zbytek je neznámý pro každou větev pak uděláme odhad, jaké nejlepší skóre v ní můžeme dosáhnout podle počtu nezafixovaných znaků potřebujeme odhadnout, o kolik maximálně se může změnit optimalizovaná funkce

15 / 23 Kombinatorické optimalizace hledání motivu generujeme postupně všechny možné složky vektoru s = (s 1,..., s t ) pokud je m posledních složek nezafixovaných, můžeme je teoreticky nastavit tak, že budou ukazovat na úplně stejné podřetězce DNA mohu tak maximálně získat lm shod, víc ale ne pokud je tedy nejlepší doposud dosažené skóre větší o více než lm v porovnání se současným skóre, nemá smysl za současného stavu hledat dál a celou větev stromu lze přeskočit

16 / 23 Kombinatorické optimalizace mediánový řetězec generujeme řetězec, ke kterému se snažíme najít v každé DNA sekvenci nejpodobnější podřetězec počítáme tedy počet rozdílných znaků máme-li m posledních znaků mediánového řetězce nezafixovaných, nejlepší teoretická možnost je, že tyto znaky nám už d H (v, DNA) nezvýší, ale v žádném případě je nemůžeme snížit pokud je tedy současná částečná d H větší než nejlepší doposud nalezené řešení, nemá smysl pokračovat dál

Kombinatorické optimalizace procházení stavového stromu upravíme na procházení jeho vrcholů, ne pouze listů 1: procedure NEXTVERTEX( a, i, L, k) 2: if i < L then 3: a i+1 := 1 4: return (a, i + 1) 5: else 6: for j := L to 1 do 7: if a j < k then 8: a j := a j + 1 9: return ( a, j ) 10: end if 11: end for 12: end if 13: return ( a, 0 ) 14: end procedure 17 / 23

18 / 23 Kombinatorické optimalizace a dále potřebujeme proceduru pro přeskočení větve stavového stromu 1: procedure BYPASS( a, i, L, k) 2: for j := i to 1 do 3: if a j < k then 4: a j := a j + 1 5: return ( a, j ) 6: end if 7: end for 8: return ( a, 0 ) 9: end procedure

Kombinatorické optimalizace nyní můžeme napsat samotný algoritmus pro hledání 1: procedure BRANCHANDBOUNDMOTIFSEARCH(DNA, t, n, l) 2: s := (1, 1,..., 1) 3: bestscore := 0 4: i := 1 5: while i > 0 do 6: if i<t then 7: optimisticscore := Score( s, i, DNA) + (t i)l 8: if optimisticscore < bestscore then 9: ( s, i) := Bypass( s, i, t, n l + 1) 10: else 11: ( s, i) := NextVertex( s, i, t, n l + 1) 12: end if 13: else 14: if Score( s, DNA) > bestscore then 15: bestscore := Score( s, DNA) 16: bestmotif := s 17: ( s, i) := NextVertex( s, i, t, n l + 1) 18: end if 19: end if 20: end while 21: return bestmotif 22: end procedure 19 / 23

Kombinatorické optimalizace podobný algoritmus pro hledání medianového řetězce 1: procedure BRANCHANDBOUNDMEDIANSTRINGSEARCH(DNA, t, n, l) 2: s := (1, 1,..., 1) 3: bestdistance := 4: i := 1 5: while i > 0 do 6: if i<l then 7: prefix := nucleotid( s, i) 8: optimisticdistance := TotalDistance(prefix, DNA) 9: if optimisticdistance > bestdistance then 10: ( s, i) := Bypass( s, i, l, 4) 11: else 12: ( s, i) := NextVertex( s, i, l, 4) 13: end if 14: else 15: word := nucleotid( s, l) 16: if TotalDistance(word, DNA) < bestdistance then 17: TotalDistance := TotalDistance(word, DNA) 18: bestword := word 19: ( s, i) := NextVertex( s, i, l, 4) 20: end if 21: end if 22: end while 23: return bestword 24: end procedure 20 / 23

Hladový algoritmus pro hledání jde pouze o aproximační algoritmus, u kterého neznáme aproximační poměr v praxi ale dává dobré výsledky a funguje rychle algoritmus je součástí programu Consensus Gary Stormo, Gerald Hertz, 1989 Gary Stormo 21 / 23

22 / 23 Hladový algoritmus pro hledání algoritmus nelprve vezme první dvě DNA sekvence a najde v nich dva nejbližší l-mery pomocí Hammingovy vzdálenosti následně v každé z t zbyvajících sekvencí najde nejbližší motiv program Consensus navíc v první fázi vybere více kandidátů na motif, řádově 1000

Hladový algoritmus pro hledání 1: procedure GREEDYMOTIFSEARCH(DNA, t, n, l) 2: bestmotif := (1, 1,..., 1) 3: s := (1, 1..., 1) 4: for s 1 := 1 to n l + 1 do 5: for s 2 := 1 to n l + 1 do 6: if Score( s, 2, DNA) > Score(bestMotif, 2, DNA) then 7: bestmotif 1 := s 1 8: bestmotif 2 := s 2 9: end if 10: end for 11: end for 12: s 1 := bestmotif 1 13: s 2 := bestmotif 2 14: for i := 3 to t do 15: for s i := 1 to n l + 1 do 16: if Score( s, i, DNA) > Score(bestMotif, i, DNA) then 17: bestmotif i := s i 18: end if 19: end for 20: s i := bestmotif i 21: end for 22: return bestmotif 23: end procedure 23 / 23