PODOBNOSTI PRIMÁRNÍ STRUKTURY

Podobné dokumenty
Studijní materiály pro bioinformatickou část ViBuChu. úloha II. Jan Komárek, Gabriel Demo

Genomické databáze. Shlukování proteinových sekvencí. Ivana Rudolfová. školitel: doc. Ing. Jaroslav Zendulka, CSc.

Proteiny Genová exprese Doc. MVDr. Eva Bártová, Ph.D.

Inovace studia molekulární a buněčné biologie

b) Jak se změní sekvence aminokyselin v polypeptidu, pokud dojde v pozici 23 k záměně bázového páru GC za TA (bodová mutace) a s jakými následky?

Struktura proteinů. - testík na procvičení. Vladimíra Kvasnicová

Aminokyseliny. Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín. Tematická oblast Datum vytvoření Ročník Stručný obsah Způsob využití

Hemoglobin a jemu podobní... Studijní materiál. Jan Komárek

Státnice odborné č. 20

Genetický kód. Jakmile vznikne funkční mrna, informace v ní obsažená může být ihned použita pro syntézu proteinu.

Molekulární základy dědičnosti. Ústřední dogma molekulární biologie Struktura DNA a RNA

Aminokyseliny příručka pro učitele. Obecné informace: Téma otevírá kapitolu Bílkoviny, která svým rozsahem překračuje rámec jedné vyučovací hodiny.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Translace (druhý krok genové exprese)

Algoritmy pro shlukování prostorových dat

Exprese genetické informace

Fakulta chemicko-technologická Katedra analytické chemie. 3.2 Metody s latentními proměnnými a klasifikační metody

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Tomáš Oberhuber. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Exprese genetického kódu Centrální dogma molekulární biologie DNA RNA proteinu transkripce DNA mrna translace proteosyntéza

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

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Využití metod strojového učení v bioinformatice David Hoksza

0.1 Úvod do lineární algebry

Moderní systémy pro získávání znalostí z informací a dat

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

NUKLEOVÉ KYSELINY. Základ života

Přednáška 13 Redukce dimenzionality

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

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Metabolismus bílkovin. Václav Pelouch

0.1 Úvod do lineární algebry

Základy algoritmizace. Pattern matching

Molekulárn. rní. biologie Struktura DNA a RNA

Bílkoviny - proteiny

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

Struktura nukleových kyselin Vlastnosti genetického materiálu

5 Orientované grafy, Toky v sítích

Matematické modelování dopravního proudu

4EK213 LINEÁRNÍ MODELY

Datové struktury 2: Rozptylovací tabulky

TRANSLACE - SYNTÉZA BÍLKOVIN

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

1. července 2010

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

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

6 Ordinální informace o kritériích

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

7. Funkce jedné reálné proměnné, základní pojmy

Aplikovaná numerická matematika

PROTEINY. Biochemický ústav LF MU (H.P.)

Popisná statistika kvantitativní veličiny

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

Zpracování náhodného výběru. Ing. Michal Dorda, Ph.D.

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

1. Průběh funkce. 1. Nejjednodušší řešení

1 Projekce a projektory

19. Druhý rozklad lineární transformace

Dynamické programování

1 Linearní prostory nad komplexními čísly

Extrémy funkce dvou proměnných

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů


Základy genomiky. I. Úvod do bioinformatiky. Jan Hejátko

STATISTICKÉ ODHADY Odhady populačních charakteristik

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

GIS Geografické informační systémy

7. Rozdělení pravděpodobnosti ve statistice

"Učení nás bude více bavit aneb moderní výuka oboru lesnictví prostřednictvím ICT ". Molekulární základy genetiky

Struktura a funkce nukleových kyselin

Tabulkový procesor. Základní rysy

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza

U Úvod do modelování a simulace systémů

5. Lokální, vázané a globální extrémy

Algoritmizace prostorových úloh

Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.5.00/

Genetika zvířat - MENDELU

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

TÉMATICKÝ OKRUH Softwarové inženýrství

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti URČOVÁNÍ PRIMÁRNÍ STRUKTURY BÍLKOVIN

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

Metody analýzy dat I. Míry a metriky - pokračování

II. Úlohy na vložené cykly a podprogramy

Projekt SIPVZ č.0636p2006 Buňka interaktivní výuková aplikace

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Parametrické programování

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Aplikovaná numerická matematika - ANM

Zobrazte si svazy a uspořádané množiny! Jan Outrata

GeoGebra známá i neznámá

stránkách přednášejícího.

Školení obsluhy PC stručný manuál obsluhy pro používání PC

Exprese genetické informace

Nukleové kyseliny příručka pro učitele. Obecné informace:

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

2. úkol MI-PAA. Jan Jůna (junajan)

Křivky a plochy technické praxe

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SHLUKOVÁNÍ PROTEINOVÝCH SEKVENCÍ NA ZÁKLADĚ PODOBNOSTI PRIMÁRNÍ STRUKTURY DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR Bc. PETR JURÁSEK BRNO 2009

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SHLUKOVÁNÍ PROTEINOVÝCH SEKVENCÍ NA ZÁKLADĚ PODOBNOSTI PRIMÁRNÍ STRUKTURY CLUSTERING OF PROTEIN SEQUENCES BASED ON PRIMARY STRUCTURE OF PROTEINS DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. PETR JURÁSEK Ing. IVANA RUDOLFOVÁ BRNO 2009

Vysoké učení technické v Brně - Fakulta informačních technologií Ústav informačních systémů Akademický rok 2008/2009 Zadání diplomového projektu Řešitel: Petr Jurásek Obor: Informační systémy Téma: Shlukování proteinových sekvencí na základě podobnosti primární struktury Kategorie: Databáze Pokyny: 1. Seznamte se s primární strukturou proteinů. 2. Seznamte se s algoritmy pro hodnocení podobnosti proteinových sekvencí. 3. Seznamte se se shlukovací analýzou. 4. Po dohodě s vedoucím navrhněte vhodnou vzdálenostní funkci pro proteinové sekvence. 5. Implementujte zvolenou shlukovací metodu pro shlukování proteinových sekvencí na základě podobnosti primární struktury. Proved te shlukování na vhodném vzorku dat. 6. Zhodnot te dosažené výsledky.

Shlukování proteinových sekvencí na základě podobnosti primární struktury Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením paní Ing. Ivany Rudolfové. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal........................ Petr Jurásek 25. května 2009 c Petr Jurásek, 2009. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.

Abstrakt Diplomová práce je zaměřena na shlukování proteinových sekvencí na základě podobnosti primárních struktur. Seznamuje s daty v podobě aminokyselin, které tvoří primární strukturu proteinů. Představuje základní algoritmy pro porovnávání podobnosti proteinových sekvencí. Popisuje shlukovou analýzu a shlukovací metody. Praktickou část práce představuje návrh vzdálenostní funkce pro proteiny a implementace shlukovacích metod AGNES, k-means, k-medoids v jazyce Python. Klíčová slova Molekulární biologie, DNA, aminokyselina, protein, proteinové sekvence, dynamické programování, Needleman-Wunsch algoritmus, Smith-Waterman algoritmus, substituční matice, PAM, BLOSUM, shlukování, shluková analýza, AGNES, k-means, k-medoids Abstract This master s thesis consider clustering of protein sequences based on primary structure of proteins. Studies the protein sequences from they primary structure. Describes methods for similarities in the amino acid sequences of proteins, cluster analysis and clustering algorithms. This thesis presents concept of distance function based on similarity of protein sequences and implements clustering algorithms ANGES, k-means, k-medoids in Python programming language. Keywords Molecular biology, DNA, amino acid, protein, primary structure of protein, dynamic programing, Needleman-Wunsh algorithm, Smith-Waterman algorithm, scoring matrix, PAM, BLOSUM, clustering, cluster analysis, AGNES, k-means, k-medoids Citace Petr Jurásek: Shlukování proteinových sekvencí na základě podobnosti primární struktury, diplomová práce, Brno, FIT VUT v Brně, 2009

Obsah 1 Úvod 3 2 Základy molekulární biologie 4 2.1 Genetický materiál................................ 4 2.2 Centrální dogma molekulární biologie..................... 4 2.3 Proteiny...................................... 6 3 Porovnávání sekvencí 8 3.1 Bodový graf.................................... 8 3.2 Jednoduché zarovnání.............................. 9 3.3 Mezery....................................... 10 3.4 Skórovací matice................................. 11 3.5 Needleman-Wunsch algoritmus......................... 11 3.6 Semiglobální zarovnání.............................. 12 3.7 Smith-Waterman algoritmus........................... 12 3.8 Shrnutí...................................... 14 4 Shlukovací analýza 16 4.1 Typy dat..................................... 16 4.1.1 Nominální proměnné........................... 17 4.2 Rozdělení shlukovacích metod.......................... 17 4.2.1 Metody založené na rozdělování..................... 17 4.2.2 Hierarchické metody........................... 17 4.2.3 Metody založené na hustotě....................... 18 4.2.4 Metody založené na mřížce....................... 18 4.2.5 Metody založené na modelech...................... 18 4.2.6 Metody pro vysoce-dimenzionální data................. 18 4.3 Shlukovací metody................................ 19 4.3.1 K-means.................................. 19 4.3.2 Aglomerative Nesting.......................... 19 4.3.3 Density-based clustering......................... 20 4.3.4 WaveCluster............................... 20 4.3.5 Self Organizing Map........................... 21 4.3.6 Clustering in Quest........................... 21 1

5 Návrh 23 5.1 Aplikace...................................... 23 5.1.1 Modul zarovnání............................. 23 5.1.2 Modul shlukování............................ 23 5.1.3 Uživatelské rozhraní........................... 24 5.2 Vzdálenostní funkce............................... 24 5.3 Vstupní data................................... 24 5.3.1 FASTA formát.............................. 24 5.3.2 Skórovací matice............................. 25 6 Implementace 26 6.1 Vzorky....................................... 26 6.2 Podobnostní matice............................... 26 6.3 Shlukování.................................... 27 6.4 Pomocné skripty................................. 27 7 Výsledky 28 7.1 Průběh shlukování................................ 29 7.2 Shrnutí...................................... 31 8 Závěr 32 A Seznam příloh 34 A.1 CD/DVD..................................... 34 A.2 Uživatelská příručka............................... 34 A.3 Příručka programátora.............................. 34 B Uživatelská příručka 35 B.1 Modul zarovnání................................. 35 B.1.1 Vstupní parametry............................ 35 B.1.2 Použití................................... 35 B.2 Modul shlukování................................. 36 B.2.1 Vstupní parametry............................ 36 B.2.2 Použití................................... 36 B.3 Uživatelské rozhraní............................... 36 C Příručka programátora 38 C.1 Datové typy.................................... 38 C.2 Popis funkcí.................................... 38 2

