Jan Tattermusch Databáze sekundárních struktur RNA

Podobne dokumenty
Numerické metody 8. května FJFI ČVUT v Praze

Numerické metody minimalizace

1 Soustava lineárních rovnic

Linea rnı (ne)za vislost

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Edita Pelantová, katedra matematiky / 16

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Úvodní informace. 18. února 2019

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Kristýna Kuncová. Matematika B3

Matematika (KMI/PMATE)

Funkce zadané implicitně. 4. března 2019

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

Matematika 2, vzorová písemka 1

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Kristýna Kuncová. Matematika B2 18/19

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

DFT. verze:

TGH01 - Algoritmizace

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Matematika III Stechiometrie stručný

TGH01 - Algoritmizace

Geometrická nelinearita: úvod

Cauchyova úloha pro obyčejnou diferenciální rovnici

Kristýna Kuncová. Matematika B2

5. a 12. prosince 2018

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Co nám prozradí derivace? 21. listopadu 2018

Martin Pergel. 26. února Martin Pergel

Univerzita Palackého v Olomouci

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Lineární algebra - iterační metody

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

GEM a soustavy lineárních rovnic, část 2

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Inverzní Z-transformace

kontaktní modely (Winklerův, Pasternakův)

Kristýna Kuncová. Matematika B2 18/19. Kristýna Kuncová (1) Vzorové otázky 1 / 36

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Paradoxy geometrické pravděpodobnosti

1 Dedekindovy řezy (30 bodů)

Stochastické modelování v ekonomii a financích Konzistence odhadu LWS. konzistence OLS odhadu. Předpoklady pro konzistenci LWS

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

Definice Řekneme, že PDA M = (Q,Σ,Γ,δ,q 0,Z 0,F) je. 1. pro všechna q Q a Z Γ platí: kdykoliv δ(q,ε,z), pak δ(q,a,z) = pro všechna a Σ;

Zásuvný modul QGISu. QGIS plugin pro práci s katastrálními daty

Reprezentace dat. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Rovnice proudění Slapový model

Numerické metody a statistika

Diferenciální rovnice základní pojmy. Rovnice se

Ústav teorie informace a automatizace RESEARCH REPORT. Pavel Boček, Karel Vrbenský: Implementace algoritmu MIDIA v prostředí Google Spreadsheets

Nekomutativní Gröbnerovy báze

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

Vybrané kapitoly z matematiky

(13) Fourierovy řady

Pojem množiny nedefinujeme, pouze připomínáme, že množina je. Nejprve shrneme pojmy a fakta, které znáte ze střední školy.

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

TGH08 - Optimální kostry

PA152,Implementace databázových systémů 2 / 25

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

(A B) ij = k. (A) ik (B) jk.

FAKULTA STAVEBNÍ. Stavební statika. Telefon: WWW:

Statistika (KMI/PSTAT)

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Algebra I Cvičení. Podstatná část příkladů je převzata od kolegů, jmenovitě Prof. Kučery, Doc. Poláka a Doc. Kunce, se

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra matematiky

6 Dedekindovy řezy (30 bodů)

Obsah Atributová tabulka Atributové dotazy. GIS1-2. cvičení. ČVUT v Praze, Fakulta stavební, katedra mapování a kartografie

ggplot2 Efektní vizualizace dat v prostředí jazyka R Martin Golasowski 8. prosince 2016

NDMI002 Diskrétní matematika

Průvodce studiem V této kapitole se budeme zabývat diferenciálním počtem pro funkce více

Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ Katedra matematiky. Dudek Martin. obor Matematická studia

PARADIGMATA PROGRAMOVÁNÍ 1B

Funkce více proměnných: limita, spojitost, parciální a směrové derivace, diferenciál

Robotika. Kinematika 13. dubna 2017 Ing. František Burian Ph.D.

Biosignál II. Lékařská fakulta Masarykovy univerzity Brno

Teorie. kuncova/ Definice 1. Necht f je reálná funkce a a R. Jestliže existuje.

Petr Hasil. c Petr Hasil (MUNI) Nekonečné řady MA III (M3100) 1 / 187

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

David Nádhera Kontinuace implicitně zadané křivky

Tvarová optimalizace pro 3D kontaktní problém

MATEMATIKA 3 NUMERICKÉ METODY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Ústav teorie informace a automatizace. Tato prezentace je k dispozici na:

Internetová matematická olympiáda 8. ročník, Baví se student Fakulty strojního inženýrství VUT v Brně (FSI) s kamarádem:

IEL Přechodové jevy, vedení

LBF/ZUB22 Programové vybavení ordinace zubního lékaře. Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

algebrou úzce souvisí V druhém tematickém celku se předpokládá základní znalosti z matematické analýzy

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. algoritmu. Katedra algebry

Matematická analýza 2. Kubr Milan

Bardzo formalny, odbiorca posiada specjalny tytuł, który jest używany zamiast nazwiska

Transkrypt:

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jan Tattermusch Databáze sekundárních struktur RNA Kabinet software a výuky informatiky RNDr. František Mráz, CSc. Studijní program: Informatika, Programování 2007

Věnuji tuto práci Joskovi Smítkovi, nekorunovanému králi Skaláku. 2

Děkuji RNDr. Heleně Štorchové za uvedení do problematiky sekundárních struktur RNA a pomoc s výběrem tématu této práce. Dále děkuji svému vedoucímu za pomoc s výběrem tématu, cenné rady v průběhu vývoje aplikace a poznámky k textu. Prohlašuji, že jsem svou bakalářskou práci napsal(a) samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne 30. května 2007 Jan Tattermusch 3

Obsah 1 Úvod a motivace 7 2 Problematika počítačového zpracování řetězců RNA a jejich struktur 9 2.1 RNA a její sekundární struktura.................. 9 2.1.1 Stavba nukleových kyselin................. 9 2.1.2 Sekundární struktura RNA................. 11 2.1.3 Význam sekundární a terciární struktury......... 15 2.1.4 Bioinformatický model primární struktury........ 15 2.1.5 Bioinformatický model sekundární struktury....... 17 2.1.6 Externí formáty pro sekundární strukturu........ 20 2.2 Porovnávání sekundárních struktur RNA a strukturální alignment 22 2.2.1 Kritéria pro metody porovnávající sekundární struktury 22 2.2.2 Přístupy k porovnávání sekundární struktury...... 23 2.2.3 Editační vzdálenost sekvencí a sequence alignment.... 24 2.2.4 Algoritmus pro řešení problému alignmentu u sekvencí. 28 2.2.5 Podobnost stromů a tree alignment............ 30 2.3 Strukturální vyhledávání...................... 34 2.3.1 Strukturální vyhledávání pomocí přímého porovnávání struktur........................... 35 2.3.2 Indexování struktur..................... 36 2.3.3 Heuristické předfiltrování.................. 37 3 Databázová aplikace podporující strukturální vyhledávání 40 3.1 Koncept aplikace.......................... 40 3.2 Databázová a aplikační logika................... 42 3.2.1 Platforma.......................... 42 3.2.2 Datový model a úložiště dat................ 42 3.2.3 Aplikační logika....................... 43 3.2.4 librnasecstruc: PostgreSQL modul pro práci s primárními a sekundárními strukturami RNA............. 43 3.3 Webové rozhraní.......................... 44 4

3.3.1 Platforma.......................... 45 3.3.2 Datová vrstva........................ 45 3.3.3 Interoperabilita....................... 45 4 Závěr 46 Literatura 48 A librnasecstruc: RNA bioinformatický modul pro PostgreSQL 49 5

Název práce: Databáze sekundárních struktur RNA Autor: Jan Tattermusch Katedra (ústav): Kabinet software a výuky informatiky Vedoucí bakalářské práce: RNDr. František Mráz, CSc. e-mail vedoucího: frantisek.mraz@mff.cuni.cz Abstrakt: V předložené práci studujeme primární a sekundární struktury RNA a stanovujeme vhodné modely pro jejich počítačové vyjádření. Dále stanovujeme kritéria pro výběr metod na porovnávání primárních a sekundárních struktur a na jejich základě jsme vybrali metodu tree alignmentu jakožto vhodný prostředek pro implementaci strukturálního vyhledávání s tím, že zmiňujeme některá specifika problému strukturálního vyhledávání a navrhujeme některé možné modifikace zrychlující vyhledávání. Součástí práce je webová aplikace,,databáze sekundárních struktur RNA, která implementuje strukturální a sekvenčně strukturální vyhledávání. Klíčová slova: bioinformatika, RNA, sekundární struktura, strukturální alignment Title: A database for RNA secondary structures Author: Jan Tattermusch Department: Department of Software and Computer Science Education Supervisor: RNDr. František Mráz, CSc. Supervisor s e-mail address: frantisek.mraz@mff.cuni.cz Abstract: In the presented work we study RNA primary and secondary structures and we select suitable models for their computational representation. Next, we state criteria for primary and secondary structure comparison. Based on this criteria, we select tree alignment as a suitable method for implementation of structural search. We also mention some specifics of structural search task and propose some possible modifications that can speed-up the search. An important part of this work is web application RNA Secondary Structure Database, which implements structural and sequence-structural search. Keywords: bioinformatics, RNA, secondary structure, structural alignment 6

Kapitola 1 Úvod a motivace Bioinformatika je velmi moderním a dynamickým oborem. Modernosti a rychlosti jejího vývoje odpovídá i její softwarová základna. Ačkoli již existuje velké množství kvalitních aplikací sloužících k nejrůznějším účelům, stále se na pomyslném trhu s bioinformatickými produkty objevují mezery a stále je také mnoho prostoru k vylepšování existujících aplikací. Dobrými přehledy nejpoužívanějších bioinformatických aplikací z pohledu biologů jsou díla [2] a [3]. Jedním z nejznámějších problémů bioinformatiky je vyhledávání sekvencí nukleových kyselin. Nukleové kyseliny (DNA a RNA) uchovávají či přenášejí v živých organismech genetickou informaci. Možnost porovnávat 1 DNA či RNA řetězce a efektivně vyhledávát jejich analogie dává genetikům mocnou zbraň a značně ulehčuje jejich práci. Ovšem u molekul RNA nemusí být samotný řetězec nukleotidových bází z hlediska své funkce v živé buňce tou nejpodstatnější informací. Známou skutečností je, že RNA vytváří tzv.,,skládáním 2 stabilnější struktury s menší energií. Tyto struktury se nazývají sekundární (narozdíl od samotného řetězce bází, který je nazýván stukturou primární). Zajímavé je, že právě tvar těchto sekundárních struktur je v některých případech pro funkci molekul RNA podstatnější než samotná struktura primární, případně mohou být důležité obě složky zároveň. Existující databáze 3 sekvencí nukleových kyselin ovšem sekundární strukturu při vyhledávání vůbec nezohledňují. Navíc, podle autorových informací, zatím neexistuje žádná přístupná a biologickou veřejností použitelná aplikace umožňující strukturální a sekvenčně-strukturální vyhledávání nad rětězci RNA. O takové aplikaci se nezmiňuje ani [2] či [3]. Cílem této práce je tedy vytvořit použitelnou webovou aplikaci pro správu záznamů primárních a sekundárních struktur RNA a jejich anotací umožnující nad uloženými daty provádět strukturální a sekvenčně-strukturální 1 metod na porovnávání řetězců je více, z nejznámějších zmiňme například BLAST 2 anglický termín je folding ve smyslu,,skládání či,,překládání 3 nejznámější a největší jsou databáze GenBank, EMBL, DDBJ 7