Kapitola 1 Úvod Množství dat, které produkuje výzkum v různých oblastech biologie, v poslední době prudce narůstá, proto je nezbytné tato data někde uchovávat a efektivně je zpracovávat. Souvisí to s 90. léty, kdy vzrostly výrazně schopnosti generovat, sbírat a uchovávat různá data. Počítačové zpracování se postaralo o obrovský nárůst objemu dat, která jsou uchovávána v elektronické podobě. Současně se vyskytl problém přesycení přílišným množstvím informací. Díky dostupnosti obrovského množství dat v elektronické podobě se dostal do popředí zájem o zpracování dat na užitečnou informaci a znalost. Mezi bioinformatická data můžeme zařadit sekvence nukleotidů (DNA, RNA), sekvence aminokyselin, informace o struktuře molekul, údaje o aktivitě genů, údaje o expresi proteinů, mapy interakcí mezi proteiny a DNA, mapy interakce mezi proteiny navzájem. V práci se setkáme s daty v podobě sekvencí aminokyselin, které tvoří primární strukturu proteinů. Hlavním cílem práce je shlukování sekvencí proteinů na základě jejich podobnosti primární struktury (aminokyselin). Vzniká otázka jak správně navrhnout vzdálenostní funkci pro proteiny. Na základě podobnosti mezi jednotlivými aminokyselinami určíme vzdálenost. Kapitola 2 seznamuje se základními pojmy z molekulární biologie, mezi které můžeme zahrnout např. primární strukturu proteinů, kterou představuje sekvence aminokyselin reprezentována řetězcem znaků. Kapitola 3 popisuje algoritmy používané v bioinformatice pro hodnocení podobnosti proteinů na základě jejich primární struktury pro dvě sekvence proteinů. Kapitola 4 popisuje shlukovací analýzu a shlukovací metody, které se používají při dolování dat. Kapitola 5 se zabývá návrhem programu pro určení vzdálenosti mezi sekvencemi proteinů. Vzdálenostní funkce je vstupem pro shlukování. Kapitola 6 se zaměřuje na implementaci vzdálenostní funkce a shlukovacích algoritmů. Kapitola 7 ověřuje implementaci vzdálenostní funkce a shlukovacích algoritmů nad různými vzorky dat. Závěrečná kapitola 8 shrnuje dosažené výsledky, osobní přínos a nástin pokračování vývoje práce v budoucnu. Příloha B popisuje parametry a použití aplikace pro uživatele. Příloha C popisuje použité datové typy a funkce jednotlivých modulů. 3

Kapitola 2 Základy molekulární biologie V kapitole 2 se budeme zabývat základnímy pojmy z oblasti molekulární biologie. V bioinformatice se převážně setkáváme s daty, které se týkají DNA a proteinů. Část kapitoly je věnována popisu sekvencí nukleotidů (sekvence v DNA, RNA) a sekvencí aminokyselin. Více podrobnějších informací lze najít v [5, 3, 9]. 2.1 Genetický materiál V DNA (deoxyribonukleové kyselině) jsou zakódovány genetické informace. Tyto informace umožňují organizovat neživé molekuly, tak aby vytvořili živé buňky a organismy, které jsou schopné regulovat svoje vnitřní složení, růst a reprodukci. DNA molekula má podobu dvojité pravotočivé šroubovice. Každé vlákno šroubovice se skládá z posloupnosti nukleotidů. V DNA se vyskytují čtyři základní druhy nukleotidů: guanin (G), adenin (A), thymin (T) a cytosin (C). Pořadí nukleotidů se označuje jako primární struktura DNA. Nukleotidový řetězec má dva konce, které se označují 5 konec a 3 konec. Většina procesů probíhá od 5 konce ke 3 konci. Pořadí nukleotidů na obou vláknech je komplementární. Pro každý výskyt G na jednom vlákně, se bude vyskytovat C na komplementárním vlákně a naopak. Pro každý výskyt A na jednom vlákně, se na komplementárním vlákně bude nacházet T a naopak. Tento vztah mezi A a T nebo G a C je tvořen vodíkovými vazbami. Molekuly adeninu a thyminu mohou vytvořit jen dvě vodíkové vazby, naproti tomu molekuly guaninu a cytosinu vytvoří tři vodíkové vazby. Vlákna molekuly DNA jsou antiparalelní a redundantní. Souvislý úsek molekuly DNA, která obsahuje dědičné vlastnosti se nazývá gen. Soubor všech genů organismu se označuje jako genom. DNA je uložená v jádře buňky a je rozdělená na několik chromozómů. 2.2 Centrální dogma molekulární biologie Proces, při kterém je informace získána z nukleotidové sekvence genu a je použita k vytvoření proteinu, se označuje jako centrální dogma molekulární biologie. Informace uložená v DNA je použita k vytvoření dočasné RNA (ribonukleová kyselina), která je dále použita k výrobě proteinu. Tento proces se skládá ze dvou kroků transkripce a translace. Proces vytváření kopie genu do molekuly RNA za působení enzymu RNA-polymeráza, se nazývá transkripce. Molekula RNA je jednovláknová, kratší než molekula DNA a méně 4

Obrázek 2.1: Centrální dogma molekulární biologie. stabilnější než DNA. Místo nukleodtidu thyminu (T) se v RNA vyskytuje nukleotid uracil (U). Hlavní roli při transkripci hraje RNA polymeráza která nasedá na oblast tzv. promotoru - specifická oblast před začátkem genu cca 30 bází. K transkripci dochází pouze za předpokladu, že jsou v oblasti promotoru přítomné i příslušné regulátory - proteiny, které rozhodují zda dojde k transkripci. Negativní regulátor zabraňuje RNA polymeráze spuštění transkripce. Pozitivní regulátor umožňuje RNA polymeráze začít transkripci. Většina genů obsahuje ukončovací sekvence pro transkripci tzv. terminátory. Translace je proces, při kterém se převádí informace ze sekvence nukleotidů RNA do sekvence aminokyselin, která tvoří protein. Během translace se využívá tzv. genetický kód. Tři po sobě následující nukleotidy RNA, tzv. kodón, kódují jednu aminokyselinu. V RNA se vyskytují čtyři nukleotidy (A, C, G a U), tzn. existuje 4 3 = 64 různých kodónů. V přírodě se vyskytuje 20 aminokyselin, které mohou být použity k tvorbě proteinů (tab. 2.1). Jedna aminokyselina může být kódována několika kodóny. Ve skutečnosti pro některé aminokyseliny existuje více kódů než pro jiné. Genetický kód je tedy redundantní. Některé kodóny mají speciální význam např. start kodón (AUG) a tři stop kodóny (UAA, UAG, UGA), které označují začátek a konec řetězce. Sekvence znaků vyskytující se mezi start a stop kodónem se označuje jako čtecí rámec (open reading frame). Tři kodóny genetického kódu jsou vyhrazené jako stop kodóny, a jeden kodón je vždy použit jako počáteční kodón. Kodón AUG je použit pro aminokyselinu methionin stejně jako pro označení začátku translace v molekule RNA (tab. 2.2). Tabulka 2.1: Aminokyseliny, které se vyskytují v proteinech Název Označení Název Označení Alanin ala/a Leucin leu/l Arginin arg/r Lysin lys/k Asparagin asn/n Methionin met/m Kyselina asparagová asp/d Fenylalanin phe/f Cystein cys/c Prolin pro/p Kyselina glutamová glu/e Serin ser/s Glutamin gln/q Threonin thr/t Glycin gly/g Tryptofan trp/w Histidin his/h Tyrozin tyr/y Isoleucin ile/i Valin val/v 5

Tabulka 2.2: Kodónová tabulka 5 konec U C A G Prostřední báze U C A G 3 konec phe ser tyr cys U phe ser tyr cys C leu ser termination termination A leu ser termination trp G leu pro his arg U leu pro his arg C leu pro gln arg A leu pro gln arg G ile thr asn ser U ile thr asn ser C ile thr lys arg A met, start thr lys arg G val ala asp gly U val ala asp gly C val ala glu gly A val ala glu gly G 2.3 Proteiny Proteiny představují molekulární aparát, který řídí a vykonává téměř všechny biologické funkce. Stavební proteiny, jako kolagen, podporují a posilují kosti a pojivové tkáně. Další proteiny zvané enzymy fungují jako biologické katalyzátory, např. trávící enzym pepsin podporující trávení a metabolismus. Aminokyseliny tvoří základní stavební bloky proteinů. Proteiny se skládají z 20 aminokyselin, které mají různou velikost, tvar a chemické složení. Všechny amino kyseliny mají společný základ, který tvoří aminoskupina, α-uhlík a karboxylová skupina. Na α-uhlík je navázaný postranní řetězec, označovaný znakem R. Všem aminokyselinám jsou přiděleny tříznakové a jednoznakové kódy (tab. 2.1). Postranní řetězec každé aminokyseliny je různý a určuje jedinečné stereochemické vlastnosti. Podle postranního řetězce se aminokyseliny dělí do tří základních skupin: hydrofobní, polární a s nábojem (kladným, záporným). Hydrofobní aminokyseliny nemohou vytvářet vodíkové vazby s molekulami vody. Polární aminokyseliny jsou hydrofilní, tzn. že mohou vytvářet vodíkové vazby s molekulami vody. Pořadí aminokyselin v proteinu je označováno jako primární struktura proteinu a předurčuje biologickou funkci, tak i sekundární a terciální strukturu proteinu. Schopnost aminokyselin vytvářet různé vazby s jinými aminokyselinami nebo okolními molekulami má vliv na prostorovou strukturu proteinu. Fyzikální a chemické vlastnosti proteinu, jeho biologická funkce a prostorový tvar jsou určeny posloupností aminokyselin, které protein vytváří. Primární struktura proteinů se zapisuje jako řetězec znaků bud jednoznakových nebo tříznakových kódů. Řetězec aminokyselin se nazývá peptid. Delší řetězce se označují jako polypeptidy nebo proteiny. Při spojení dvou aminokyselin dochází ke vzniku dipeptidu, tzn. dvě aminokyseliny 6