vyhledávání. Cílovou skupinou, která bude aplikaci používat, jsou biologové a aplikace by tudíž měla obsahovat uživatelsky přívětivé a jednoduché rozhraní. Navíc, přestože nalezení vhodných bioinformatických prostředků pro realizaci strukturálního vyhledávání je jedním z největších úkolů této práce, detaily použitých algoritmů a technik by měly být uživateli plně skryty. Abychom přispěli k praktické použitelnosti aplikace, bude také vhodné implementovat vyhledání fulltextové. Vzhledem k tomu, že vznikající aplikace podporující strukturální vyhledávání bude první svého druhu a zpracování 4 sekundárních struktrur je velmi výpočetně náročné, bude vhodné databázi sekundárních struktur RNA chápat jako aplikaci pro práci na výzkumných projektech menšího rozsahu z hlediska zpracovávaných dat (řekněme desítky až tisíce záznamů). 4 např. jejich porovnávání a predikce 8

Kapitola 2 Problematika počítačového zpracování řetězců RNA a jejich struktur 2.1 RNA a její sekundární struktura Před popsáním problematiky porovnání sekundárních struktur a strukturálního vyhledávání bude nejprve třeba stručně osvětlit základní pojmy týkající se nukleových kyselin, podat přibližný popis jejich stavby a popsat jak a proč vzniká jejich sekundární struktura. Při tomto popisu budeme čerpat z [6], [7] a [4]. Bude také předložena motivace použitého konceptu vzájemné podobnosti sekundárních struktur z hlediska molekulární biologie. Na základě těchto informací bude stanoven vhodný model pro reprezentaci relevantních dat o RNA a jejích sekundárních strukturách pro potřeby bioinformatiky. Další poznatky budou již dále vystavěny nad tímto bioinformatickým modelem, což umožní potřebnou abstrakci pro následné výpočetní zpracování zmíněných biologických entit. 2.1.1 Stavba nukleových kyselin Nukleové kyseliny jsou biochemické makromolekulární látky, které ve své struktuře uchovávají genetickou informaci živých organismů. Z chemického hlediska jsou polymerem tzv. nukleotidů. Tyto nukleotidy jsou tvořeny třemi složkami: fosfátem (zbytkem kyseliny ortofosforečné), cukrem (některou z pentóz) a dusíkatou bází. Dusíkatá báze je vázána 1 na 1 2 pozici pentózy a 1 Jedná se tzv. N-glykosidickou vazbu viz. [7], str. 41 2 1 označuje první uhlík pentózy, dle dohodnutého chemického značení (jednotlivé uhlíky se značí 1 až 5 ). 9

celý nukleotid je dotvořen navázáním 3 zbytku kyseliny fosforečné na 5 pozici pentózy. Důležitou vlastností nukleotidů je, že mohou vytvořením pevné fosfodiesterické vazby mezi 5 a 3 pozicemi pentózy tvořit dlouhé polymerické řetězce. Pro naše potřeby postačí představa, že fosfát a pentóza tvoří vazbami mezi sebou jakousi pevnou osu celého řetězce nukleové kyseliny, na kterou jsou navázány jednotlivé dusíkaté báze. Těchto bází je více druhů, nejčastější jsou ovšem báze cytosin, thymin a uraril, které jsou odvozené od pyrimidinu, a báze adenin a guanin, odvozené od purinu. Samotná genetická informace, kterou molekula obsahuje, je určena pořadím bází. Toto pořadí bází se označuje jako primární struktura nukleové kyseliny. Podstatné je, že toto pořadí bází je orientované, protože směr fosfodiesterické vazby (5 3 nebo 3 5 ) mezi jednotlivými nukleotidy je chemicky význačný a rozpoznatelný. Nejznámější nukleovou kyselinou je kyselina deoxyribonukleová (DNA). Její řetězce jsou tvořeny nukleotidy s bázemi adenin (A), cytosin (C), guanin (G) a thymin (T) 4. Zajímavou vlastností DNA je, že její molekuly vytváří tzv. sekundární strukturu. V tomto případě se jedná o notoricky známou pravotočivou dvoušroubovici 5. Sekundární struktura je podmíněna vznikem slabých 6 vodíkových vazeb mezi bázemi dvou navzájem opačně orientovaných 7 řetězců DNA. Tyto řetězce jsou tvořeny komplementárními bázemi. Komplementární dvojice bází jsou ty, které spolu vytvářejí vodíkové můstky. Adenin je komplementární k thyminu, ke kterému se váže dvěma vodíkovými můstky. Guanin s cytosinem se váží pomocí tří vodíkových můstků. Tyto vazby jsou znázorněny na obr. 2.1. Deoxyribonukleová kyselina tedy má svou sekundární strukturu, která má i svůj biologický význam, ovšem tato struktura je velmi jednoduchá a pravidelná má tvar dvoušroubovice. Vytvořením vazeb s komplementárním řetězcem dojde v molekule k prakticky úplnému obsazení domén schopných tvořit vodíkové můstky těmito vazbami a molekula tedy nemůže vytvářet složitější sekundární struktury, které by mohly být navzájem efektivně porovnávany 8. Sekundární struktura DNA tak není vhodná ke zkoumání pro účely této práce. Mnohem větší variabilitu sekundární struktur skýtá kyselina ribonukleová. Ta je dalším druhem nukleové kyseliny. Chemicky se od deoxyribonukleové kyseliny liší pouze tím, že úlohu pentózy zastává v nukleotidech namísto deoxyribózy 3 Jedná se o vazbu esterickou. 4 DNA může obsahovat i jiné dusíkaté báze, které jsou pro nás ovšem nepodstatné. Viz. [7], Soukup str. 41 5 V tomto případě hovoříme o nejčastěji se vyskytující B-formě DNA 6 Vodíková vazba je vazba nízkoenergetická (17kJ/mol). Viz [7], str. 43 7 Ve smyslu orientace fosfodiesterické vazby mezi nukleotidy, tato vzájemná poloha řetězců se též nazývá antiparalelní. 8 Možnost porovnávat sekundární struktury je nutnou podmínkou pro strukturální vyhledávání. 10

Obrázek 2.1: molekula DNA D-ribóza a dusíkatá báze thymin je nahrazena uracilem. Primární strukturu RNA lze tedy popsat podobně jako u DNA. Narozdíl od DNA ovšem ribonukleová kyselina nevytváří dvouřetězcovou strukturu, což ponechává domény pro vytváření vodíkových můstků mezi bázemi volné a umožňuje molekulám RNA vytvářet složitější sekundární struktury. 2.1.2 Sekundární struktura RNA Jak již bylo řečeno, sekundární struktura je přibližné prostorové uspořádání molekuly polynukleotidu, které je dáno vzájemným párováním bází z různých částí stejného RNA řetězce. Tím se molekula jakoby zohýbá či skládá sama na sebe (angl. termín je folding). Důvod, proč má molekula tendence vytvořit co nejvíce vodíkových můstků mezi bázemi, je jednoduchý každý vytvořený vodíkový můstek snižuje celkovou energii molekuly, což má za důsledek zvýšení její termodynamické stability. Výskyt více stabilní sekundární struktury je potom v reálném prostředí pravděpodobnější než výskyt struktury méně stabilní. 9 Aby nedošlo k mýlce, je vhodné poznamenat, že kromě sekundární 9 Toto ovšem nemusí znamenat, že se méně pravděpodobná struktura také nevyskytne. Jednak proto, že rozdíl v pravděpodobnostech výskytu struktury nemusí být kritický, a druhak může být sekundární struktura ovlivněna dalšími faktory. Viz [4], str. 20 11

struktury má RNA ještě strukturu terciární, která určuje přesný 3D model molekuly v prostoru. Terciární struktura ovšem není z hlediska bioinformatiky příliš dobře prozkoumaná a pro výpočetní zpracování je příliš složitá 10. Ostatně už i počítačové zpracování sekundárních struktur, které jsou značným zjednodušením struktur terciárních, je výpočetně velmi náročné a vyžaduje používání optimálních algoritmů, jak uvidíme později. V rámci této práce se tedy omezíme na zpracování sekundárních struktur a struktury terciární budeme ignorovat. Dle formální definice je sekundární struktura jednoznačně určena párováním bází jednoho řetězce RNA. Ne všechny kombinace vytvořených párů jsou ovšem v rámci sekundární struktury dovoleny. V sekundární struktuře se smí vyskytovat jen páry navzájem disjunktní nebo vnořené: Definice 2.1.1 Formální definice sekundární struktury Pokud očíslujeme báze v řetězci postupně od 1 do n a označíme páry bazí spojené vodíkovými můstky dvojicí čísel podle toho, které báze jsou v nich vázány, musí pro pro každý pár v korektně definované sekundární struktuře platit: Pokud (i, j), i < j tvoří pár, musí pro všechny ostatní páry (k, l), k < l platit 1. Bud j < k (disjunktní páry) 2. nebo i < k a j > l (vnořené páry). Pokud je pravidlo vzájemných vztahů párů porušeno, struktura popisovaná párováním již není korektně definovaná sekundární struktura, nýbrž struktura terciární, která formálně povoluje libovolné vzájemné kombinace párů. Nyní máme tedy precizně definovanou sekundární strukturu a můžeme si uvést několik příkladů, jak může vypadat schematické zobrazení sekundární strutury a jak naopak vypadá struktura terciární. Na obr. 2.2 a 2.3 jsou příklady sekundární struktury. Na obr. 2.4 je vyobrazena struktura terciární. Na obrázcích sekundární struktury si můžeme všimnout, že obsahují některé typické útvary (všechny tyto útvary odpovídají formální definici sekundární struktury, jak si čtenář může snadno ověřit). Charakteristické útvary jsou (viz. obrázek 2.5): stacks (nebo též stems, kmínky, krčky, vlásenky apod.) jsou úseky, ve kterých je souvislý podřetězec sekvence spárován s jiným souvislým podřetězcem. 10 Hoechsmann v [4] zmiňuje, že jak problém předpovídání terciární struktury, tak její porovnání jsou NP-těžké úlohy. 12

Obrázek 2.2: příklad jednoduché sekundární struktury Obrázek 2.3: sekundární struktura řetězce délky 999nt 13

Obrázek 2.4: terciární struktura Obrázek 2.5: typické útvary sekundární struktury 14

V obvyklé 2D vizualizaci sek. struktury vypadají úseky jako kmínky. Důvodem pro vznik těchto kmínků je, že posloupnost více spárovaných bazí těsně za sebou je mnohem stabilnější než osamocené páry bazí. hairpin-loops jsou krátké nespárované úseky napojené na kmínek. multi-loops jsou nespárované úseky spojující více kmínků. Pokud multi-loop spojuje pouze dva kmínky, bývá nazýván také interior loop. bulges (výdutě) jsou úseky, které narušují souvislost kmínku pouze v jednom z řetězců (pokud by byl kmínek přerušen v obou řetězcích, nejednalo by se o výdut, ale o 2-loop). V obrázku je jako další z útvarů jmenován tzv. pseudoknot, který ovšem nesplňuje podmínky formální definice sekundární struktury. V tomto projektu tedy případné pseudoknots nebudeme brát v úvahu (jsou prvkem terciární struktury). 2.1.3 Význam sekundární a terciární struktury Není účelem této práce popisovat přesný biologický význam sekundární a terciární struktury RNA a navíc popsat přesnou funkci sekundární struktury není jednoduché. Proto se o významu sekundární struktury zmíníme jen okrajově a to, že sekundární struktura buněčné procesy významně ovlivňuje budeme brát jako fakt. Twyman se v [6] zmiňuje, že hairpin-loops a multi-loops sekundární struktury ovlivňují transkripci genetické informace v buňce (konkrétně mohou ovlivňovat, ve kterých místech řetězce se transkripce ukončí). Sekundární struktura má také vliv na efektivitu translace (syntéza bílkovin dle schématu určeného molekulou RNA). 2.1.4 Bioinformatický model primární struktury Při budování modelu primární struktury, který bude dále v práci použit jako abstrakce reálné sekvence nukleové kyseliny využijeme několik základních poznatků, které jsme doposud zmínili: 1. informace uchovávaná polynukleotidem je daná výběrem bází, které jsou uspořádány na,,páteři nukleové kyseliny tvořenou fosfátem a pentózou v jednotlivých nukleotidech. Jednotlivé dusíkaté báze nukleotidů mohou být čtyři A, C, G, T v případě DNA či A, C, G, U v případě RNA. 2. molekula polynukleotidu je polarizovaná a má chemicky rozpoznatelné,,konce. Jeden se označuje 5 a druhý 3 (toto souvisí s orientací fosfodiesterické vazby v páteři polynukleotidu 5 3 či naopak) 15

Vzhledem k uspořádanosti posloupnosti bazí a orientovanosti celé sekvence se reprezentace nabízí primární struktury tvoří slova nad čtyřpísmennou abecedou. Formálně: Definice 2.1.2 Model primární struktury RNA Mějme abecedu Σ RNA = {A, C, G, U}. Potom primární struktura libovolné molekuly ribonukleové kyseliny se dá reprezentovat jako slovo L = Σ n, přičemž platí zásada, že primární struktura se vždy zapisuje ve smylu orientace 5-3 molekuly (dohoda mezi biology). V případě DNA by se lišila pouze výchozí abeceda Σ. Primární struktury DNA ovšem nejsou předmětem této práce a proto se jimi nebudeme dále zabývat. Tento model by se mohl zdát dostačující, avšak má jeden drobný nedostatek není schopen vyjádřit skutečnost, že báze na dané pozici není přesně známa, nebo na jejím určení nezáleží. Zejména první případ může být dosti častý, což může souviset například s nedokonalostí sekvenovací technologie 11. Neschopnost definovaného modelu vyjádřit neurčité báze napravíme rozšířením abecedy o písmeno N, což je zástupný znak pro libovolnou bázi. Formálně je N regulárním výrazem (znak označuje sjednocení): N = (A C G U). Definujme tedy rozšířenou primární strukturu jako regulární výraz L ext, kde L ext (Σ N). V následujícím textu může být pojmem sekvence či primární struktura myšlena také sekvence či primární struktura rozšířená. Bude to v případech, kdy na přesném významu nezáleží nebo kdy je přesný význam pojmu jasný z kontextu. 11 Technologií na sekvenování (zjištění primární struktury) nukleových kyselin je více a liší se svou spolehlivostí a samozřejmě i cenou. 16

2.1.5 Bioinformatický model sekundární struktury Dříve než začneme s odvozováním vhodného teoretického modelu sekundární struktury RNA, bude dobré si stanovit některá kritéria, která by měl dobrý model pro sekundární strukturu splňovat: 1. Formální model by měl představovat vhodnou výchozí reprezentaci pro následné výpočetní zpracování. 2. Model by měl být konzistentní. Musí umožnit reprezentaci každé možné sekundární struktury a zároveň by bylo vhodné, kdyby neumožnil reprezentovat sekundární strukturu nekorektní (ve smyslu definice 2.1.1). 3. Model by měl umožňovat jednoduchý a rychlý převod do externího formátu. Dle formální definice víme, že sekundární struktura je jednoznačně určena párováním bází, které odpovídá omezujícím podmínkám na disjunktnost nebo vnoření bazických párů. Mohlo by se tedy zdát, že přirozeným modelem pro reprezentaci sekundární struktury by bylo párování v grafu na n vrcholech, kde n je délka příslušné primární struktury (počet nukleotidů v řetězci). Tento model ovšem nesplňuje podmínky 1 a 2. Nevhodnost tohoto modelu pro výpočetní zpracování vyplývá z povahy algoritmů, které budou popsány v další kapitole (tyto algoritmy přirozeně pracují na stromových strukturách). Navíc je zřejmé, že ne každé párování v grafu popisuje korektně definovanou sekundární strukturu, protože každé párování nemusí splňovat omezující podmínky formální definice sekundární struktury (to je očividné). Mnohem vhodnější model vychází z intuitivního lidského způsobu chápání sekundární struktury tak, jak je znázorněná na obrázku (obr. 2.2). Jedná se opět o reprezentaci struktury grafem, ve které ale chápeme každou dvojice spárovaných bází pouze jako jeden vrchol. Báze, které se v primární struktuře nalézají mezi dvěma bázemi tvořícími pár, potom připojíme jako dceřiné vrcholy k vrcholu reprezentujícímu zmíněné spárované báze. Tím vznikne hierarchická struktura plně popisující sekundární strukturu, v níž nespárované báze tvoří listy a páry bází tvoří ostatní vrcholy. V jazyce teorie grafů se jedná o zakořeněný uspořádaný les s popsanými vrcholy (angl. termín je rooted ordered labeled forest). 12 Uspořádanost lesa je daná tím, že dceřiné vrcholy řadíme ve smyslu orientace 5-3 (stejně jako v případě primární sekvence). Skutečnost, že se může jednat o les a ne vždy o strom, je zřejmá. Přestože se sekundární struktura reprezentuje lesem, budeme tuto reprezentaci nazývat stromová reprezentace 13. Pro názornost uvádíme na obr. 2.6 příklad, jak 12 Tuto reprezentaci používá mimo mnoha dalších také Hoechsmann ([4], str 17.) 13 Pojem lesní reprezentace zní poněkud komicky a navíc je tuto reprezentaci snadno možné převést na reprezentaci stromem pouhým přidáním virtuálního kořene. 17

Obrázek 2.6: stromová reprezentace sekundární struktury může vypadat les reprezentující sekundární strukturu. Nyní podáme definici upořádáného zakořeněného lesa s popsanými vrcholy a pro zjednodušení následujícího výkladu budeme dále pod pojmem les chápat les z této definice. Definice 2.1.3 Uspořádaný zakořeněný les s popsanými vrcholy Mějme posloupnost upořádaných zakořeněných stromů F = T 1, T 2, T 3,, T n a funkci label(v), která každému vrcholu v z libovolného stromu T i přiřadí písmeno z dané abecedy Σ. Tím je dán upořádaný zakořeněný les s popsanými vrcholy (písmeny z Σ). Tento les označujeme F (Σ). Na příkladu si můžeme všimnout, jak v této stromové reprezentaci vypadají jednotlivé útvary sekundární struktury. Kmínky ve struktuře vytvoří ve stromě delší posloupnost uzlů s pouze jedním potomkem. Smyčky (hairpin-loops) jsou tvořeny dceřinými vrcholy nějakého uzlu, které nemají žádného bratra, který by také nebyl listem. Větvení (Multi-loops) jsou taktéž množiny bratrských listů, 18

jejichž alespoň 2 bratři ale nejsou listem (a jsou tedy obvykle kořenem dalšího kmínku). Také výdutě lze v reprezentaci snadno rozeznat. Nyní definujme les reprezentující sekundární strukturu formálně: Definice 2.1.4 Model primární a sekundární struktury RNA Od abecedy Σ (obvykle {A, C, G, U} či {A, C, G, U, N}) odvod me nejdříve abecedu Σ p pro popisky vrcholů, které mohou označovat páry bází. Σ p = Σ + (Σ Σ) Dále mějme uspořádáný zakořeněný les s vrcholy popsanými znaky z abecedy Σ p (a funkce label F (v) necht udává příslušný popisek vrcholu): F (Σ p ). Necht platí, že každý vrchol v s popiskem z původní abecedy label F (v) Σ je listem. Potom je les F korektně definovaným modelem primární a sekundární struktury. Pokud zvolíme pouze jednoprvkovou abecedu bází Σ = {Base} nad kterou les sekundární struktury vybudujeme, bude výsledný strom reprezentovat pouze strukturální informaci, tedy samotnou sekundární strukturu. Toto bude později využito pro implementaci čistě strukturálního vyhledávání. Definice 2.1.5 Model sekundární struktury RNA Od abecedy Σ = {Base} odvod me nejdříve abecedu Σ p pro popisky vrcholů, které mohou označovat páry bází. Σ p = {Base; (Base, Base)} Dále mějme uspořádáný zakořeněný les s vrcholy popsanými znaky z abecedy Σ p (a funkce label F (v) necht udává příslušný popisek vrcholu): F (Σ p ). Necht platí, že každý vrchol v s popiskem label F (v) = Base je listem. Potom je les F korektně definovaným modelem sekundární struktury. 19