spojené peptidickou vazbou. U molekul proteinů se rozlišují dva různé konce řetězce: N- konec, tzn. aminokyselina s volnou aminoskupinou, a C-konec, tzn. aminokyselina s volnou karboxylovou skupinou. Posloupnost aminokyselin v řetězci se uvádí od N-konce(amino) směrem k C-konci(karboxylový). 7

Kapitola 3 Porovnávání sekvencí Tato kapitola popisuje metody, které porovnávají podobnost mezi dvěma nebo více sekvencemi nukleotidů nebo polypeptidů. Struktura proteinů je dána sekvencí aminokyselin které tvoří protein. Porovnáváním sekvencí proteinů můžeme stanovit předpokládanou strukturu proteinu. Při porovnávání biologických sekvencí nejprve hledáme takové zarovnání sekvencí, pro které je počet pozic se shodnými symboly, tzn. aminokyselinami v proteinech nebo nukleotidy v DNA, RNA, maximální. Porovnávat můžeme dvě biologické sekvence nebo celou skupinu sekvencí. Algoritmy, které se používají pro hledání optimálního zarovnání dvou sekvencí, lze obecně rozšířit pro skupinu sekvencí. V praxi tento přístup nelze použít, protože výpočetní složitost algoritmů pro více sekvencí je příliš vysoká. Pro hledání optimálního zarovnání více sekvencí se využívají různé heuristiky. Biologické sekvence se nejčastěji porovnávají z důvodu hledání sekvencí, které jsou navzájem evolučně blízké. Na jednotlivých pozicích biologických sekvencí může během vývoje docházet k následujícím změnám: mutacím - záměna jednoho symbolu za jiný inserci - vložení jednoho nebo více symbolů deleci - odstranění symbolu z jedné nebo více pozic Mutace se v přírodě vyskytují častěji než inserce nebo delece. Při zarovnání biologických sekvencí někdy uvažujeme mutace a někdy uvažujeme i inzerce a delece. Operace inserce a delece nazýváme dohromady operace indel. Operacím inserce a delece odpovídá vkládání mezer do jedné ze sekvencí. 3.1 Bodový graf Jednou z jednodušších metod pro vyhodnocení podobnosti mezi dvěmi sekvencemi se zobrazením se používá bodový graf. Bodový graf vytvoříme tak, že první sekvenci, která je porovnávána, vyneseme na horizontální osu grafu a druhou sekvenci zakreslíme na vertikální osu. Na příslušnou pozici průsečíku řádku a sloupce vložíme bod, pouze pokud jsou oba znaky shodné. Přilehlé shodné oblasti způsobují v grafu diagonální úsečky. Známe pouze orientační grafickou reprezentaci, ale nevíme jak je výsledná sekvence zarovnána. Navíc v grafu vzniká hodně šumu. 8