Zkusme nyní zhodnotit stromovou reprezentaci podle kritérií, která jsme si pro model sekundární struktury stanovili na začátku této sekce. Bod 1 je splněn, protože algoritmy používané pro porovnávání sekundárních struktur popsané v dalších kapitolách fungují na principu tree alignmentu nad stromy se stejnou stavbou, kterou jsme definovali nyní. Bod 2 je splněn, jelikož stromovou reprezentací můžeme vyjádřit každou strukturu a zároveň každý les (samozřejmě s vhodně popsanými vrcholy dle defince 2.1.4 či 2.1.5) popisuje nějakou sekundární strukturu. Bod 3 je splněn rovněž, protože stromová reprezentace může být velmi snadno převedena do externího formátu dot-bracket, který budeme využívat. Formát dot-bracket bude popsán záhy. 2.1.6 Externí formáty pro sekundární strukturu Aby mohla aplikace, která je předmětem této práce, spolupracovat s existujícím softwarem na predikci či jiné zpracování sekundárních struktur RNA, je třeba zvolit některý z existujících externích formátů, se kterým bude aplikace umět pracovat. Stručně tedy popíšeme dva nejobvyklejší formáty sekundární struktury používané ve světě bioinformatiky a vybereme ten, který je pro naše účely vhodnější. Jedním z velmi používaných formátů pro záznam sekundární struktury je formát Connect, který je dílem Michaela Zuckera 14. Tento formát jednoduše zaznamenává páry mezi bázemi. Obsahuje jeden řádek za každou bázi v primární struktuře. Příkladem sekundární struktury ve formátu Connect může být například tento: 73 ENERGY = -17.50 S.cerevisiae_tRNA-PHE 1 G 0 2 72 1 2 C 1 3 71 2 3 G 2 4 70 3 4 G 3 5 69 4 5 A 4 6 68 5 6 U 5 7 67 6 7 U 6 8 66 7 8 U 7 9 0 8... 66 A 65 67 7 66 14 Michael Zucker je hlavou skuiny The Zucker Group: Algorithms, Thermodynamics and databases for RNA Secondary Structure. http://www.bioinfo.rpi.edu/ zukerm/rna/ 20

67 A 66 68 6 67 68 U 67 69 5 68 69 U 68 70 4 69 70 C 69 71 3 70 71 G 70 72 2 71 72 C 71 73 1 72 73 A 72 74 0 73 Data v 1., 3., 4. a 6. sloupci redundantně poskytují informaci o pořadí báze v sekvenci. Ve druhém sloupci můžeme číst informaci o tom, která báze se na dané pozici nalézá. Pátý sloupec obsahuje index báze v sekvenci, pokud (i, j) tvoří pár (i je index aktuálního řádku), nebo 0, pokud je báze nespárovaná. Formát Connect sice umožňuje uchovávat i terciární strukturu, my to od něj ovšem nevyžadujeme. Navíc je dosti neúsporný a je nepřehledný. Při zběžném pohledu není možné o uložené sekundární struktuře nic usuzovat. Formát Connect tedy pro naše účely není vhodný 15. Dalším formátem je tzv. dot-bracket formát. Je rovněž velice rozšířený a softwarový balík Vienna RNA Package 16 ho používá jako výchozí formát. Z tohoto důvodu se dot-bracket formát také občas nazývá Vienna string. Jak uvidíme dále, formát Vienna má pro naše účely několik znamenitých vlastností a budeme jej proto používat jako formát pro výměnu dat sekundárních struktur s okolím. Dot-bracket formát zaznamenává sekundární strukturu jako posloupnost závorek a teček (znaky (, ), a. ). Tečka na k-té pozici záznamu značí, že báze na téže pozici v primární struktuře netvoří pár. Dvě navzájem si odpovídající závorky na pozicích i, j značí, že dvojice (i, j) pár tvoří. Pod pojmem navzájem si odpovídající závorky přitom rozumíme dvojici otevírací/uzavírací závorka tak, jak je uzávorkování běžně chápáno. Pro názornost uvádíme příklad sekundární struktury ve formátu dotb. GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUUUGGAGGUCCUGUGU UCGAUCCACAGAAUUCGCA (((((((..((((...)))).((((...))))...(((((....)))))))))))). Na prvním řádku je primární sekvence RNA (kterou takto uvádíme v případech, že je to relevantní), na druhém potom zmíněný řetězec dot-bracket. Na první pohled je sympatickou vlastností dotb formátu jeho úspornost a poměrně dobrá přehlednost. Dlouhé posloupnosti otevíracích a zavíracích 15 na internetu lze sehnat konvertory mezi různými formáty sekundární struktury, takže nám neschopnost pracovat s formátem Connect nevadí. 16 http://www.tbi.univie.ac.at/rna/ 21

závorek obvykle signalizují kmínky ve struktuře a sekvence teček bývají nespárované sekvence na koncích hairpin-loopů. Výhodou dot-bracket také je, že sekundární strukturu můžeme uchovávat samostatně, bez údajů o primární struktuře řetězce. Stačí vynechat první řádek z příkladu a dot-bracket řetězec sám o sobě poskytne úplnou informaci o struktuře. Poslední výhodou formátu dot-bracket je jeho úzká souvislost s námi použitým stromovým bioinformatickým modelem sekundární struktury popsaným výše. Pokud sestavíme syntaktický strom dot-bracket řetězce (závorky chápeme klasicky), výsledná struktura je izomorfní lesu stromové reprezentace sek. struktury s přidaným virtuálním kořenem. Tato skutečnost je uvedena bez důkazu coby očividná, dává nám však velmi dobré prostředky pro převod sekundárních struktur mezi interním (stromová reprezentace) a externím (dot-bracket) formátem. Dot-bracket reprezentaci převedeme na stromovou vytvořením syntaktického stromu dotb výrazu. Parsování uzávorkování je triviální úloha z konstrukce překladačů a je proveditelná v lineárním čase. Převod ze stromového vyjádření nazpět je pouhou modifikací in-order průchodu stromu do hloubky. Složitost převodu je opět lineární. Na závěr bude ještě dobré poznamenat, že konverze z interní na externí formu a naopak má navíc charakter bijekce. 2.2 Porovnávání sekundárních struktur RNA a strukturální alignment Možnost porovnávat sekundární struktury je základním předpokladem pro implementaci strukturálního vyhledávání v databázové aplikaci, která je předmětem této práce. Před samotným popisem metody použité pro porovnávání sekundárních struktur stanovíme kritéria, která musí tato metoda splňovat. Dle těchto kritérií byla použitá metoda vybrána z metod popsaných v [4], str. 24-55. Výsledkem aplikace kritérií je výběr metody porovnávání sekundárních struktur pomocí výpočtu podobnosti stromů. Tato metoda bude později podrobně rozvedena. 2.2.1 Kritéria pro metody porovnávající sekundární struktury První přiblížení k problému porovnání sekundárních struktur má následující zadání: Pro dvě dané sekundární struktury zjisti míru jejich podobnosti (vrat reálné číslo určující míru jejich podobnosti podobnostní skóre). 22

Tento problém není formulován korektně, protože není definováno, co přesně pod pojmem podobnost sekundárních struktur chápeme. Budeme se ovšem muset smířit s tím, že tento pojem příliš přesně být definován ani nemůže už ze své podstaty. Pod pojmem podobnost budeme tedy rozumět intuitivní podobnost struktur z lidského pohledu s tím, že přihlédneme k vlastnostem sekundární struktury z biochemického a biologického hlediska. Výsledná kritéria by mohla být takováto: 1. Aby metoda odpovídala intuitivní představě podobnosti, rozhodně by měla být odolná proti vzájemnému posunu struktur, rozdílu v jejich velikosti atp. 2. Drobné a v praxi často nastávající změny ve struktuře (prodloužení smyčky hairpin-loopu o několik málo bází, zkrácení kmínku o jeden bazický pár, vytvoření malé výdutě) by měly být metodou indikovány jako změny málo významné pro výsledné podobnostní skóre. 3. Jelikož pojem podobnost není precizně definován, bylo by dobré, aby byla metoda porovnávání sekundárních struktur dostatečně obecným způsobem parametrizována. Vhodná parametrizace metody je příslibem dobré použitelnosti i za rozličných podmínek (a my nevíme předem, k jakému konkrétnímu účelu bude databázová aplikace používána). 4. Metoda by měla volitelně umožňovat nacházet i podobnosti v podstrukturách vstupních struktur, ne jen dvě struktury porovnávat jako celek. Důvodem k tom je skutečnost, že vstupní struktury mohou sice být v globálním měřítku odlišné, ale mohou obsahovat téměř shodné podstruktury, což je jistě biologicky význačný indikátor. 5. Metoda musí umožňovat implementaci s rozumnou časovou složitostí. 2.2.2 Přístupy k porovnávání sekundární struktury Podle Hoechsmanna ([4], str. 24-25) existuje zhruba pět základních přístupů k problému porovnávání sekundárních struktur. V [4], str. 24-55, jsou tyto přístupy popsány a jsou uvedeny jejich výhody a nevýhody. Aplikujeme-li na popsané přístupy výše stanovená kritéria, zjistíme ovšem, že až na jeden přístup jsou popsané metody porovnávání sekundárních struktur pro nás nevhodné. Jedinou metodou, která splňuje všechna naše kritéria je (optimalizační) metoda výpočtu podobnosti stromů tvořících námi zvolený bioinformatický model sekundární struktury. Tato metoda se obyčejně nazývá tree alignment. V [2] se používá pro alignment termín,,přiřazení, což ovšem autor nepovažuje za příliš št astné a nebudeme dále toto označení používat. 23

Předtím, než popíšeme metodu tree alignmentu přístupu k porovnávání stromů 17 na bázi výpočtu podobnostního skóre, představíme několik příbuzných metod, ze kterých tento přístup vychází. Bude se jednat o dvě metody měření podobnosti sekvencí sequence edit distance (editační vzdálenost sekvencí) a sequence alignment a jednu metodu pro měření podobnosti stromů tree edit distance. Metody pro měření podobnosti stromů jsou vlastně rozšířením metod sekvenčních. Ty jsou ovšem jednodušší na popis a pochopení a budou představovat vhodný úvod do problematiky tree alignmentu. Problém editační vzdálenosti pro řetězce je navíc oblíbeným příkladem, na kterém se v učebnicích algoritmizace vysvětluje řešení úloh pomocí dynamického programování a čtenář bude velmi pravděpodobně s pojmem editační vzdálenosti už seznámen. 2.2.3 Editační vzdálenost sekvencí a sequence alignment Tyto dvě metody porovnávání sekvencí a zejména potom sequence alignment představují v bioinformatice metody, které jsou používány 18 pro porovnávání primárních struktur nukleových kyselin. Porovnávání primárních struktur je velmi dobře prozkoumanou oblastí 19 a můžeme proto tvrdit, že sequence alignment je pro biologicky motivované porovnávání sekvencí správnou a osvědčenou volbou. Přesto začneme popisem editační vzdálenosti, což je úloha starší a lépe známá, kterou si bioinformatika vypůjčila při vývoji metody alignmentu. Zadání úlohy editační vzdálenosti je následující: Definice 2.2.1 Problém sequence edit distance Mějme daná dvě slova L 1, L 2 nad abecedou Σ. Dále jsou dány operace: (edit) editace písmene písmeno na dané pozici v prvním ze slov změníme za jiné. (delete) vymazání písmene vymažeme některé písmeno v prvním ze slov 17 Není tak úplně podstatné, zda v tomto kontextu hovoříme o lesech či o stromech, les je snadno převoditelný na strom přidáním virtuálního kořene a tak rozlišení strom/les je důležité jen z hlediska implementace algoritmů a případně kvůli dodržení úplné formální korektnosti. 18 Řešení sequence alignmentu pomocí algoritmu Smith-Waterman představují optimální řešení, jejichž výsledků se snaží dosáhnout v praxi používané a rychlejší heuristické algoritmy BLAST a FASTA. 19 Výborný popis sequence edit distance a sequence alignmentu najdeme v [1] 24

(insert) vložení písmene na nějakou pozici v prvním ze slov vložíme libovolné písmeno z abecedy Σ. Určete nejmenší možný počet operací edit, delete a insert, který vede k transformaci slova L 1 na slovo L 2. Vhodnost této metody pro porovnávání biologických sekvencí je evidentní když uvážíme, že právě změna nukleotidové báze na jinou a vložení (či vymazání) jedné či několika bází do (z) řetězce jsou jednou z nejčastějších změn, které u molekul nukleových kyselin nastávají. Pomocí metod dynamického programovaní jsme schopni určit editační vzdálenost sekvencí v čase O( L 1 L 2 ) s tím, že poskytneme i přesnou sekvenci editačních operací, které tranformují první slovo na druhé. Pro vyhledávání v nepříliš velkém množství záznamů s omezenou délkou je tato složitost snesitelná. Souvislost edit distance s podobností sekvencí je zřejmá čím nižší je editační vzdálenost dvou sekvencí, tím jsou si podobnější. Shodné sekvence mají editační vzdálenost 0. Zde se ovšem objevuje problém, který souvisí s kritériem 4 z odstavce Kritéria pro metody porovnávající sekundární struktury. Logickou realizací výpočtu podobnosti podsekvencí (podstruktur) je namísto editační vzdálenosti celých sekvencí najít takové dvě podsekvence 20 vstupních sekvencí, aby jejich editační vzdálenost byla co nejmenší 21. V případě edit distance máme ovšem problém. Podsekvencemi s minimální editační vzdáleností jsou totiž vždy prázdné podsekvence, které mají definitoricky vzdálenost 0. Pro výpočet lokální podobnosti sekvencí je tedy editační vzdálenost nepoužitelná, což je zásadní nedostatek. Pokud se nad důvodem nepoužitelnosti editační vzdálenosti pro určení lokální podobnosti zamyslíme blíže, zjistíme, že její nepoužitelnost je daná tím, že kratší sekvence mají přirozenou tendenci vykazovat menší vzájemnou editační vzdálenost než delší sekvence. Dobrá míra podobnosti by ovšem měla dlouhé velmi podobné sekvence ohodnotit mnohem větším podobnostním skóre než kratší, jelikož podobnost dlouhých sekvencí je mnohem význačnější 22 jev než podobnost krátkých úseků bází. Spolu s velmi dobrou parametrizovatelností nám přesně tuto vlastnost nabízí metoda sequence alignmentu. Pojem alignment se používá ve dvou významech. První označuje samotnou metodu pro porovnávání sekvencí či struktur v tomto smyslu jsme jej používali doposud. Druhý význam je označením pro prostředek k vyjádření skutečnosti, které části sekvence či struktury si odpovídají a které 20 podsekvencí slova je libovolný suffix nějakého prefixu slova 21 O tomto přístupu se zmiňuje Pevzner i Hoechsmann. My se o podobnosti podstruktur a podsekvencí zmíníme níže coby o lokálním alignmentu a small-in-large alignmentu. 22 z hlediska pravděpodobnosti výskytu u náhodných sekvencí 25