Bodový graf můžeme vylepšit posuvným okénkem. Velikost posuvného okénka můžeme zvolit např. 7 znaků. Postupně po jedné aminokyselině se posouvá ve směru sloupců tak ve směru řádků. V okénku se porovnává 7 znaků, pokud je jich alespoň 5 shodných, vloží se na začátku okénka bod. Je potřeba vhodně volit velikost posuvného okénka a míru shody. Odstraní šum tak, že si můžeme všimnout větší podobnosti v grafu, která kvůli šumu byla nevýrazná. Nevýhodou tohoto algoritmu je vysoká časová složitost O(n 2 ). Obrázek 3.1: Ukázka bodového grafu, vlevo sekvence proteinu AZIZ2 získaného z myši porovnávaná se sebou, vpravo sekvence proteinu AZIZ2 z myši porovnávaná s proteinem AZIZ2 získaného z orangutana, velikost posuvného okénka w = 15 (zdroj http://myhits. isb-sib.ch/cgi-bin/dotlet). 3.2 Jednoduché zarovnání Jedná se o porovnání spárovaných znaků obou sekvencí. Správné zarovnání nukleotidu nebo aminokyseliny odráží evoluční vztah mezi dvěma nebo více homology, tzn. sekvence které sdílejí společného předka. Uvažujeme pouze mutace, nikoliv vložení/odstranění znaku. Předpokládáme, že kratší řetězec vznikne z delšího vložením mezer, u delšího mezery neuvažujeme. Problém je redukován na výběr první pozice v delší sekvenci, od které začneme obě sekvence porovnávat. Začátek kratšího řetězce se postupně posunuje vzhledem k delšímu řetězci a pro každý posun se vyhodnocuje počet shodujících a neshodujících se znaků. Zvolme např. následující dvě kratší sekvence aminokyselin MEEPQSDP a MEASDP. Tyto dvě sekvence můžeme zarovnat pouze třemi způsoby bez vkládání mezer: MEEPQSDP MEEPQSDP MEEPQSDP MEASDP MEASDP MEASDP Abychom mohli určit, které ze tří zarovnání je optimální, musíme rozhodnout jak ohodnotíme jednotlivá zarovnání. Ohodnocení určíme jako sumu příspěvků pro shodné páry a 9

penalizace pro různé páry. Ohodnocení zarovnání je potom dáno: s(u, v) = n { shoda pro ui = v i neshoda pro u i v i i=1 kde n je délka delší sekvence, u a v jsou jednotlivé sekvence. Pro shodu můžeme použít ohodnocení 1 a pro neshodu 0. Výše uvedená zarovnání budou ohodnoceny hodnotami 2, 1 a 3. Toto ohodnocení není ideální a nevystihuje vývoj v přírodě. Některé záměny ovlivní výslednou sekvenci méně než jiné. Používají se tzv. skórovací matice, které obsahují ohodnocení pro všechny dvojice nukleotidů nebo aminokyselin. 3.3 Mezery Pro analýzu reálných sekvencí je nezbytné uvažovat vložení a odstranění znaků. Pokud uvažujeme možnost inserce a delece zvýší se počet možných zarovnání sekvencí. V předchozím příkladě se zvýší počet možných zarovnání na 28, když do kratší sekvence vkládáme mezery. Pouze 5 z 28 možných zarovnání s mezerou: MEEPQSDP MEEPQSDP MEEPQSDP MEEPQSDP MEEPQSDP MEA-SD-P M--EASDP M-EA-SDP M-E-ASDP ME--ASDP Do ohodnocení zarovnání zahrnujeme penalizaci za vložení mezery. Ohodnocení s mezerou může být vypočítáno následovně: n mezera pro u i = nebo v i = s(u, v) = shoda pro u i = v i i=1 neshoda pro u i v i Pokud zvolíme ohodnocení jako v předchozím příkladě, a vložení mezery ohodnotíme hodnotou -1 dostaneme výsledné ohodnocení 1, 2, 3, 3 a 3 (zleva do prava). Je běžné, že dvě a více zarovnání obsahují stejné ohodnocení. Z pohledu evoluce je však potřeba rozlišovat mezi různými typy mezer. Je mnohem pravděpodobnější vznik menšího počtu delších mezer, než vznik většího počtu krátkých mezer. Ze tří zarovnání sekvencí se stejným ohodnocením vybereme nejpravděpodobnější zarovnání: MEEPQSDP ME--ASDP Penalizaci za mezery můžeme rozdělit na dvě části: ρ za započetí mezery a σ za rozšíření mezery. Výpočet pro mezeru délky m vypočteme vzorcem (ρ + (σ m)). Upravená funkce pro výpočet skóre: 1 shoda n 0 neshoda s(u, v) = 1 pokračující mezera i=1 2 počáteční mezera Pro tři výše uvedená stejně ohodnocená zarovnání dostaneme ohodnocení -1, -1 a 1. 10

3.4 Skórovací matice Zabývali jsme se rozlišováním různých typů mezer, ale ve skutečnosti je potřeba rozlišovat i záměny mezi různými znaky. U aminokyselin mají změny mezi hydrofobními aminokyselinami daleko menší důsledky na změnu funkce než změny z hydrofobní na aminokyselinu s nábojem. Při sestavování skórovací matice pro aminokyseliny je nezbytné uvažovat podobnost v jejich chemické struktuře(hydrofobii, náboj, elektronegativitu, velikost). Je pravděpodobnější změna mezi dvěma aminokyselinami s podobnou chemickou strukturou, než změnou mezi dvěmi aminokyselinami s rozdílnou strukturou. Velmi často se používá přístup, kdy se hodnoty v maticích určí experimentálně na základě rychlosti substituce mezi sekvencemi, u kterých je znám směr vývoje. PAM(Point Acepted Mutation) matice jsou sestaveny a normalizovány tak, že jejich vynásobením získáme matice pro různě odlišné sekvence. Matice PAM-1 se používá pro velmi blízké sekvence, PAM-1000 je vhodná pro velmi vzdálené sekvence, v praxi se vetšinou volí PAM-250 jako zaběhnutý kompromis. Podobně jsou konstruovány matice BLOSUM-XX, kde XX značí procentuální míru podobnosti sekvencí. Matice BLOSUM-62 se používá pro 62% podobné sekvence, BLOSUM-80 je vhodná pro sekvence podobné si kolem 80%. 3.5 Needleman-Wunsch algoritmus Pro porovnání dvou sekvencí můžeme použít přístup dynamického programování, který spočívá v rozdělení problému na podproblémy. Needleman a Wunsch byli první, kteří aplikovali tento přístup na porovnávání sekvencí. V roce 1970 publikovali svůj přístup v časopise Journal of Molecular Biology [6]. Existují tři možnosti, jak může vypadat zarovnání první pozice: 1. vložíme mezeru do první sekvence a porovnáme ji se znakem z druhé sekvence 2. vložíme mezeru do druhé sekvence a porovnáme ji se znakem z první sekvence 3. nevložíme žádnou mezeru a porovnáme znaky z obou sekvencí Všechny ohodnotíme pomocí skóre s. Jestliže známe skóre pro zarovnání zbývajících částí sekvencí S, můžeme snadno určit skóre celého zarovnání sečtením obou hodnot s + S. Pro optimální zarovnání bude celkové ohodnocení maximální. Needleman-Wunsch algoritmus pro porovnání dvou sekvencí používá tabulku částečného hodnocení (3.1). Záhlaví řádků a sloupců jsou označena posloupností znaků z porovnávaných sekvencí. Cesta z levého horního rohu do pravého dolního rohu tabulky odpovídá jednomu možnému zarovnání. Horizontální pohyb v tabulce znamená vložení mezery do sekvence na vertikální ose. Vertikální pohyb znamená vložení mezery do sekvence na horizontální ose. Pozice(1,1) v tabulce je inicializována hodnotou 0 a první řádek a sloupec obsahují hodnoty odpovídající opakovanému vkládání mezer. V prvním kroku se určí hodnota pozice(2,2). Pozice reprezentuje první sloupec výsledného zarovnání. Existují tři možnosti, jak může být vložena hodnota. Na danou pozici můžeme doplnit tyto hodnoty: 1. Vezmeme hodnotu z levé pozice(2,1) a přidáme postih za vložení mezery, reprezentující mezeru ve vertikální ose. 11

Tabulka 3.1: Tabulka částečného hodnocení (vyplňování) M E A S D P 0-1 -2-3 -4-5 -6 M -1 1 E -2 E -3 Q -4 S -5 D -6 P -7 M E A S D P 0-1 -2-3 -4-5 -6 M -1 1 0-1 -2-3 -4 E -2 0 2 1 0-1 -2 E -3-1 1 2 1 0-1 Q -4-2 0 1 2 1 0 S -5-3 -1 0 2 2 1 D -6-4 -2-1 1 3 2 P -7-5 -3-2 0 2 4 2. Vezmeme hodnotu z horní pozice(1,2) a přidáme postih za vložení mezery, reprezentující mezeru v horizontální ose. 3. Vezmeme hodnotu z diagonály vlevo nahoře(1,1) a přidáme ohodnocení symbolů aminokyselin na osách, reprezentující zarovnání aminokyselin. Doplníme do tabulky hodnotou, která poskytuje největší zisk. Můžeme pokračovat vyplněním zbytku řádku a postupně vyplníme celou tabulku. Pravý dolní roh tabulky bude obsahovat hodnotu optimálního zarovnání. V tabulce nalezneme cestu z levého horního rohu do pravého dolního rohu, která vede k hodnotě v pravém dolním rohu. Zpětně procházíme tabulkou od pravého spodního rohu. Hledáme pozici, která obsahuje hodnotu z níž byla odvozena hodnota pro pravý dolní roh (3.2). Hledání cesty pokračuje stejným způsobem z této pozice. Můžeme pro některé sekvence nalézt více zarovnání, která jsou stejně ohodnocena. Pro uvedené sekvence existují tři výsledná zarovnání (3.3). 3.6 Semiglobální zarovnání Předchozí případ popisoval globální zarovnávání. Porovnával dvě sekvence jako celek, kdy jakýkoliv výskyt mezery byl penalizován. V reálných případech potřebujeme vyhledat výskyt krátké sekvence uvnitř dlouhé sekvence nebo dokonce celého genomu. Potencionálně dlouhé mezery na začátku a na konci kratšího řetězce nechceme penalizovat. Tento přístup je označován jako semiglobální zarovnání. Můžeme upravit algoritmus tak, aby vyhovoval požadavkům pro semiglobální zarovnání. Úpravu provedeme inicializováním prvního řádku a prvního sloupce tabulky na 0, tzn. že povolujeme přidávání mezer na začátku sekvence bez postihu, a nepřičítáme postihy za vkládání mezer v posledním řádku a v posledním sloupci. Zvolme si dvě sekvence aminokyselin MKFLVLLFNILC a VLLF. Zarovnejme je pomocí semiglobálního zarovnání (3.4). Výsledné semiglobální zarovnání je 4. 3.7 Smith-Waterman algoritmus S malou úpravou, dynamické programovací metody, dosáhneme toho, že můžeme rozpoznat shodné podsekvence pokud ignorujeme neshody a mezery před a za porovnávanou oblastí. Výsledný algoritmus byl poprvé představen Smithem a Watermanem v roce 1981 [8]. 12

Tabulka 3.2: V tabulce částečného skóre je vyznačena cesta z dolního pravého rohu do horního levého rohu. Každá cesta reprezentuje jednu ze tří stejně optimálních zarovnání. (a) 5, 1, 1 M E A S D P 0-1 -2-3 -4-5 -6 M -1 1 0-1 -2-3 -4 E -2 0 2 1 0-1 -2 E -3-1 1 2 1 0-1 Q -4-2 0 1 2 1 0 S -5-3 -1 0 2 2 1 D -6-4 -2-1 1 3 2 P -7-5 -3-2 0 2 4 (b) 4, 1, 2 M E A S D P 0-1 -2-3 -4-5 -6 M -1 1 0-1 -2-3 -4 E -2 0 2 1 0-1 -2 E -3-1 1 2 1 0-1 Q -4-2 0 1 2 1 0 S -5-3 -1 0 2 2 1 D -6-4 -2-1 1 3 2 P -7-5 -3-2 0 2 4 (c) 3, 1, 3 M E A S D P 0-1 -2-3 -4-5 -6 M -1 1 0-1 -2-3 -4 E -2 0 2 1 0-1 -2 E -3-1 1 2 1 0-1 Q -4-2 0 1 2 1 0 S -5-3 -1 0 2 2 1 D -6-4 -2-1 1 3 2 P -7-5 -3-2 0 2 4 Algoritmus upravíme následovně první řádek a sloupec jsou inicializovány na nuly. Neshoda je penalizována např. -1, aby při neshodě ohodnocení klesalo. Pokud je v některém místě ohodnocení menší než nula, pak nastav hodnotu místa na nulu. Když je tabulka částečného skóre vyplněná, najdeme maximální výskyty zarovnání. Zpětně procházíme tabulkou dokud se nedostaneme na pozici, kde se nachází hodnota 0. Výsledek lokálního zarovnání reprezentuje nejlepší nalezenou podsekvenci v porovnávaných sekvencích. Nalezených podsekvencích může být několik. Algoritmus. Mějme dvě sekvence A = a 1 a 2... a n a B = b 1 b 2... b m. Podobnost s(a, b) je dána mezi sekvencemi prvků a a b. Vymazání délky k je dáno váhou W k. Pro nalezení dvojic segmentu s největší podobností, nastavíme matici H. Počáteční nastavení H k0 = H 0l = 0 pro 0 k n a 0 l m. Předběžná hodnota matice H vyjadřuje, že H ij je maximální podobnost končící na pozici a i a b j. Tato hodnota se získá následovně: H i 1,j 1 + s(a i, b j ) porovnání H H i,j = max i k,j W k vložení H i,j l W l odstranění 0 konstanta { 1 shoda s(a i, b j ) = 1 neshoda 13

Tabulka 3.3: Výsledná globální zarovnání a) M E E Q S D P M - E A S D P b) M E E Q S D P M E - A S D P c) M E E Q S D P M E A - S D P Tabulka 3.4: Semiglobální zarovnání M K F L V L L F N I L C 0 0 0 0 0 0 0 0 0 0 0 0 0 V 0 0 0 0 0 1 0 0 0 0 0 0 0 L 0 0 0 0 1 0 2 1 0 0 0 1 0 L 0 0 0 0 1 1 1 3 2 1 0 1 1 F 0 0 0 1 1 1 1 2 4 4 4 4 4 Hledejme lokální zarovnání řetězce aminokyselin MLITVVS v řetězci MAKITVVN- NQDE. Výsledná tabulka lokálního zarovnání bude vypadat 3.5. Výsledné lokální zarovnání je 4. Tabulka 3.5: Lokální zarovnání M A K I T V V N N Q D E 0 0 0 0 0 0 0 0 0 0 0 0 0 M 0 1 0 0 0 0 0 0 0 0 0 0 0 L 0 0 0 0 0 0 0 0 0 0 0 0 0 I 0 0 0 0 1 0 0 0 0 0 0 0 0 T 0 0 0 0 0 2 1 0 0 0 0 0 0 V 0 0 0 0 0 1 3 2 1 0 0 0 0 V 0 0 0 0 0 0 2 4 3 2 1 0 0 S 0 0 0 0 0 0 1 3 3 2 1 0 0 3.8 Shrnutí Při porovnávání biologických sekvencí je nutné brát v úvahu chyby v podobě vložení, odstranění nebo záměny znaku. Kvalita výsledného zarovnání závisí z velké části na vybrané skórovací funkci. Optimální výpočet nabízí algoritmy Needleman-Wunsch(globální zarovnání) a Smith-Waterman(lokální zarovnání). Algoritmy Needleman-Wunsch a Smith- 14

Waterman mají kvadratickou časovou složitost O(n 2 ). Jsou vhodné pouze pro detailní analýzu vybraných kandidátních řešení. Nejsou použitelné pro prohledávání rozsáhlých databází, zde přichází v úvahu použití heuristik. 15

Kapitola 4 Shlukovací analýza Shlukování neboli shluková analýza (clustering, cluster analysis) je proces rozdělování objektů do skupin (shluků) tak, aby objekty v každém shluku sdílely společné vlastnosti, a byly si co možná nejvíce podobné, a naopak, aby si objekty v různých shlucích byly maximálně nepodobné. U podobnosti objektů se často využívají vzdálenostní funkce. Existuje mnoho prakticky používaných algoritmů pro shlukování, některé si dále popíšeme. Podrobnější informace lze nalézt v [4, 9, 2]. 4.1 Typy dat Při shlukování se nejčastěji setkáme s následujícími dvěma datovými strukturami. Datová matice reprezentuje n objektů pomocí p proměnných. Tato struktura je znázorněna relační tabulkou, nebo maticí n p. A = a 11 a 12... a 1p a 21 a 22... a 2p...... a n1 a n2... a np Podobnostní matice obsahuje vzdálenosti pro všechny dvojice objektů, reprezentuje se jako tabulka n n. B = 0 d(2, 1) 0 d(3, 1) d(3, 2) 0...... d(n, 1) d(n, 2)... d(n, n 1) 0 Funkce d(i, j) je funkce vzdálenosti mezi objekty i a j. Vzdálenostní funkce musí splňovat tyto požadavky: d(i, j) 0 d(i, i) = 0 d(i, j) = d(j, i) 16