nikoliv. V případě sekvencí se obvykle alignment znázorňuje dvouřádkovým schematickým zápisem (zde příklad pro sekvence L 1 = AUGUUAU, L 2 = AUCGUAC): A U G U U A U A U C G U A C Ze zápisu alignmentu můžeme vyčíst, které části sekvencí L 1 a L 2 pokládala metoda alignmentu za sobě odpovídající. V prvním řádku alignmentu jsou postupně zapsána písmena slova L 1, druhém řádku písmena L 2. Doplňující znak,, (v literatuře se označuje jako gap) označuje, že v jedné či druhé sekvenci došlo k vložení, případně k vypuštění písmene. Je zřejmé, že znak gap se nemůže vyskytovat v jednom sloupci v obou řádcích zároveň a proto alignment může být dlouhý maximálně L 1 + L 2. Písmena ve sloupcích mohou být bud shodná či neshodná, což označuje zachování či nahrazení bází na příslušných pozicích sekvencí. Výhodou tohoto zápisu je, že je velmi názorný a srozumitelný biologům, kterým má také primárně sloužit. Klíčovou myšlenkou metody alignmentu je každý možný alignment dvou sekvencí ohodnotit nějakým reálným číslem mírou podobnosti sekvencí. Následnou úlohou je potom najít alignment s nejlepším skóre. K ohodnocení alignmentu budeme potřebovat tzv. matici skóre (scoring matrix, penalty matrix). Ta udává, jak který sloupec alignmentu přispěje k celkovému podobnostnímu skóre sekvence. Výsledné podobnostní skóre sekvencí je potom pouhým součtem skóre jednotlivých sloupců. Definice 2.2.2 Matice skóre (scoring matrix, penalty matrix) Mějme abecedu Σ (nad kterou tvoříme sekvence). Potom matice δ = R((Σ + { }) (Σ + { }) se nazývá maticí skóre (pro abecedu Σ). Uved me příklad jak může matice skóre pro sekvence RNA vypadat: δ(i, j) A C G U A 1-0.5-0.5-0.5-1 C -0.5 1-0.5-0.5-1 G -0.5-0.5 1-0.5-1 U -0.5-0.5-0.5 1-1 1-1 -1-1 26

Obsahem jednotlivých polí matice je skóre, které přiřadíme sloupci alignmentu obsahujícímu příslušnou kombinaci písmen. Z příkladu můžeme například vyčíst, že shoda bází navýší podobnostní skóre dvou sekvencí o 1. Naopak neshoda znamená postih 0,5. Vymazání či přidání báze ze sekvence má potom postih 1. Kombinace dvojice písmen ve sloupci alignmentu je beze smyslu, proto má příslušné pole v matici přiřazenou hodnotu. Poznamenejme ještě, že matice skóre jsou obykle v praxi symetrické, i když pro metodu alignmentu to není nutným předpokladem. Nyní, když máme zadefinovanou matici skóre, můžeme zadefinovat způsob vyhodnocování skóre libovolného alignmentu: Definice 2.2.3 Skóre alignmentu Mějme alignment dvou sekvencí nad abecedou Σ kde A = a 1 a 2...a n, a i = (v i, w i ). Dále mějmě matici skóre pro tutéž abecedu Σ. Potom skóre alignmentu se vypočítá následovně: n s A = δ(v i, w i ). i=1 Nyní se již můžeme zaměřit na formální definici problému sequence alignmentu. Jako první zmíníme problém, který se nazývá global sequence alignment. Předmětem tohoto problému je najít vzájemnou podobnost dvou sekvencí jako celků. Definice 2.2.4 Globální sequence alignment Mějme daná slova L 1, L 2 nad abecedou Σ a podobnostní matici δ nad touže abecedou. Úkolem global alignmentu je najít takový alignment A max mezi všemi alignmenty slov L 1 a L 2, aby platilo že skóre alignmentu vypočtené pomocí matice δ je maximální možné. s Amax 27

Alignment sekvencí rozšiřuje základní myšlenku edit distance, která používá pro transformaci jedné sekvence do druhé editační operace změna písmene a jeho vymazání či přidání. Všem těmto operacím může být prostřednictvím matice skóre nastaven libovolný postih. Zavedením matice skóre navíc umožňujeme ještě mnohem preciznější parametrizaci celé úlohy hledání podobnosti sekvencí. To je pozitivní, jelikož dobrá parametrizovatelnost byla jedním z požadavků na metodu pro vyhodnocování podobnosti sekundárních struktur a my později uvidíme, že rozšíření metody alignmentu ze sekvencí na stromy tuto parametrizovatelnost zachová. Problémem, který globální alignment sekvencí neřeší je vyhodnocování podobnosti podsekvencí dvou daných sekvencí 23. V praxi se často může stát, že si dvě sekvence v globálním měřítku příliš neodpovídají, ale obsahují společnou podsekvenci, která vykazuje podobnost mnohem větší. Globální alignment v tomto případě nepodá relevantní výstup. Proto zadefinujeme ještě lokální verzi Definice 2.2.5 Lokální sequence alignment Mějme daná slova L 1, L 2 nad abecedou Σ a podobnostní matici δ nad touže abecedou. Úkolem local alignmentu je najít takový alignment A max mezi všemi alignmenty všech podslov l 1 a l 2 slov L 1 a L 2, aby platilo že skóre alignmentu s Amax vypočtené pomocí matice δ je maximální možné. Existuje ještě jeden druh alignmentu, tzv. small-in-large alignment. Ten se chová vůči první ze vstupních sekvencí,,globálně a ke druhé,,lokálně. Pro databázové vyhledávání by mohl být vhodný, proto jej ještě později zmíníme a zadefinujeme jeho variantu pro stromy. Nyní se krátce zmíníme o algoritmu, kterým je možné problém sekvenčního alignmentu efektivně řešit. 2.2.4 Algoritmus pro řešení problému alignmentu u sekvencí Naivním přístupem pro nalezení nejlépe ohodnoceného alignmentu je jednoduše výpočet ohodnocení všech možných alignmentů a výběr toho nejlepšího. Snadno si ovšem ověříme, že možných alignmentů je exponenciálně mnoho vzhledem k délce sekvencí. Správným přístupem k problému je použití metod dynamického programování podobně jako v případě problému editační vzdálenosti sekvencí. Námi popsaný algoritmus je v podstatě známý algoritmus Smith-Waterman. 23 což je také důvod proč jsme ustoupili od metody edit distance 28

Jako u každého problému řešeného dynamickým programováním je základem algoritmu formule, která udává rekurenci výpočtu 24. V tomto případě spočívá myšlenka rekurentnosti algoritmu v tom, že skóre maximálního alignmentu se dá určit v konstantním čase ze tří známých skóre maximálních alignmentů jednodušších 25. Definice 2.2.6 Rekurentní formule global alignmentu Mějme slova v = v 1 v 2 v 3...v m, w = w 1 w 2 w 3...w n. Necht s i,j, 0 < i <= m a 0 < j < n označuje skóre maximálního alignmentu sekvencí v 1 v 2 v 3...v i a w 1 w 2 w 3...w j při dané matici skóre δ. Potom pro globální alignment platí rekurentní formule s i 1,j + δ(v i, ) s i,j = max s i,j 1 + δ(, w j ) s i 1,j 1 + δ(v i, w j ) přičemž s m,n je hledané skóre maximálního alignmentu A max. Navíc některé hodnoty s i,j jsou triviální. Jmenovitě s 0,0 = 0 definitoricky (podobnost prázdných slov je nulová). Pro s k,0 a s 0,l platí výše uvedená rekurentní formule s tím, že některé výrazy v maximu nemají smysl. Po vyloučení těchto výrazů a dostáváme, s k,0 = s k 1,0 + δ(v i, ) a s 0,l = s 0,l 1 + δ(, w j ). Abychom mohli algoritmus implementovat, je ještě třeba znát možné pořadí výpočtu s i,j. Je snadné ověřit, že například výpočet s i,j přes všechna i (0,..., m) ve vnějším cyklu spolu s vnitřním cyklem přes j (0,..., n) takové vhodné pořadí výpočtu tvoří. Celkově pro alignment tedy pro výpočet skóre maximálního alignmentu potřebujeme nm kroků proveditelných v O(1). Složitost algoritmu Smith-Waterman je tedy O(n 2 ), pokud mají sekvence srovnatelnou délku. 24 Při známé rekurenci již stačí jen stanovit vhodné pořadí výpočtu prvků rekurence a získáme kompletní algoritmus dynamického programovaní, který již lze implementovat. 25,,jednoduchostí je zde dána topologickým uspořádáním grafu závislostí rekurence algoritmu 29

Je vhodné poznamenat, že pokud si budeme v průběhu výpočtu poznamenávat, který ze tří výrazů v maximu rekurentního vzorce byl pro dané i, j maximální, lze po skončení výpočtu v lineárním čase z těchto záznamů zkonstruovat výsledný alignment. Co se problému lokálního alignmentu týče, liší se jen drobnou změnou rekurentní formule a tím, že si po dobu výpočtu musíme pamatovat všechna spočtená s i,j. Případné zájemce o podrobnější popis algoritmu Smith-Waterman či jeho lokální verze odkazujeme na [1], kap. 6. 2.2.5 Podobnost stromů a tree alignment Jak jsme již naznačili, budeme pro určování podobnosti stromů reprezentujících sekundárních struktury používat metodu tree (forest) alignmentu, která je podrobně popsaná v [4], kap. 3. Tato metoda je v podstatě zobecněním alignmentu sekvenčního, což je také jedním z důvodů, proč jsme se výše v textu strukturálním alignmentem zabývali. Stejně jako pro sekvence existuje i pro stromy obdoba úlohy editační vzdálenosti, ze které tree alignment vychází. Edit distance pro stromy používá tyto editační operace: (node relabeling) přejmenování vrcholu tato operace značí přejmenování vrcholu. Vrchol může ve stromové reprezentaci sekundární struktrury označovat bud konkrétní nespárovanou bázi nebo bázi spárovanou. V alignmentu se při přejmenování vrcholu s popiskem l 1 na l 2 objeví objeví dvojice (l 1, l 2 ). (node deletion) vymazání vrcholu vymazání vrcholu z první struktury. Dceřiné vrcholy vymazaného vrcholu v i se po úpravě stávají dceřinými uzly otce uzlu v i. V alignmentu se obdoba této operace značí (l i, ), kde l i = label(v i ). (node insertion) vložení vrcholu vložení vrcholu do první struktury. Tato operace je symetrická k vymazání vrcholu. V alignmentu se značí (, label(w j )) 26. Stejně jako u sekvencí není možné pro problém editační vzdálenosti stromů definovat lokální podobu úlohy, která by sloužila k určování podobnosti podstruktur. Řešení tohoto problému tkví opět v užití podobnostního modelu namísto distančního (k výpočtu podobnosti budeme opět používat matici skóre). Zhodnotíme-li nyní podle našich dosavadních znalostí model tree alignmentu pro porovnávání sekundárních struktur podle kritérií, která jsme si výše stanovili, 26 Vzhledem k symetričnosti editačních operací se často operace mazání a přidání vrcholu považují za jednu operaci nazývanou indel (insertion/deletion). 30

Obrázek 2.7: ukázka alignmentu stromů (lesů) zjistíme, že vyhovuje všem pěti 27. Ještě předtím, než přistoupíme k definici všech tří variant problému tree alignmentu pro stromy, zadefinujeme si potřebné pojmy: Definice 2.2.7 Alignment pro sekundární struktury Mějme dány lesy F 1 (Σ p ) a F 2 (Σ p ). Abecedou alignmentu Σ A odvozenou od Σ p označme: Σ A = (Σ p + { }) (Σ p + { }). Les A(Σ A ) je alignment F 1 a F 2 právě když po vymazání všech vrcholů označených z A 1 a A 2 platí F 1 = A 1 F 2 = A 2, přičemž A 1, A 2 označují tzv. 1. a 2. složku alignmentu. Složka alignmentu A k je les strukturálně izomorfní alignmentu A, jehož vrcholy jsou namísto uspořádanou dvojicí popsány pouze příslušnou k-tou složkou vektoru popisku vrcholu v původním A. Ukázku alignmentu a jeho složek je znázorněn na obr. 2.7. Stejně jako v případě sekvenčního alignmentu budeme podobnost struktur vyhodnocovat pomocí skóre maximálního alignmentu. Skóre alignmentu lesů se vypočítá následovně: 27 Bod 5 by vzhledem k použití metody pro databázové vyhledávání mohl být diskutován, což učiníme v jedné z dalších kapitol 31

Definice 2.2.8 Skóre alignmentu pro lesy Mějme alignment A(Σ A ), kde Σ A je abeceda alignmentu odvozená od Σ p. Dále necht je daná matice skóre δ nad abecedou Σ p. Potom skóre alignmentu s A se vypočte takto: s A = (v,w) V δ(v, w), kde V je množina všech popisků vrcholů alignmentu A. Celkem existují tři použitelné varianty tree alignmentu: globální, lokální a small-in-large. Základní varianta je globální alignment, který hledá maximální alignment dvou celých lesů. Lokální alignment hledá podobnost podlesů vstupních struktur. 28 Poslední variantou tree alignmentu je small-in-large alignment, který je hybridem a hledá maximální alignment celého lesa první struktury s podlesem druhé struktury alignmentu. Definice 2.2.9 Globální tree alignment Mějme dány lesy F 1, F 2 nad abecedou Σ p a podobnostní matici δ nad touže abecedou. Úkolem global alignmentu je najít takový alignment A max mezi všemi alignmenty lesů F 1 a F 2, aby platilo že skóre alignmentu vypočtené pomocí matice δ je maximální možné. s Amax Definice 2.2.10 Lokální tree alignment Mějme dány lesy F 1, F 2 nad abecedou Σ p a podobnostní matici δ nad touže abecedou. Úkolem local alignmentu je najít takový alignment A max mezi všemi alignmenty všech podlesů f 1 a f 2 lesů F 1 a F 2, aby platilo že skóre alignmentu s Amax vypočtené pomocí matice δ je maximální možné. Definice 2.2.11 Small-in-large tree alignment 28 Přesněji řečeno hledá podobnost uzavřených podlesů (closed subforests). Přesnou definici uzavřeného podlesa lze nalézt v [4], str. 64. V dalším textu budeme pod pojmem podles chápat podles uzavřený. 32

Mějme dány lesy F 1, F 2 nad abecedou Σ p a podobnostní matici δ nad touže abecedou. Úkolem small-in-large alignmentu je najít takový alignment A max mezi všemi alignmenty lesa F 1 a všech podlesů f 2 lesa F 2, aby platilo že skóre alignmentu s Amax vypočtené pomocí matice δ je maximální možné. Algoritmus pro výpočet všech tří variant alignmentu je podobný a shoduje se v rekurentní formuli. Předtím, než tuto společnou formuli uvedeme, ujasníme si značení, které budeme používat. Necht F je les. Potom značíme: len(f ) počet stromů (komponent) v lese F i : F je les tvořený prvními i stromy v lese F F : j je les tvořený posledními j stromy v lese F F F F kořenový uzel prvního stromu lesa F je definováno jako F : (len(f ) 1), tedy les tvořený všemi stromy lesa F kromě prvního je les tvořený dceřinými stromy uzlu F S použitím tohoto značení již můžeme vyjádřit rekurenci tree alignmentu. Formule jsou převzaté z [4], str. 65 Definice 2.2.12 Rekurence tree alignmentu Mějme lesy F, G nad abecedou Σ p a matici skóre δ nad toutéž abecedou. Potom pro podobnostné skóre σ(f, G) platí rekurentní formule: relabel(f, G) = δ(label(f ), label(g ))+ σ(f, G ) + σ(f, G ) delete(f, G) = δ(label(f ), )+ max r [0,len(G)] { σ(f, r : G) + σ(f, G : (len(g) r)) } insert(f, G) = δ(, label(g ))+ max r [0,len(F )] { σ(r : F, G ) + σ(f : (len(f ) r), G ) } 33

σ(f, G) = 0 pokud F = a G = δ(label(f ), ) + σ(f, )+ σ(f pokud F a G =, ) δ(, label(g )) + σ(, G )+ σ(, G pokud F = a G ) relabel(f, G) max delete(f, G) jindy insert(f, G) Popsaná rekurence je platná pro všechny tři varianty alignmentu. Ty se poněkud liší v tom, že local a small-in-large musí narozdíl od globálního alignmentu vypočítat hodnotu σ(f, g) pro všechny podlesy lesů F, G a po vypočtení těchto podobností ještě všechny (nebo část v případě small-in-large alignmentu) prohledat a zjistit maximum. Proto také mají větší asymptotickou složitost než global alignment. Global alignment má časovou složitost O( F G (deg(f ) + deg(g)) 2 ), kde deg(f ) je maximum stupňů všech vrcholů F. Local alignment má potom složitost O( F G deg(f ) deg(g) (deg(f ) + deg(g))), stejně jako small-in-large alignment 29. Prostorová složitost všech popsaných variant alignmentu je O( F G deg(f ) deg(g)). Vzhledem k tomu, že Hoechsmann v [4] popisuje ještě některé ne zcela triviální optimalizace jak z hlediska pamět ové, tak časové složitosti a i rekurentní vzorec pro σ dochází jistých změn, nebudeme zde úplný algoritmus na výpočet tree alignmentu uvádět a spokojíme se s jednoduchým rekurentním vzorcem coby základní myšlenkou použitého algoritmu dynamického programování. Zájemci o detaily algoritmu a jeho implementace najdou podrobný popis v [4]. Poznamenejme ještě, že verze algoritmu implementovaná v rámci této práce samozřejmě obsahuje všechny Hoechsmannem popisované optimalizace. Nyní, když máme popsán algoritmus pro porovnávání sekundárních struktur, můžeme se dále zabývat problematikou jeho využití v strukturálním a sekvenčně-strukturálním vyhledávání. 2.3 Strukturální vyhledávání Možnost vyhledávání v databázi na základě zadané struktury a případně i sekvence je klíčovou funkcionalitou aplikace, která je předmětem této práce. V této části práce popíšeme některé přístupy ke strukturálnímu vyhledávání a uvedeme důvody, proč jsou či nejsou použitelné. 29 Ten je ve skutečnosti o něco rychlejší, ale není snadné to ukázat. Viz [4], str. 78 34

2.3.1 Strukturální vyhledávání pomocí přímého porovnávání struktur Zřejmým přístupem, jak strukturální 30 vyhledávání realizovat je jednoduše pomocí algoritmu tree alignmentu porovnávát dotazovanou strukturu se strukturou uloženou v databázi jednu po druhé. Po vypočítání všech podobnostních skóre vybereme struktury s nejlepším podobnostním skóre a interpretujeme je jako výsledek vyhledávání. Tato jednoduchá metoda má několik výhod: 1. je velmi přesná. Tree alignment je v současnosti nejlepší známou metodou na porovnávání sekundárních struktur. Pokud tedy struktura v databázi a struktura dotazu budou z pohledu biologa nějak podobné, dává nám tree alignment největší pravděpodobnost ze všech metod, že tuto podobnost správně odhalí. 2. je stejně dobře parametrizovatelná jako samotný tree alignment (maticí skóre). 3. je přímočará a jednodušší na implementaci než ostatní metody. Jedinou nevýhodou jednotlivého porovnávání struktur je, že je tato metoda velmi náročná na výpočetní výkon. Podíváme-li se na výpočetní složitost jednotlivých variant tree alignmentu, vidíme, že složitost algoritmu je problém. Ideální by bylo výpočet algoritmů nějak urychlit, zatím ovšem není známo, jak by taková optimalizace měla vypadat. Namísto snižování složitosti algoritmu můžeme ovšem poměrně dobře dospět ke kompromisu prostým omezením velikosti sekundárních struktur v databázi. Narozdíl například od sekvencí nukleových kyselin lze délku sekundárních struktur poměrně rozumně shora omezit 31. Délka sekundární struktury uložené v databázi by neměla být delší než 1000 bází. U takto velkých molekul je již problematická jak sama predikce sekundárních struktur, tak jejich měření pomocí rentgenových difrakčních metod. Sekundární struktura sekvence o délce 999nt je znázorněna na obr. 2.3. Obvyklá délka dotazu do databáze pak může být okolo 100 nt. Dalším druhem omezení je také očekávaný způsob využití databázové aplikace předpokládá se, že aplikace by mohla být využívána jako prostředek ulehčující podrobnější výzkum nad množinou řádově stovek či tisíců záznamů. Některé sekundární struktury uložené v databázi nemusejí navíc být vůbec se strukturálním dotazem porovnávány, pokud strukturální vyhledávání zkombinujeme například s fulltextovým filtrováním podle anotace záznamů (což by mohl být v praxi častý případ). 30 pojmem strukturální vyhledávání je myšleno i vyhledávání sekvenčně-strukturální. 31 Sekvence mohou být poměrně libovolně dlouhé, třeba několik desítek tisíců bází. 35

Pokud tedy od vyhledávacího enginu nevyžadujeme odpovědi v reálném čase 32, může být metoda přímého porovnávání ve většině případů velmi uspokojivým řešením strukturálního vyhledávání. Při posuzování použitelnosti metody je také třeba brát v úvahu skutečnost, že databáze sekundárních struktur RNA je v zásadě první svého druhu 33 a jedním z jejích úkolů je prozkoumat reálné možnosti strukturálního vyhledávání a vybudovat především aplikaci se základní funkcionalitou strukturálního vyhledávání a umožnit snadné pozdější rozšiřování a přidávání vyhledávacích strategií. Vzhledem k tomu, že implementace kompletní webové aplikace, databázové logiky a bioinformatické knihovny pro práci se sekvencemi a sekundárními strukturami (včetně algoritmů pro alignment) je již sama o sobě dosti náročná, je vyhledávání v současné době implementováno pouze pomocí metody přímého porovnávnání struktur s tím, že v designu aplikace je přihlédnuto k tomu, aby bylo možné metody vyhledávání dále vylepšovat. 2.3.2 Indexování struktur Indexování struktur je potenciálně nejrychlejší možnou metodou, kterou je možné sekundární struktury vyhledávat. Předpokládá ovšem využití nějakého podobnostního indexovacího schématu, které by umožnilo prohledáním indexu najít i struktury alespoň do jisté míry podobné 34. Takovéto schéma zatím není známo a pravděpodobně ani nikdy známo nebude. Není totiž známo ani pro primární struktury, které se dají reprezentovat speciálním případem stromové reprezentace 35. Pokud by tedy někdo objevil vhodné (biologicky opodstatnitelné) indexovací schéma pro stromy, zároveň by tím objevil indexovací schéma pro sekvence, které ovšem, jak jsme zmínili, není známo, přestože přechod od struktur k sekvencím představuje obrovské zjednodušení zmíněného problému. Jednou z možností, jak přes všechny obtíže využít indexování, je rezignovat na indexování celých stromů sekundárních struktur, ale před jejich zaindexováním je nejprve zjednodušit tak, aby reprezentovaly pouze topologii útvarů vyskytujících se v sekundární struktuře. Příklad takového zjednodušení, které se nazývá coarse-grained (,,hrubá ) reprezentace, je znázorněn na obr. 2.8. Vlastností coarse-grained reprezentace je, že editační operace na sekundární struktuře často ponechají coarse-grained reprezentaci 32 Mnoho bioinformatických webových aplikací pracuje na principu dávkového zpracování dotazu. Na zpracování námi zadaných dat jsme upozorněni např. e-mailem poté, co se náš výpočet dostane na řadu a je vyřešen. 33 Autorovi není znám podobný projekt a nezmiňuje se o něm ani [2] či [3] 34 Realizace vyhledávání na přesnou shodu je snadná, ale nemá v bioinformatice žádné použití. 35 Les osamocených listů reprezentuje sekvenci bází bez sekundární struktury 36

Obrázek 2.8: coarse-grained reprezentace sekundární struktury nezměněnou, což do indexovací metody vnáší i částečnou odolnost proti některým změnám struktur. Samotné indexování pak probíhá tak, že běžnými indexovacími prostředky DBMS (např. B-stromem) indexujeme binární reprezentaci všech podlesů sekundární struktury v coarse-grained reprezentaci. Dohledání struktury podle coarse-grained strukturálního dotazu pak probíhá pouhým prohledáním indexu, což umožňuje vyhledávání v reálném čase s velmi malou dobou odezvy. Problémem této metody je, že vyhledávání pomocí coarse-grained reprezentace vůbec nezohledňuje primární strukturu, která může být podstatná. Hoechsmann také v [4] zmiňuje, že coarse-grained reprezentace sice umožňuje dobrou topologickou klasifikaci sekundárních struktur, ale pro porovnávání coarse-grained reprezentací se těžko hledá biologická motivace. Dalším problémem metody je, že není rezistentní proti některým druhům změn v sekundárních strukturách (zejména těch topologicky složitějších, kde je větší pravděpodobnost vzniku či zániku výdutí) a dotazy na jednoduché topologie zase příliš málo omezují množinu záznamů odpovídající dotazu. 2.3.3 Heuristické předfiltrování Heuristické předfiltrování je velmi slibnou metodou, jak urychlit vyhledávání založené na přímém porovnávání sekundárních struktur pomocí alignmentu bez podstatného snížení kvality výsledků, které vyhledávání poskytne. Základní princip je takovýto: 1. pomocí vhodné heuristiky, která má podstatně menší složitost než samotný tree alignment, se pokusíme odhadnout podobnostní skóre 37

dotazu a struktury v databázi, které bychom obdrželi, kdybychom je porovnali plnohodnotým tree alignmentem. 2. Pomocí vypočítaných odhadů skóre a tzv.,,přísnosti filtru vyřadíme určitou část sekundárních struktur v databázi z dalšího zpracovávání coby nevhodné kandidáty na vysoké podobnostní skóre. 3. Sekundární struktury z předfiltrované množiny porovnáme se strukturálním dotazem pomocí plnohodnotného algoritmu tree alignmentu. 4. Výsledkem vyhledávání jsou sekundární struktury s nejlepším podobnostním skóre z druhé fáze porovnávání. Pro výběr filtru jsou kritické dvě vlastnosti. Jednak nesmí filtr odstranit ze zpracovávané množiny struktury, které by v tree alignmentu dosáhly vysokého skóre. Na druhé straně ovšem nesmí nepodobným strukturám přiřazovat podobnostní skóre příliš velké, protože nepodobné struktury musí být z dalšího zpracování vyřazeny, aby se zajistilo zrychlení celého vyhledávání. První popsaný druh chyby je z našeho pohledu horší, protože výrazně zhoršuje kvalitu výsledků vyhledávání, zatímco druhý druh chyby znamená pouze prodloužení výpočtu. V závislosti na pravděpodobnosti výskytu chyby prvního druhu určujeme hodnotu,,přísnosti filtru. Jednou z potenciálně dobrých heuristik je předfiltrování struktur pomocí sequence alignmentu jejich speciálně označkovaných primárních struktur. V primární struktuře nejdříve označkujeme písmeny z rozšířené abecedy Σ M místa začátků a konců kmínků v závislosti na hloubce zanoření struktury např. až do hloubky 10. Označkovaná sekvence může vypadat například takto (zápis odpovídá struktuře na obr. 2.2): M 3A, G, C, G, G, A, U, U, M 2A, U, A, M 1A, G, C, U, C, M 0A, A, G, U, U, G, G, G, A, M 0B, G, A, G, C, M 1B, G, M 1A, C, C, A, G, M 0A, A, C, U, G, A, A, G, A, U, M 0B, U, U, G, G, M 1B, A, G, G, U, C, M 1A, C, U, G, U, G, M 0A, U, U, C, G, A, U, C, M 0B, C, A, C, A, G, M 1B, M 2B, A, A, U, U, C, G, C, M 3B, A Nad abecedou Σ M poté definujeme matici skóre, jejíž hodnoty musí být zvoleny tak, aby hodnota skóre vyplynuvší z porovnávání 36, označkovaných 36 Použitý sequence alignment by z měl pochopitelných důvodů implementovat rozšíření affine-gap-penalties popsané v [1]. Toto rozšíření v podstatě umožňuje přisuzovat různou důležitost různě dlouhým posloupnostem znaků,, v alignmentu. Principem této metody je zavedení dvou nových postihů postihu za započetí mezery (gap opening penalty) a postihu za prodloužení mezery (gap extension penalty). 38

sekvencí svojí výší přibližně odpovídala hodnotě skóre obdržené pomocí tree alignmentu příslušných struktur 37. Pokud se heuristika porovnávání struktur pomocí označkovaných sekvencí v budoucnu osvědčí v experimentech nad reálnými daty, předpokládá se její zařazení mezi standardní vyhledávácí metody databáze sekundárních struktur RNA. Pro tyto účely byly v knihovně funkcí pro zpracování sekundárních strutur RNA implementovány algoritmy dynamického programování pro alignment sekvencí a označkovaných sekvencí, včetně rozšíření affine-gap-penalties (viz [1]). 37 Heuristika značkování sekvencí bude použitelná a ve chvíli, kdy se alespoň experimentálně ověří, že hodnoty matice nad Σ M popsaným způsobem zvolit lze (alespoň s jistými omezeními). 39

Kapitola 3 Databázová aplikace podporující strukturální vyhledávání V minulé kapitole jsme se zaměřili na popis biochemických a bioinformatických aspektů sekundární struktury RNA a podali jsme popis algoritmů a metod, které lze použít pro implementaci jádra aplikace,,databáze sekundárních struktur RNA. Nyní popíšeme detaily návrhu celé aplikace a dodáme nějaké poznámky ohledně její implementace. Zvláště se zaměříme na databázovou logiku aplikace a popis bioinformatické knihovny pro zpracování primárních a sekundárních struktur, která vznikla jako součást této práce a funguje jako zásuvný modul do DBMS PostgreSQL. 3.1 Koncept aplikace Databáze sekundárních struktur RNA je dále po funkční stránce rozdělená na tři moduly modul správy dat (database management module) sloužící pro přidávání, úpravu a inspekci dat v databázi, importní modul, zajišt ující import většího počtu anotací či sekundárních struktur z externích aplikaci, a modul vyhledávácí, který umožňuje fulltextové, strukturální a sekvenčně-strukturální vyhledávání v databázi. Všechny moduly jsou podrobně popsány v uživatelské dokumentaci přístupné přímo na webu projektu. Z hlediska návrhu je aplikace,,databáze sekundárních struktur RNA běžná PHP webová aplikace pracující nad databázovým strojem, který jednak zajištuje ukládání a přístup k datům a jednak obsahuje veškerou aplikační logiku. Schéma celého kusu softwaru můžeme vidět na obr. 3.1. Celá aplikace využívá ke svému běhu pouze open-source a svobodný software, aby její používání nebylo limitováno licenční politikou platformy, na které běží. 40

Obrázek 3.1: model aplikace 41

3.2 Databázová a aplikační logika 3.2.1 Platforma Jako platforma pro databázovou a aplikační logiku byl zvolen svobodný DBMS PostgreSQL. Ten kromě toho, že je bez omezení volně šiřitelný a obsahuje všechnu potřebnou funkcionalitu, je velmi dobře rozšiřitelný. Kromě procedurální obdoby PL/SQL umožňuje vytvářet uživatelské funkce také v některých procedurálních jazycích, což není zcela obvyklá vlastnost. Další dobře použitelnou vlastností PostgreSQL je možnost načtení knihovny a volaní funkcí z této knihovny jako běžných uživatelských funkcí. To je pozitivní především z hlediska znovupoužití kódu a rychlosti. Externí knihovna může být napsána například v jazyce C a zkompilována optimalizujícím překladačem, čímž lze dosáhnout optimálního výkonu algoritmů volaných z PL/SQL. PostgreSQL nám také dává možnost velmi nízkoúrovňově vytvářet uživatelské datové typy, které jsou z hlediska použití nerozeznatelné od nativních SQL datových typů. Všechny zmíněné výhody PostgreSQL byly využity pro implementaci bioinformatického modulu pro práci se sekvencemi a strukturami RNA, který je přímo součástí DBMS. Tento velmi originální přístup poskytuje možnost pohodlné a rychlé práce s bioinformatickými daty a algoritmy v rámci databázového stroje pomocí SQL dotazů. Tento bioinfomatický modul bude popsán níže. 3.2.2 Datový model a úložiště dat Datový model celé aplikace je velmi jednoduchý. Klíčové v něm jsou tabulky Record a SeqStruc, ve kterých jsou uložena samotná data sekundárních struktur a data anotace. Struktura tabulek je navržena tak, aby umožňovala k jedné sekvenci převzaté z některé z velkých sekvenčních databází (např. Entrez) uložit více možných sekundárních struktur. To souvisí s tím, že nemusí být vždy jasné, jaká je skutečná sekundární struktura příslušná k dané sekvenci. Navíc aplikace podporuje práci na více výzkumných projektech zavedením tzv. repozitářů záznamů (tabulka Repository), což jsou jakési logické subdatabáze nad jednou databází skutečnou. Přidávání záznamů, jejich import a vyhledávání je vždy omezeno na jeden konkrétní repozitář. Datový model schématu pro ukládání anotací a sekundárních struktur je znázorněn na obr. 3.2. Jednotlivé entity a jejich atributy jsou podrobně diskutovány v uživatelské dokumentaci. Datový model aplikace obsahuje ješte některé další tabulky (např. pro ukládání matic skóre a výsledků vyhledávání), které jsou ovšem z hlediska designu aplikace poměrně nedůležité a mají význam spíše jako implementační detaily. 42

3.2.3 Aplikační logika Samotná aplikační logika je principiálně dosti jednoduchá a zahrnuje PL/SQL procedury pro práci se záznamy v databázi (načítání, přidávání a editace záznamů) a procedury pro realizaci fulltextového a strukturálního vyhledávání. Rutiny fulltextového vyhledávače využívají PostgreSQL fulltextový modul tsearch2. Strukturální vyhledávání potom využívá funkcí poskytovaných bioinformatickým modulem librnasecstruc, který vznikl jako součást této práce. 3.2.4 librnasecstruc: PostgreSQL modul pro práci s primárními a sekundárními strukturami RNA Bioinformatické moduly typu BioPerl, BioPython či BioPHP (a některé další) mají za úkol vytvořit základnu knihovních funkcí pro jednoduchou práci s bioinformatickými daty v příslušném jazyce. Když však prozkoumáme jejich koncept přístupu k datům, zjistíme že je dosti nahodilý, případně žádný. Maximálně se setkáme s mnoha objekty pro vstup a výstup záznamů v jednom z používaných formátu bioinformatických dat. To umožňuje data načíst z diskových souborů, dále s nimi pracovat a případně je opět uložit. Tento koncept ovšem celkem logicky svádí k implementaci biologických,,databází (lhostejno jakého rozsahu) pomocí velkých textových souborů, ke kterým může být například vygenerován indexový soubor urychlující přístup k záznamům. Zde je třeba si všimnout, že dochází k opětovnému objevování již dávno objeveného. Relační databázové stroje řeší problémy s ukládáním libovolného množství dat efektivně, umožňují jednoduchou indexaci dat, starají se o udržení konzistence dat (foreign keys, constraints atp.) a starají se o konkurentní přístup k datům. Navíc nám dávají možnost transakčního zpracování, řeší otázku zotavení databáze po pádu a zálohování dat. V neposlední řadě je jazyk SQL dokonalým prostředkem pro kladení dotazů na databázi. Jediné, co bychom v prostředí DBMS potřebovali navíc, jsou nové datové typy pro ukládání bioinformatických dat a knihovnu funkcí pro práci s nimi. Zavedení vhodných datových typů a nových SQL funkcí je právě účelem modulu librnasecstruc (RNA Secondary Structure library) pro PostgreSQL. Prvním definovaným typem je typ LABEL (popisek) pro písmenné označení dusíkaté báze, popisky pro vrcholy stromů sekundárních struktur a písmena abecedy alignmentu. Řetězec popisků je potom datový typ SEQUENCE, do kterého lze uložit sekvenci, případně alignment sekvencí. Posledním z podstatných datových typů je typ LABELED TREE, který umožňuje reprezentovat sekundární strukturu společně se strukturou primární, samotnou sekundární strukturu a také strom strukturálního alignmentu. Modul librnasecstruc definuje nad těmito typy funkce pro jejich převod z nebo do 43

Obrázek 3.2: datový model sekundární struktury externího textového formátu a funkce zapouzdřující bioinformatické algoritmy pro sequence a tree alignment. Podrobnější popis modulu librnasecstruc je podán v příloze této práce. 3.3 Webové rozhraní Serverová PHP aplikace je vystavěná nad PHP frameworkem Seagull 1, což je plně objektově orientovaný open-source framework pro tvorbu webových aplikací. Framework je použit především kvůli zjednodušení prezentační vrstvy aplikace. Sám framework funguje na principu integrace více funkčních komponent, které jsou volány s příslušným vstupem a jejichž výstup je jádrem frameworku vkládán na určená místa ve výsledném HTML kódu zobrazovaném ve webovém prohlížeči. Prezentační logika databáze sekundárních struktur RNA je tedy implementována jako samostatná komponenta rna database pro Seagull framework. Rozhraní aplikace je navrženo tak, aby byla aplikace snadno a komfortně použitelná pro bežné uživatele bez odbornějšího počítačového vzdělání. Ve stejném duchu je napsána uživatelská dokumentace. 1 http://seagullproject.org/ 44