d(i, j) d(i, h) + d(h, j) Nejběžnější používaná vzdálenostní funkce je Euklidovská vzdálenost, která má tvar: d(i, j) = x i1 x j1 2 + x i2 x j2 2 +... + x in x jn 2, kde i = (x i1, x i2... x in ) a j = (x j1, x j2... x jn ). Minkowského vzdálenost je zobecněním Euklidovské vzdálenosti a je definována následovně: kde p je pozitivní celé číslo. d(i, j) = ( x i1 x j1 p + x i2 x j2 p +... + x in x jn p ) 1/p, 4.1.1 Nominální proměnné V primární struktuře proteinů se setkáme s aminokyselinami, které můžeme charakterizovat jako nominální proměnné. Nominální proměnné mohou nabývat více hodnot, ale hodnoty jsou předem definovány (názvy aminokyselin) a jejich počet je omezen (celkem 20). Vzdálenost dvou aminokyselin, můžeme určit podle jednoduchého koeficientu shody: d(i, j) = p m, p kde m je počet shod a p je celkový počet proměnných. Koeficient můžeme přizpůsobit přiřazením vah podle významu jednotlivým proměnným. 4.2 Rozdělení shlukovacích metod Není jednoduché rozdělit shlukovací metody do skupin, protože některé mohou využívat více přístupů. Hlavní shlukovací metody můžeme rozdělit do následujících skupin. 4.2.1 Metody založené na rozdělování Dostanou na začátku shlukování množinu o n objektech, kterou postupně rozdělují do k tříd, kde každá třída reprezentuje shluk a k n. Každá třída musí obsahovat alespoň jeden objekt a každý objekt musí náležet do jedné třídy. Podle parametru k se provede počáteční rozdělení do tříd. Postupným iterováním metody se zpřesňuje rozdělení do tříd, objekty se přesouvají z jedné třídy do jiné. Podobnost prvků uvnitř jedné třídy je maximální a podobnost prvků z různých tříd minimální. Mezi rozdělující metody můžeme zařadit k-means algoritmus, který je reprezentován průměrnou hodnotou shluku, a k-medoids algoritmus, který je založen na reprezentujícím objektu, který se nachází poblíž středu shluku. Dobře naleznou shluky kulovitého tvaru. Nevýhodou je zadávání počtu tříd do kterých chceme objekty rozdělit. 4.2.2 Hierarchické metody Vytvářejí hierarchický rozklad dané množiny objektů, vzniká strom shluků. Rozlišujeme shlukující a rozdělující hierarchické metody. Shlukující přístup nejprve umístní objekty do jednoobjektových tříd. Slučuje postupně objekty nebo třídy objektů, které jsou si nejblíže 17

do nové třídy, dokud nezbude jen jedna třída nebo není splněna ukončující podmínka. Rozdělující přístup začíná se všemi objekty v jednom shluku, a postupně rozděluje na menší shluky dokud není každý objekt v samostatném shluku, nebo není splněna ukončující podmínka. Nevýhodou je, že pokud třídy sloučíme nebo rozdělíme, není možné třídy znovu rozdělit nebo spojit. Hierarchické metody nemusí být dostatečně přesné. Výpočetní složitost je menší než u metod založených na rozdělování. 4.2.3 Metody založené na hustotě Metody založené na hustotě považují za shluky oblasti s velkou hustotou objektů v prostoru dat, které jsou do sebe oddělené oblastmi s malou hustotou vyskytujících se objektů. Objekty, které se vyskytují v oblastech s malou hustotou, se považují za šum. Shluk roste dokud se v jeho dosahu vykytuje dostatečný počet hodnot tzv. práh. Tyto metody umožňují nacházet shluky různých tvarů a vypořádají se s výskytem šumu a odlehlých hodnot. Nevýhodou těchto metod je zvolení správné hodnoty velikost okolí a prahu. Do této kategorie můžeme zařadit metody DBSCAN a DENCLUE. 4.2.4 Metody založené na mřížce Metody založené na mřížce využívají víceúrovňovou mřížkovou strukturu. Prostor objektů rozdělují na konečný počet buněk, které tvoří mřížku. Všechny shlukovací operace probíhají nad mřížkou. Hlavní výhodou těchto metod je rychlé zpracování, který je nezávislý na počtu vstupních objektů a závisí jen na počtu buněk mřížkové struktury. Metoda STING je příkladem metody založené na mřížce. WaveCluster aplikuje vlnkovou transformaci na shlukovou analýzu a je založena na principech hustoty a mřížky. 4.2.5 Metody založené na modelech Metody založené na modelech se snaží optimalizovat shodu mezi datovou množinou a vybraným matematickým modelem. Snaží se nalézt shluky, které by co nejvíce odpovídali zvolenému modelu. Berou v úvahu šum a odlehlé hodnoty. EM algoritmus provádí analýzu očekávaného maxima založenou na statistickém modelování, COBWEB metoda konceptuálního shlukování využívá klasifikační strom, SOM, model neuronových sítí, shlukuje vysoce dimenzionální data do 2D nebo 3D struktury, hodí se pro vizualizaci dat. 4.2.6 Metody pro vysoce-dimenzionální data Většina shlukovacích metod byla navržena pro shlukování dat s malým počtem dimenzí a potýkají se s řadou problémů při shlukování vysoce dimenzionálních dat. Jak se počet dimenzí zvyšuje data se více rozptýlí a data, která se nacházejí v různých dimenzích mohou být považována za stejně vzdálená. CLIQUE a PROCLUS jsou metody transformace rysů, které hledají shluky v menším podprostoru dat. pcluster shlukuje na základě často se vyskytujícího vzoru vybraných atributů. 18

4.3 Shlukovací metody 4.3.1 K-means K-means je jeden z nejjednodušších shlukovacích algoritmů. Vstupem je množina objektů, které chceme shlukovat. Na začátku musíme stanovit počet shluků k. Algoritmus lze popsat následovně: 1. Náhodně zvolíme středy shluků, pro každý shluk jeden. Rozmístění ovlivňuje výsledek. Středy je doporučeno volit daleko od sebe. 2. Přiřadíme každý objekt ze vstupní množiny ke shluku, jehož střed je nejbližší, podle vzdálenostní funkce. 3. Přepočítáme středy shluků jako těžiště prvků shluku. 4. Dokud se pohybují středy shluků, pokračujeme bodem 2. Uvedený algoritmus má řadu nevýhod. Musíme předem zadat počet požadovaných shluků. Algoritmus nemusí najít optimální výsledek, ale může uváznout v lokálním extrému. Obtížná je též počáteční volba středů shluků. 4.3.2 Aglomerative Nesting Metoda AGNES patří mezi hierarchické metody, které vytvářejí rozklad dané množiny objektů, vzniká přitom strom shluků. Tato metoda shlukuje zdola nahoru. Metodu můžeme popsat následovně: 1. Vypočítej matice podobnosti objektů. Počáteční rozklad je tvořen jednoobjektovými shluky. 2. Nalezni nejmenší vzdálenost shluků v aktuální úrovni hierarchie. Pokud jich je více, udělej náhodný výběr. 3. Spoj nejbližší shluky do nového shluku ve vyšší úrovni hierarchie, ostatní shluky se nemění. 4. Vypočti charakteristiky shluků v aktuální hladině rozkladu. 5. Pokud existuje více než jeden shluk nebo se nedosáhlo počtu shluků zadaných uživatelem pokračuj bodem 2. Vzdálenost mezi shluky můžeme vyjádřit pomocí průměrné vzdálenosti: d(c i, C j ) = 1 C i C j p C i,r C j p r, kde p r je vzdálenost mezi objekty p a r, a C i je počet objektů třídy C i. Základní nevýhodou je, že pokud některé třídy sloučíme, není už možné nikdy tyto třídy znovu rozdělit. Výpočetní složitost je menší než u K-means. Můžeme specifikovat počet tříd, do nichž chceme objekty rozdělit. Další nevýhodou je, že není příliš škálovatelná. 19

4.3.3 Density-based clustering DENCLUE je metoda založená na využití distribučních funkcí hustoty. Je postavená na následujících myšlenkách: 1. Vliv každého objektu můžeme formálně modelovat pomocí matematické funkce, která zachycuje vliv objektu v jeho okolí. 2. Celkovou funkci hustoty datového prostoru můžeme modelovat analyticky jako součet jednotlivých funkcí vlivu všech bodů(objektů) v prostoru dat. 3. Shluky potom jsou matematicky určeny místy v prostoru, kde se nacházejí lokální maxima celkové funkce hustoty. Jako funkci vlivu můžeme zvolit libovolnou funkci vlivu, která je odvozena od vzdálenosti mezi dvěma objekty např. Euklidovská vzdálenost. Z ní odvodíme obdélníkovou funkci vlivu: { 0 pro d(x, y) > σ f Square (x, y) = 1 pro d(x, y) σ nebo Gaussovou funkcí vlivu: f Gauss (x, y) = e d(x,y)2 2σ 2 Celková funkce hustoty v bodě x v prostoru je součtem funkcí vlivu v bodě x. Jedná se o sumu funkcí vlivu všech ostatních bodů na bod x. Použijeme-li obdélníkovou funkci vlivu a do vzdálenosti σ od bodu x se bude nacházet n objektů, potom celková funkce hustoty v bodě x bude mít hodnotu n. Místa, kde funkce celkové hustoty dosahuje lokálních maxim, představují centra nalezených shluků. Výhoda je, že metoda je postavena na matematickém základě. Umožňuje matematicky popsat shluky libovolného tvaru i pro vysoce-dimenzionální data. Poradí si i s množinami, které obsahují velké množství šumu. Nevýhodou zůstává nastavení parametru σ. 4.3.4 WaveCluster Metoda WaveCluster popsaná v [7] využívá vlnkové transformace, která transformuje původní prostor dat. Všechny operace shlukování probíhají nad mřížkovou strukturou. Hlavní kroky algoritmu jsou popsány následovně: 1. Rozdělí datový prostor pomocí mřížky a přiřadí objekty do buněk rozděleného prostoru. 2. Aplikuj vlnkovou transformaci na rozdělený prostor mřížky. 3. Najdi připojené komponenty v dílčích pásmech po transformaci prostoru mřížky. 4. Připoj je k buňkám 5. Mapuj objekty do shluků Výpočetní složitost této metody je O(n), kde n je počet objektů v databázi. Metoda je velmi rychlá. Efektivně zpracovává velké množiny dat, umožňuje nalezení shluků libovolného tvaru, vypořádá se s odlehlými hodnotami, nezávislá na pořadí zpracování objektů, nevyžaduje vstupní parametry. 20

4.3.5 Self Organizing Map Samoorganizující se mapa je typ neuronové sítě, navržená prof. Kohonenem v roce 1981. Jedná se o jednovrstvovou sít, která se učí bez učitele a provádí mapování vysoce dimenzionálních dat do prostoru s nízkou dimenzí. Výsledné shluky mohou být tvořeny jedním i více neurony. Mapuje blízké objekty do topologicky blízkých neuronů v novém nízko dimenzionálním prostoru. Běžné je uspořádání neuronů do obdélníku. Všechny vstupy jsou propojeny se všemi výstupními neurony. Každý neuron má polohu v mřížce určenou souřadnicemi i, j a váhovým vektorem w ij se stejnou dimenzí jakou mají vstupní data x i. Dimenze je často mnohonásobně větší než počet neuronů sítě. Učení neuronové sítě probíhá takto: 1. Náhodně inicializujeme váhové vektory w ij všech neuronů. 2. Náhodně vybereme vektor x i z množiny vstupních dat. 3. Nalezneme vítězný neuron, jehož váhový vektor w ij je nejblíže zvolenému vstupnímu vektoru x i podle zvolené funkce pro výpočet vzdálenosti. 4. Upravíme váhové vektory vítězného neuronu, příp. i okolních neuronů, podle vztahu: w ij (t + 1) = w ij (t) + η ij (t)[x i (t) w ij (t)] 5. Nebylo-li dosaženo zvoleného počtu učících se kroků, pokračujeme bodem 2. Učící se parametr η ij (t) je určen vztahem η ij (t) = α(t) exp( r j r i 2 ). Člen α(t) představuje 2σ 2 (t) učící krok a exponenciální člen tvar okolí. Učící krok může být konstantní a nebo se měnit v čase. V příp. konstantní hodnoty můžeme učit sít nejprve nahrubo s vyšší hodnotou parametru α a nižším počtem kroků a pak na jemno s nižší hodnotou α a vyšším počtem kroků. Běžně se používá Euklidovská vzdálenost. Je možné použít vnitřní součin vektorů, ale nesplňuje definici metriky d = n i=1 x iy i. Proces mapování probíhá tak, že k předloženému vzoru se v naučené síti vyhledá vítězný neuron a vzor je zařazen do shluku. 4.3.6 Clustering in Quest Algoritmus CLIQUE v roce 1998 navrhli Agrawal a kolektiv v [1] pro numerické proměnné. Tento shlukovací algoritmus využívá principů založených na hustotě, tak i principů založených na mřížce. Identifikuje shluky podle hustoty v podprostoru s nejvyšším počtem dimenzí. Vytvoří shluky popsané pomocí DNF(Disjunktní normální formy) a usiluje o minimální popis obsahu. Metoda se skládá z následujících kroků: 1. Identifikuje podprostory, které obsahují shluky. 2. Identifikuje shluky. 3. Vygeneruje minimální popis pro shluky. 21

Začíná se definicí jednotky, kterou představuje buňka obdélníku v podprostoru. Jednotky u kterých hustota překračuje práh τ jsou ponechány. Používá se přístup zdola-nahoru k nalezení těchto jednotek. 1-dimenzionální jednotky jsou nalezeny rozdělením do intervalů, které mají stejnou šířku mřížky. Oba parametry jsou vstupem algoritmu. Rekurzivní krok z q 1 dimenze do q dimenze zahrnuje spojení q 1 jednotek mající základ v q 2 dimenzi. Všechny podprostory jsou seřazeny podle pokrytí a méně pokryté podprostory jsou odstraněny. Bod ořezání je vybrán podle minimální délky popisu (minimum description length). Shluk je definován jako maximální množina spojených jednotek. Je reprezentován disjunktní normální formou, která je spojená s konečnou množinou maximálních segmentů, kde sjednocení je rovno shluku. Metoda splňuje požadavky na nalezení shluku v podprostoru vysoce dimenzionálních dat, škálovatelnosti, podává srozumitelné výsledky pro uživatele, vytváří shluky různého tvaru, není citlivá na pořadí vstupních dat. 22

Kapitola 5 Návrh 5.1 Aplikace Aplikace se skládá ze dvou částí: 1. části pro výpočet zarovnání, 2. části pro shlukování. Obě části jsou na sobě nezávislé, lze je použít odděleně. Pro vývoj aplikace byl zvolen programovací jazyk Python verze 2.5.1. Použití aplikace je popsáno v příloze uživatelská příručka B. Popis datových typů a funkcí se nachází v programátorské příručce C. Obrázek 5.1: Návrh aplikace 5.1.1 Modul zarovnání Modul zarovnání provede sestavení výsledné matice podobnosti pro shlukování. Matice podobnosti představuje vzdálenost mezi jednotlivými proteiny. Matice podobnosti se sestaví: 1. Vypočítej ohodnocení všech dvojic proteinů 2. Normalizuj ohodnocení vypočítané dvojice 3. Hodnoty ulož do trojúhelníkové matice 5.1.2 Modul shlukování Modul shlukování bere ze vstupu matici podobnosti a provádí samotné shlukování. Výstupem shlukování je soubor s nalezenými shluky. 23

5.1.3 Uživatelské rozhraní Uživatelské rozhraní aplikace je z příkazového řádku. K dispozici jsou příkazy pro zarovnání sekvencí a shlukování. 5.2 Vzdálenostní funkce Vzdálenostní funkce mezi dvěma objekty i a j se určí pomocí zarovnání. Výsledné zarovnání udává vzdálenost mezi dvěma objekty i a j. d(i, j) = a(i, j), (5.1) kde d(i, j) je vzdálenostní funkce a a(i, j) je funkce zarovnání. Normalizace dat v matici podobnosti mezi jednotlivými objekty i a j, se provede následovně: d(i, j) n(i, j) =, (5.2) l ij M max kde n(i, j) je normalizovaná hodnota, l ij je počet možných shodných znaků objektů i a j, M max je nejlepší možné ohodnocení mezi dvěma znaky z použité skórovací matice. Interval do, kterého se hodnoty normalizují závisí na zvoleném zarovnání. Hodnoty z lokálního a semiglobálního zarovnání se normalizují do intervalu (0, 1), protože neumožňují a hodnoty získané z globálního zarovnání se normalizují do intervalu ( 1, 1). Pro globální zarovnání provedeme navíc normalizaci z intervalu (-1,1) do intervalu (0,1) podle vztahu min-max normalizace: v n = v min (max(n) min(n)) + min(n) (5.3) max min kde min, max jsou minimální a maximální hodnoty transformovaného zarovnání, min(n), max(n) jsou hodnoty požadovaného rozsahu. Do vztahu dosadíme hodnoty za (min, max) = ( 1, 1) a (min(n), max(n)) = (0, 1): 5.3 Vstupní data v n = v ( 1) (1 0) + 0 1 ( 1) (5.4) v n = v + 1 2 (5.5) Pro vstupní sekvence proteinů jsou použita data ve formátu FASTA převzatá z databáze SWISS-PROT k datu 1.3.2009. Pro modul zarovnání jsou dalším vstupem skórovací matice PAM a BLOSUM. Skórovací matice PAM byly získány z adresy http://www.bioinformatics. nl/tools/pam.html a matice BLOSUM z http://rsat.ulb.ac.be/rsat/data/blast_ matrices/. 5.3.1 FASTA formát FASTA formát je nejběžnější a nejjednodušší formát ve kterém se sekvence distribuují a uchovávají se. Je stejný pro DNA i proteiny. Formát je textově založený pro reprezentaci sekvence proteinu, kde aminokyseliny jsou zaznamenány jedno písmenným kódem. Z jednou z výhod tohoto formátu je velikost. Je kompaktní a obsahuje minimum dodatečných 24

informací. Jednoduchost formátu ho činí jednoduše použitelným skriptovacími jazyky jako jsou např. Python a Perl. Sekvence uložená ve FASTA formátu začíná jedním popisným řádkem, následována řádky obsahující vlastní sekvenci. Popisný řádek začíná znakem >, který ho odlišuje od vlastní sekvence proteinu. Za tímto znakem následuje stručný popis sekvence. Jednoduchý příklad sekvence ve FASTA formátu: >sp Q9BIW5 LIMC_DICDI LIM domain-containing protein C OS=Dictyostelium discoideum MSSICPTCTKRVYAAEAVKACEKQYHKLCLQCFHCHKILQLGQYSERDGQPYCKTDYDRL FRQAGYRGGGVVADSFEPAPKVETTTPVEPTPPPTFLTPTEEVKVQLFPTNCPKCGKKAY FNELKVYNSRDWHKTCFACFSCNKNLVSGQYSEKEGLIYCPRCYQSKFGPSGYTNTGALV LH 5.3.2 Skórovací matice Skórovací matice PAM a BLOSUM jsou uloženy v jednoduchém textovém formátu. Struktura textového formátu je tvořena řádky s komentáři, které začínají znakem # a dále samotnou skórovací maticí. Způsob uložení matice je vhodný ke zpracování skriptovacími jazyky. Ukázka uložení části matice BLOSUM-62: # Entropy = 0.6979, Expected = -0.5209 A~R N D C Q E G H I~L K~M F P S~T W Y V~B Z~X * A~4-1 -2-2 0-1 -1 0-2 -1-1 -1-1 -2-1 1 0-3 -2 0-2 -1-1 -4 R -1 5 0-2 -3 1 0-2 0-3 -2 2-1 -3-2 -1-1 -3-2 -3-1 0-1 -4 25

Kapitola 6 Implementace Kapitola popisuje implementaci shlukování proteinů. Aplikaci jsem nazval CLUSTOOL (CLUStering TOOL). CLUSTOOL je orientován na příkazový řádek a skládá se z několika částí. Každá z částí se nachází v jednom souboru. V hlavním adresáři se kromě hlavních souborů nachází pomocné skripty. Jsou zde také uloženy výstupní soubory *.dat z prováděných testů. V adresáři matrix/ jsou uloženy substituční matice PAM a BLOSUM. V adresáři data/ jsou uloženy vstupní soubory se sekvencemi proteinů. Modul slicer.py slouží k získání n vzorků sekvencí ze souboru uniprot sprot.fasta. Modul alignments.py vytvoří podobnostní matici a modul clustering.py provádí shlukování. 6.1 Vzorky Modul slicer.py očekává na vstupu soubor ve formátu fasta, a požadovaný počet proteinových sekvencí. Na výstup vytiskne požadovaný počet proteinových sekvencí. Modul slicer.py pracuje: 1. Zpracuje vstupní argumenty. 2. Zavolá funkci pro čtení souboru a přečte n proteinových sekvencí 3. Proběhne tisk n sekvencí 6.2 Podobnostní matice Modul alignments.py očekává na vstupu vzorek dat ve formátu fasta, metodu zarovnání a substituční matici. Výstupem je normalizovaná matice podobnosti. Modul implementuje dynamické programování pro algoritmy Needleman-Wunsh, Smith- Waterman a semiglobální zarovnání. Modul alignments.py pracuje: 1. Modul zpracuje vstupní argumenty 2. Přečte soubor se vstupními sekvencemi 3. Protein se uloží do datového typu Protein, proteiny jsou uloženy v seznamu Proteiny 26

class Protein: def init (self, name, seq): self.name = name self.sequence = seq 4. Přečte se soubor se vstupní maticí a hodnoty se uloží do proměnné ScoringMatrix, která je datového typu slovník. 5. Provede se výpočet podobnostní matice. Pro každou dvojici sekvencí se provede pomocí dynamického programování výpočet tabulky částečného skóre ScoreTable. 6. Výsledné zarovnání ScoreTable[i][j] je normalizováno a uloženo do podobnostní matice DissimilarityMatrix[i, j], která je datového typu slovník. 7. V posledním kroku vytiskne podobnostní matici. 6.3 Shlukování Modul clustering.py očekává na vstupu podobnostní matici, shlukovací metodu, a počet cílových shluků. Výstupem je výsledné rozdělení vstupních dat do shluků. V modulu jsou implementovány shlukovací metody založené na rozdělování k-means, k- medoids a metoda založená na hierarchickém rozdělování AGNES. Modul clustering.py pracuje: 1. Zpracuje vstupní argumenty. 2. Přečte matici podobnosti a uloží ji do proměnné smatrix, která je typu seznam. 3. Vytvoří se počáteční rozložení do shluků v proměnné Clusters, která je datového typu seznam. 4. V každé iteraci se zpřesňuje rozložení do shluků a tiskne se proměnná Clusters. 5. Dokud není splněna podmínka pro ukončení, probíhá shlukování. 6.4 Pomocné skripty Skripty slouží k zautomatizování spouštění modulů. V adresáři se nacházejí soubory skriptů s příponami *.sh pro Linux a *.bat pro Windows. Ukázka pomocného skriptu kmeans.sh: #!/usr/local/bin/bash for j in 1 2 3 4 5 do for i in 0 1 2 3 4 5 6 7 8 9 do time./clustering.py -c kmeans -s align00$j.dat -k 3 > k$j-00$i.dat done done 27

Kapitola 7 Výsledky Kapitola popisuje provedené experimenty s daty nad metodami zarovnání a metodami shlukování. K vizualizaci dat byl použit program GNU plot. Experiment začíná výběrem vzorku dat, vhodným typem zarovnání a skórovací maticí. Pokud si k zarovnání vybereme algoritmus Needleman-Wunsh, dostaneme charakteristiku tabulky částečného skóre podobnou, jak je znázorněno na obrázku 7.1. Na obrázku jsou dvě sekvence o délce 60 znaků. Hodnoty se pohybují v rozmezí od -60 do 153. Můžeme si všimnout, že na diagonále je rostoucí tendence, naopak na okrajích je klesající, jde o postih za vložení mezery. Na obrázku 7.2 je znázorněna charakteristika zarovnání algoritmem Smith-Waterman. Sekvence v grafu jsou délky 60 znaků. Hodnoty v grafu se pohybují v rozmezí od 0 do 80. Můžeme si všimnout tří větších lokálních zarovnání, která se nacházejí na ose diagonály. Nejvýraznější lokální zarovnání je ze začátku sekvencí. Obrázek 7.1: Vizualizace globálního zarovnání 28

Obrázek 7.2: Vizualizace lokálního zarovnání 7.1 Průběh shlukování První experiment se shlukováním jsem prováděl nad vzorkem dat o 10 proteinech. Ze vstupního souboru sample010.fasta pomocí globálního zarovnání dostaneme na výstupu normalizovanou podobnostní matici 7.1. Pro shlukování byla zvolena metoda k-means s rozložením do3 shluků. Ke shlukování byla použita níže uvedená podobnostní matice. Experiment s touto maticí proběhl celkem 11-krát. Náhodně vždy byly vybrány středy shluků. Výsledky shlukování jsou shrnuty v tabulce 7.2, kde N je pořadí spuštěného shlukování, t značí počet proběhlých iterací. Ve výsledcích je zahrnuto počáteční rozložení do shluků. Počáteční rozložení se navzájem liší. Protein je reprezentován svým indexem i. Indexy proteinů začínají od 0. Přestože počáteční rozložení do shluků je rozdílné výsledné shluky jsou si velmi podobné. V osmi případech bylo rozdělení do shluků s 1 = (0, 1, 2, 5, 7), s 2 = (6), a s 3 = (3, 4, 8, 9), tyto shluky se nacházeli v různých pořadích. Ve dvou případech se objevilo rozložení do shluků s 1 = (0, 2, 3, 4, 5, 7, 8, 9), s 2 = (1), s 3 = (6). V jednom případu se našlo rozložení do shluků s 1 = (0, 3, 4, 5, 7, 8, 9), s 2 = (1, 2), s 3 = (6). P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 2 0.5390 P 3 0.6055 0.5391 P 4 0.5740 0.5535 0.5838 P 5 0.5776 0.5583 0.5886 0.6658 P 6 0.6051 0.5383 0.5989 0.5939 0.5781 P 7 0.4494 0.4662 0.4509 0.4662 0.4583 0.4499 P 8 0.6591 0.5382 0.5982 0.5737 0.5776 0.6018 0.4536 P 9 0.5811 0.5557 0.5917 0.6469 0.6557 0.5899 0.4557 0.5719 P 10 0.5740 0.5553 0.5899 0.6654 0.6588 0.5956 0.4578 0.5724 0.6798 Tabulka 7.1: Normalizovaná podobnostní matice, n = 10 Metoda AGNES najde pro vybranou podobnostní matici shluky s 1 = (1, 7, 0), s 2 = 29

N t Počáteční rozdělení Výsledek 1 4 [0, 5], [1, 2, 6, 7], [3, 4, 8, 9] [0, 1, 2, 5, 7], [6], [3, 4, 8, 9] 2 6 [9], [0, 1, 2, 3, 4, 5, 6, 7], [8] [3, 4, 8, 9], [6], [0, 1, 2, 5, 7] 3 3 [1, 6], [0, 3, 4, 5, 7, 8, 9], [2] [6], [3, 4, 8, 9], [0, 1, 2, 5, 7] 4 3 [3, 4, 8, 9], [0, 2, 5, 7], [1, 6] [3, 4, 8, 9], [0, 1, 2, 5, 7], [6] 5 3 [1, 6], [0, 2, 5, 7], [3, 4, 8, 9] [6], [0, 1, 2, 5, 7], [3, 4, 8, 9] 6 4 [3, 4, 8, 9], [1, 2, 6], [0, 5, 7] [3, 4, 8, 9], [6], [0, 1, 2, 5, 7] 7 5 [3, 4], [0, 1, 2, 5, 6, 7], [8, 9] [0, 1, 2, 5, 7], [6], [3, 4, 8, 9] 8 2 [0, 2, 3, 4, 5, 7, 8, 9], [6], [1] [0, 2, 3, 4, 5, 7, 8, 9], [6], [1] 9 4 [1, 2, 6], [0, 5, 7], [3, 4, 8, 9] [6], [0, 1, 2, 5, 7], [3, 4, 8, 9] 10 2 [1], [0, 2, 3, 4, 5, 7, 8, 9], [6] [1], [0, 2, 3, 4, 5, 7, 8, 9], [6] 11 2 [1, 2], [6], [0, 3, 4, 5, 7, 8, 9] [1, 2], [6], [0, 3, 4, 5, 7, 8, 9] Tabulka 7.2: Shlukování k-means, k = 3, n = 10 (5, 9, 8, 4, 3), s 3 = (6). Na výstupu můžeme vidět jednotlivé kroky hierarchického shlukování metodou ANGES. Během sedmi iterací metoda najde výsledné shluky. #./clustering.py -c agnes -s out -k 3 {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: [9, 8]} {0: 0, 1: 1, 2: 2, 3: [4, 3], 4: 5, 5: 6, 6: 7, 7: [9, 8]} {0: [7, 0], 1: 1, 2: 2, 3: [4, 3], 4: 5, 5: 6, 6: [9, 8]} {0: [7, 0], 1: 1, 2: 2, 3: [[9, 8], [4, 3]], 4: 5, 5: 6} {0: [7, 0], 1: 1, 2: 2, 3: [5, [[9, 8], [4, 3]]], 4: 6} {0: [1, [7, 0]], 1: 2, 2: [5, [[9, 8], [4, 3]]], 3: 6} {0: [1, [7, 0]], 1: [[5, [[9, 8], [4, 3]]], 2], 2: 6} Metoda k-medoids byla pro danou podobnostní matici spuštěna 10 7.3 pro k = 3. Jednotlivé běhy se liší v pořadí v jakém našli stejné výsledné shluky. N t Počáteční rozdělení Výsledek 1 4 [3, 4, 8], [9], [0, 1, 2, 5, 6, 7] [0, 1, 2, 3, 4, 5, 7, 8], [9], [6] 2 4 [1, 2, 6], [0, 3, 4, 8, 9], [5, 7] [6], [3, 4, 8, 9], [0, 1, 2, 5, 7] 3 2 [0, 1, 2, 5, 6, 7], [3, 4, 8], [9] [0, 1, 2, 5, 6, 7], [3, 4, 8], [9] 4 2 [0, 2, 3, 4, 5, 7, 8, 9], [1], [6] [0, 2, 3, 4, 5, 7, 8, 9], [1], [6] 5 3 [8, 9], [0, 1, 2, 5, 6, 7], [3, 4] [9], [0, 1, 2, 5, 6, 7], [3, 4, 8] 6 3 [0, 2, 3, 4, 5, 7, 8], [9], [1, 6] [0, 1, 2, 5, 7], [3, 4, 8, 9], [6] 7 2 [3, 4, 8, 9], [6], [0, 1, 2, 5, 7] [3, 4, 8, 9], [6], [0, 1, 2, 5, 7] 8 2 [0, 1, 2, 5, 7], [6], [3, 4, 8, 9] [0, 1, 2, 5, 7], [6], [3, 4, 8, 9] 9 4 [0, 1, 2, 5, 6, 7], [9], [3, 4, 8] [6], [3, 4, 8, 9], [0, 1, 2, 5, 7] 10 2 [0, 2, 3, 4, 5, 7, 8, 9], [6], [1] [0, 2, 3, 4, 5, 7, 8, 9], [6], [1] Tabulka 7.3: Shlukování k-medoids, k = 3, n = 10 Nejčetnější rozdělení do shluků je s 1 = (0, 1, 2, 5, 7), s 2 = (3, 4, 8, 9), s 3 = (6) s četností 0,5. Druhým nejčastějším rozdělení do shluků je s 1 = (0, 1, 2, 5, 6, 7), s 2 = (3, 4, 8), s 3 = (9) 30

a rozdělení s 1 = (0, 2, 3, 4, 5, 7, 8, 9), s 2 = (1), s 3 = (6), obě s četností 0,2. Poslední nalezené rozdělení do shluků je s 1 = (0, 1, 2, 3, 4, 5, 7, 8), s 2 = (9), s 3 = (6) s četností 0,1. 7.2 Shrnutí Tabulka 7.4 udává přehled o trvání jednotlivých procesů, N v tabulce značí počet sekvencí. Výpočetně nejnáročnější je porovnání všech dvojic a sestavení tabulky podobnosti, které trvá mnohem déle než samotný proces shlukování. Sestavení matice pro 300 sekvencí délky n vypočteme podle vzorce: k (k 1) a = n 2 2 (7.1) 300 299 a = n 2 2 (7.2) kde k udává počet sekvencí, n je délka sekvencí, a = 44850. Časová složitost je potom O(44850 n 2 ). Pro sestavení tabulky podobnosti není potřeba znát přesné zarovnání, stačí hodnota ukazující míru podobnosti. Můžeme zvolit méně náročnou metodu výpočtu zarovnání. Optimalizace může být realizována např. metodou počítáním k-tic. Výpočetní složitost algoritmu k-means je O(nkt), kde n je počet sekvencí, k počet shluků, t počet iterací algoritmu. Časová složitost pro algoritmus k-medoids je pro každou iteraci O(k(n k)2 ). Pro velké hodnoty k a n se stává výpočet náročným. Složitost metody ANES je O(n 2 ) a je nejpomalejší porovnávanou shlukovací metodou podle tabulky 7.4 N Zarovnání Kmeans Kmedoids AGNES 10 4s 0,47s 0,46s 0,55s 20 2m52s 0,47s 0,47s 0,55s 50 14m23s 0,54s 0,53s 1,95s 100 52m18s 0,96s 0,95s 12,60s 300 9h55m55s 12,63s 12,60s 5m42,64s Tabulka 7.4: Porovnání procesů 31

Kapitola 8 Závěr Práce seznamuje s primární strukturou proteinů, používanými algoritmy pro hodnocení podobností proteinových sekvencí a také se shlukovací analýzou a shlukovacími metodami, které se používají pro dolování dat. Shlukovací metody byly implementovány v programovacím jazyce Python. Ze shlukovacích metod jsou implementovány metody založené na rozdělování k-means, k-medoids, a metoda založená na hierarchickém shlukování AGNES. Určení vzdálenosti mezi proteiny je dáno normalizovanou podobnostní maticí. Vzorky dat pro shlukování byly převzaty z databáze proteinů SWISS-PROT. Převzaté vzorky dat obsahovaly sekvence libovolné délky a libovolného počtu. K hodnocení podobností sekvencí jsou použity algoritmy Needlenam-Wunsh, Smith-Waterman a algoritmus pro semiglobální zarovnání. K dispozici jsou různé skórovací matice typu PAM nebo BLOSUM. Provedl jsem shlukování nad vzorky dat o velikostech 10, 20, 50, 100 a 300 proteinových sekvencí. Porovnal jsem časovou složitost algoritmů AGNES, k-means a k-medoids. Budoucí směr vývoje aplikace by mohl směřovat k jednoduchému grafickému uživatelskému rozhraní, které by uživateli zjednodušilo práci a umožnilo mu snadně zadat parametry pro shlukovací metody. Uživatelské rozhraní je zatím realizováno dynamickou stránkou, kterou generuje Python. V úvahu dále přichází optimalizace výpočtu podobnostní matice, a s tím související experimenty s větším množstvím proteinů např. 1000 a více, rozšíření shlukovacích metod např. DENCLUE, WaveCluster, které se dokáží vypořádat s odlehlými hodnotami, a vizualizace vzniklých shluků. 32

Literatura [1] R. AGRAWAL and et al. Automatic subspace clustering of high dimensional data for data mining applications. In Proceedings of the ACM SIGMOD Conference, pages 94 105, 1998. Seatle, WA. [2] P. BERKHIN. Survey of clustering data mining techniques. Springer, 2002. [3] Jean-Michel CLAVERIE and Cedric NOTREDAME. Bioinformatics for Dummies. 2nd edition, Wiley, 2006. ISBN 0-4700-8985-7. [4] Jiawei HAN and Micheline KAMBER. Data Mining: Concepts and Techniques. Academic Press, 2001. ISBN 1-55860-489-8. [5] D. E. KRANE and M. L. RAYMER. Fundamental Concepts of Bioinformatics. Benjamin Cummings, 2002. ISBN 0-8053-4633-6. [6] Saul B. NEEDLEMAN and Christian D. WUNSH. A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology, 48(3):443 453, 1970. [7] G. SHEIKHOLESLAMI, S. CHATTERJEE, and A. ZHANG. Wavecluster: A multi-resolution clustering approach for very large spatial databases. In Proceedings of the 24th Conference on VLDB, pages 428 439, 1998. New York, NY. [8] T. F. SMITH and M. S. WATERMAN. Identification of common molecular subsequences. Journal of Molecular Biology, 147(1):195 197, 1981. [9] Jaroslav ZENDULKA and et al. Získávání znalostí z databází: studijní opora. Brno, VUT, 2006. 33

Příloha A Seznam příloh A.1 CD/DVD A.2 Uživatelská příručka A.3 Příručka programátora 34

Příloha B Uživatelská příručka Kapitola popisuje používání aplikace pro shlukování proteinů. Aplikace je orientována na příkazový řádek. Členění struktury aplikace je následovné: 1. V hlavním adresáři se nachází samotné moduly. 2. V adresáři data/ jsou uloženy soubory se vstupními sekvencemi. 3. V adresáři matrix/ jsou uloženy substituční matice. B.1 Modul zarovnání Modul se nachází v souboru alignment.py. Modul ze vstupních sekvencí proteinů vytvoří pro každou dvojici sekvencí zarovnání. Zarovnání dvou sekvencí je normalizováno do intervalu (0, 1) a uloží se do matice podobnosti, která je výstupem tohoto modulu. B.1.1 Vstupní parametry Vstupními parametry pro zarovnání jsou: -a alignment Typ zarovnání, které bude použito při zarovnávání sekvencí. Volby pro tuto hodnotu jsou global, pro algoritmus Needleman-Wunsh, lokal, pro Smith-Waterman, a semiglobal, pro semiglobální zarovnání. -f data Textový soubor, ze kterého se na se načítají vstupní sekvence proteinů. Tento soubor musí být ve formátu FASTA. -m scoring matrix Vybraná vstupní substituční matice typu BLOSUM nebo PAM, která se použije při výpočtu tabulky částečného skóre. -h,-help Tiskne nápovědu. B.1.2 Použití Použití modulu je následovné, pokud chceme použít globální zarovnání, substituční matici PAM-40 a vstupní soubor se sekvencemi sample002.fasta: #./alignment.py -a global -f sample002.fasta -m pam040.txt 35

Příklad vytiskne na obrazovku normalizovanou matici podobnosti. Podobnostní matici si můžeme uložit do souboru podobnost.dat pomocí přesměrování výstupu: #./alignment.py -a global -f sample002.fasta -m pam040.txt > podobnost.dat Pozn. soubory sample002.fasta a pam040.txt se musí nacházet v adresářích data/ a matrix/. B.2 Modul shlukování Modul shlukování ze vstupní normalizované matice podobností vytvoří shluky podle zvolené shlukovací metody. Modul je uložen v souboru clustering.py. B.2.1 Vstupní parametry Vstupními parametry pro shlukování jsou: -c clustering method Volba shlukovací metody, která se použije při shlukování. Hodnoty pro tuto volbu jsou agnes, pro hierarchické shlukování, kmeans, kmedoids pro metody založené rozdělování. -s dissimilarity matrix Soubor s normalizovanou podobnostní maticí, která byla vytvořena a předcházejícím kroku zarovnání. -k number Parametr musí být typu celé číslo (integer). Udává počet shluků, které se vytvoří během shlukování. -h, -help Parametr tiskne nápovědu. B.2.2 Použití Chceme například použít podobnostní matici podobnost.dat z předchozího příkladu s metodou k-means, a k nastavíme na 3 shluky: #./clustering.py -c kmeans -s podobnost.dat -k 3 Příklad vytiskne na obrazovku tři shluky. Celý proces si můžeme z automatizovat pomocí skriptů v BASHi, skript.sh: #!/bin/bash python alignment.py -a global -f sample002.fasta -m pam040.txt > podobnost.dat python clustering.py -c kmeans -s podobnost.dat -k 3 B.3 Uživatelské rozhraní V tomto případě se jedná o jednoduché webové rozhraní, kde se dají snadno zadat parametry. Rozhraní tvoří vstupní formuláře obsluhované cgi skripty. Nebyl zde kladen velký důraz na grafické uživatelské rozhraní. 36

Obrázek B.1: Vstupní formulář modulu zarovnání Obrázek B.2: Vstupní formulář shlukovacího modulu 37

Příloha C Příručka programátora Kapitola popisuje aplikaci z hlediska programátora. Jsou zde popsány datové typy a funkce. C.1 Datové typy Datová třída protein obsahuje datové proměnné name a sequence, které jsou typu řetězec(string). Třída protein slouží k uložení údajů o proteinu a to zejména jména a sekvence aminokyselin. Instance třídy protein jsou, pak uloženy v datovém typu seznam, který obsahuje všechny načtené proteiny. Obrázek C.1: UML diagram třídy proteinů Substituční matice se ukládá do datového typu slovník. Klíč do slovníku představuje dvojice aminokyselin, např. (A,L). Matice podobnosti se také ukládá do datového typu slovník. Klíčem do slovníku matice podobnosti je pořadové číslo proteinu, např. (3,4) pro 4. a 5. protein. Tabulka částečného skóre a shluky se ukládají do dvojrozměrného seznamu. Přístup probíhá přes indexy i, j např. do tabulky částečného skóre scoretable[i][j]. C.2 Popis funkcí Společné funkce pro oba moduly aligment.py a clustering.py: 38