ZADÁNÍ 1
ZADÁNÍ 2
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra počítačů Bakalářská práce Klasifikace s apriorní znalostí červen 2007 Vypracoval: Michal Trna Vedoucí práce: Ing. Jiří Kléma, PhD. 3
BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE 4
Poděkování Chtěl bych na tomto místě poděkovat všem, kteří mi jakýkoli způsobem pomáhali při vzniku této práce. Zvláště děkuji vedoucímu mé bakalářské práce Ing. Jiřímu Klémovi, PhD. za odbornou pomoc a svému počítači za stovky hodin procesorového času. 5
BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE 6
Čestné prohlášení Prohlašuji, že jsem zadanou bakalářskou práci vypracoval samostatně s přispěním vedoucího práce a použil jsem pouze podklady uvedené v přiloženém seznamu. Dále prohlašuji, že nemám závažný důvod proti užití tohoto díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 15. 6. 2007... podpis 7
BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE 8
ABSTRAKT Oblast analýzy biomedicínských dat je poměrně mladá disciplína a v současnosti se velmi rychle rozvíjí. Problémy zpracování těchto specifických dat vybízí k vyvinutí nových efektivních metod, k čemuž má přispět i tato práce; zabýváme se v ní implementací a vyhodnocením výsledků modifikovaného klasifikátoru CN2. Nově dodaným prvkem v něm je zvažování použití apriorní znalosti získané z popisů atributů, v našem případě genů. Různé přístupy použití této znalosti při stavbě klasifikačních pravidel zde pak rozebíráme a vyhodnocujeme. ABSTRACT The analysis of biomedical data is quite young and rapidly developing discipline at present. Problems of processing such specific data provokes us to develop new effective methods, whereto this work should contribute. It inquires into the implementation and evaluation of results of the modified algorithm CN2. The newly added aspect to this algorithm is consideration of usage of the knowledge extracted from annotations of attributes, in our case genes. Various approaches of usage of this knowledge in the building process of classification rules are analysed and interpreted. 9
BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE 10
Obsah Obsah 11 Seznam obrázků 13 Seznam grafů 14 Seznam tabulek 15 1 Úvod 17 1.1 Úvod do genetiky 17 1.1.1 DNA 18 1.1.2 Geny 21 1.1.3 Chromozomy 23 1.2 Genomická data 24 1.2.1 Sekvenování DNA 24 1.2.2 Genové čipy 26 1.2.3 Genomická data 28 1.2.3.1 SAGE data 29 1.2.3.2 AML ALL data 29 1.2.4 Genové ontologie 31 1.3 Klasifikace 33 1.3.1 CN2 33 1.3.2 Křížová validace 37 2 Injekce apriorní znalosti 39 2.1 Získání termínů z genových popisů 40 2.2 Získání matice podobnosti 40 2.3 Úpravy v CN2 41 11
3 Experimenty 45 4 Závěr 53 A. Seznam zkratek 54 B. Reference 55 C. Příloha 57 I. Obsah přiloženého média 57 II. Popis částí zdrojového kódu 58 III.Popis instalace a spouštění CN2 61 IV.Popisy přiložených skriptů 62 12
Seznam obrázků Obr. 1. Struktura DNA 20 Obr. 2. Proces přepisu genetické informace do proteinů 23 Obr. 3. Proces hybridizace na genovém čipu 27 Obr. 4 Paprskové procházení stavovým prostorem algoritmu CN2 34 13
Seznam grafů Graf 1. Kl. přesnost CN2 s bg. knowledge z GO BP injektovanou do primusu 45 Graf 2. Kl. přesnost CN2 s bg. knowledge z GO MF injektovanou do primusu 46 Graf 3. Kl. přesnost CN2 s bg. knowledge z GO BP injektovanou do primusu 47 Graf 4. Kl. přesnost CN2 s bg. knowledge z GO MF injektovanou do primusu 47 Graf 5. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do primusu 48 Graf 6. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do primusu 48 Graf 7. Kl. přesnost CN2 s bg. knowledge z GO BP/MF injektovanou do secundusu 49 Graf 8. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do secundusu 50 Graf 9. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do secundusu 50 Graf 10. Kl. přesnost CN2 s feature selection 51 14
Seznam tabulek Tab. 0. Významy kodónů krátká označení aminokyselin a příslušné kodóny 20 Tab. 1. Kl. přesnost CN2 s bg. knowledge z GO BP injektovanou do primusu 45 Tab. 2. Kl. přesnost CN2 s bg. knowledge z GO MF injektovanou do primusu 46 Tab. 3. Kl. přesnost CN2 s bg. knowledge z GO BP injektovanou do primusu 47 Graf 4. Kl. přesnost CN2 s bg. knowledge z GO MF injektovanou do primusu 47 Tab. 5. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do primusu 48 Tab. 6. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do primusu 48 Tab. 7. Kl. přesnost CN2 s bg. knowledge z GO BP/MF injektovanou do secundusu 49 Tab. 8. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do secundusu 50 Tab. 9. Kl. přesnost CN2 s bg. knowledge z ALLAML injektovanou do secundusu 50 15
BLANKPAGE BLANKPAGE BLANKPAGE BLANKPAGE 16
1. Úvod Informační společnost generuje a kumuluje ohromná množství dat, která ve své surové podobě nezřídka nesou jenom malou pragmatickou informaci. K jejich zpracování do zužitkovatelné podoby byly v průběhu let vyvinuty netriviální přístupy, které byly souhrnně začleněny pod hlavičku dolování dat (data mining, DM) popř. objevování dat v databázích (knowledge discovery in databases, KDD). Mezi základní úlohy disciplíny patří vyhledávání netriviálních vzorů, souvislostí či pravidel v datech a jejich přehledné, člověkem pochopitelné prezentování. Tato bakalářská práce se zabývá úpravou klasifikačního algoritmu CN2 pro účely vylepšení jeho predikční přesnosti pro data, u kterých máme tzv. apriorní znalost (background knowledge), tj. předem danou znalost vztahující se k jednotlivým atributům. Touto znalostí může být jako v našem případě například textový popis genu, na jehož základu se dá usuzovat na souvztažnost některých atributů, a na základě této doplňkové znalosti můžeme výběry příslušných atributů do generovaných pravidel motivovat. Od tohoto přístupu si slibujeme vylepšené klasifikační schopnosti nového algoritmu. 1.1. Úvod do genetiky V této části se stručně zmíním o původu dat, nad kterými byly prováděny experimenty. Nejprve bychom si měli vytvořit představu o tom, co to genetická data vlastně jsou: jsou to data týkající se obecně genomu; v našem kontextu jde vždy o data týkající se genomu lidského, takže všechna následující tvrzení o genomu budiž 17
chápana v kontextu lidského genomu. Nejjednodušší ještě výstižná představa o genomu by mohla vypadat takto: genom je úplný sada instrukcí kódujících elementární procesy uvnitř lidského těla (včetně jeho vzniku a také regulace procesu vzniku). Obsahuje plány (návrh, design) základního tělesného uspořádání, všech buněčných struktur a nitro buněčných procesů včetně životního cyklu. Lidský genom je zakódovaný v molekulách deoxyribonukleové kyseliny (DNA), které se standardně nacházejí v jádře prakticky všech buněk (kromě bezjaderných červených krvinek), kde spočívají těsně stočené ve šroubovici; spolu s připojenými proteinovými molekulami tvoří organizační jednotku zvanou chromozom. Chromozomů má člověk v každé běžné buňce 46. V následujících odstavcích se stručně zmíním o základním popise a funkci DNA. 1.1.1. DNA Po chemické stránce je DNA dlouhý polymer skládající se z jednoduchých informaci nesoucích jednotek zvaných nukleotidy navázaných na informaci nenesoucí kostře z cukrů a fosfátů (zbytky po kyselině fosforečné). Ke každému cukru je připojena jedna ze čtyř druhů molekul zvaných báze; těmito bázemi mohou být adenin (A), cytosin (C), guanin (G) a thymin (T). Sekvence těchto bází podél fosfátové kostry molekuly kóduje informaci podobně jako ji kódují dipóly na magnetické pásce. Molekula DNA obsahuje dvě taková vlákna, která jsou k sobě připojena bázemi. Báze se na sebe vážou pomocí vodíkových můstků; vždy adenin s thyminem a cytosin s guaninem; říká se, že jsou tyto báze navzájem komplementární. Tyto báze spolu s cukr fosfátovou kostrou tvoří dvojitou šroubovici (double helix). Přesné pořadí bází 18
podél kostry se nazývá DNA sekvence. Tato sekvence přesně obsahuje instrukce pro vznik organizmu se specifickými rysy a též pro všechny jeho vnitřní pochody. Velikost genomu se obvykle vyjadřuje jako počet bázových dvojic. Pro lidský genom se toto číslo pohybuje přibližně na 2,9.10 9 dvojicích, pro srovnání pro genom domácí myši je to asi 2,5.10 9 dvojic, pro rýži asi 0,5.10 9 dvojic. Trojce po sobě následujících bází tvoří tzv. kodón. Vzhledem k tomu, že máme 4 možné báze, máme 4 3 = 64 možných kodónů, označují se postupným zápisem písmen označujících jednotlivé báze (např. AAC, AUG). Tyto kodóny jsou úzce spjaty s tzv. aminokyselinami, do kterých se při procesu předávání informace z DNA (translace) přepisují; těchto aminokyselin máme 20. Některé kodóny mají speciální synchronizační funkci, např. start a stop kodóny vymezující oblast translace (viz dále). Ala A GCU, GCC, GCA, GCG Leu L UUA, UUG, CUU, CUC, CUA, CUG Arg R CGU, CGC, CGA, CGG, AGA, Lys K AAA, AAG AGG Asn N AAU, AAC Met M AUG Asp D GAU, GAC Phe F UUU, UUC Cys C UGU, UGC Pro P CCU, CCC, CCA, CCG Gln Q CAA, CAG Ser S UCU, UCC, UCA, UCG, AGU, AGC Glu E GAA, GAG Thr T ACU, ACC, ACA, ACG Gly G GGU, GGC, GGA, GGG Trp W UGG His H CAU, CAC Tyr Y UAU, UAC Ile I AUU, AUC, AUA Val V GUU, GUC, GUA, GUG Start AUG, GUG Stop UAG, UGA, UAA Tab. 0 Významy kodónů krátká označení aminokyselin a příslušné kodóny 19
Z předchozí tabulky (tab. 0) je vidět, že genetický kód je tzv. redundantní či degenerovaný tj. že jedna aminokyselina odpovídá většímu množství kodónů. Z tohoto důvodu není možné z vyrobeného aminokyselinového řetězce zjistit původní podobu genu. Jak již bylo řečeno, DNA je nukleová kyselina, vyskytující se s výjimkou bezjaderných červených krvinek v jádře, která obsahuje genetické instrukce používané při vývoji organismu a při řízení jeho vnitřních procesů. Hlavním úkolem DNA je dlouhodobé uložení této informace. Segmenty DNA, které nesou smysluplnou genetickou informaci se nazývají geny; sem patří i části DNA nesoucí informaci o struktuře nebo mají regulační účel. Na DNA jsou taktéž hluché úseky bez jakéhokoliv známého významu, tzv. junk DNA, která tvoří až 97% lidské DNA. Obr. 1 Struktura DNA 20
Obrázek na předchozí straně (obr. 1) jasně zachycuje strukturu DNA: po stranách se ve vertikálním smyslu vine cukr fosfátové vlákno; vprostřed jsou na sebe navázané A T a C G báze. Všimněte si, že báze adenin a thymin jsou navázány pomocí dvou můstků, zatímco cytosin s thyminem váží tři můstky a tedy jsou bezpečně nezaměnitelné. V RNA se místo thyminu používá trojvazný uracil (U). Jak již bylo zmíněno, základní jednotkou genetické informace je gen, který je schopný (resp. podstupuje; podle úhlu pohledu) množení (reprodukce) a změny (mutace). Funkcí je realizace nějakého znaku či vlastnosti, kterou kóduje. V makroskopickém pohledu je sám o sobě víceméně pouze kus informace, která podléhá výběrovým (selektivním; či vývojovým evolučním) tlakům. Není bez zajímavosti, že tzv. emergentní jevy nad pooly různých genů nacházejí uplatnění v jiných části umělé inteligence než kterou se zde zabýváme v genetickém programování, návrhu genetických algoritmů a výzkumu kolektivní inteligence. Dnes víme, že lidský genom obsahuje ne více než 21000 genů [1], v době psaná této práce známe 20488 s tím, že ještě asi 100 čeká na objevení [2]. Z tohoto lze vypozorovat, že genová hustota, která udává počet genů na bázi (b; popř. mega bázi Mb), je poměrně nízká. Hustota lidského genomu je asi 12 15 genů na Mb [3]. Prokaryota mají tuto hustotu vyšší než vyšší organizmy. 1.1.2. Geny Jak si lze odvodit z výše napsaného, každá DNA obsahuje řádově stovky až tisíce genů základních fyzikálních a funkčních jednotek informace. Tato informace je použita při konstrukci proteinů, které se následně zapojují do konstrukce a procesů a reakčních cyklů uvnitř buňky katalyzující proteiny se nazývají enzymy. Geny se velmi liší ve své délce; často se rozprostírají přes tisíce bází. Prostor 21
mezi geny, který nenese žádnou informaci a nemá žádnou kódovací funkci zaplňují tzv. introny. Jejich délka se liší a typicky to bývají úseky tisíce bází dlouhé, některé však mohou mít i stovky tisíc bází na délku. Organismy jsou sestaveny prakticky zcela z proteinů. Jsou to velké složité molekuly tvořené z dlouhých řetězců podjednotek aminokyselin. Lidé jich mohou syntetizovat přinejmenším 100000 druhů. Proteiny se skládají z 20 druhů aminokyselin o jejichž kódování kodóny jsme se zmiňovali výše. Protein průměrné velikosti (3000bp base pairs párů bází) se tedy bude skládat přibližně z 1000 aminokyselin. Největší proteiny titiny, složky svalové sarkomery se skládají z téměř 27000 aminokyselin a mají molekulovou hmotnost téměř 3MDa (megadalton) [4]. Na této úrovni je genetický kód série kodónů určujících, které aminokyseliny na kterém místě budou použity pro vybudování konkrétního proteinu. Toto kódování ovšem neprobíhá přímo. Instrukce kódující protein jsou nejprve přeneseny na tzv. mrna (messenger RNA). RNA (ribonucleic acid; ribonukleová kyselina) je nukleová kyselina velmi podobná DNA ve stavebních kamenech s tím rozdílem, že místo thyminu (T) používá uracil (U) jak jsme již zmínili; důležitější však je, že RNA je jednovláknová. MRNA je tedy speciální druh RNA, který má jediný účel a to nechat do sebe otisknout (trascribe) genetickou informaci a poté ji po přesunu z jádra do cytoplasmy použít na stavbu proteinu (translation). Ta probíhá tak, že se na otištěné kodóny naváží příslušné aminokyseliny, které se zřetězí a vytvoří tak molekulu proteinu. Na obrázku 2 je celý proces názorně zachycen. 22
Obr. 2 Proces přepisu genetické informace do proteinů 1.1.3. Chromozomy Tři miliardy párů bází jsou organizovány do 23 fyzikálně odlišných jednotek zvaných chromozomové páry. Všechny somatické lidské buňky (všechny s výjimkou pohlavních) obsahují dvě množiny chromozomů (říkáme že jsou diploidní) každá je od jednoho z rodičů, proto páry. Z těchto párů je 22 tzv. autosomů (nesexuálních chromozomů společných pro obě pohlaví) a dále jeden pár pohlavně specifický (chromozomy X a Y). Normální žena má pár chromozomů XX a normální muž má XY. Chromozomy jsou pozorovatelné mikroskopem (po obarvení speciálním barvivem) a lze je rozeznat jasně podle velikosti (největší chromozom č. 1 má cca. 245Mbp, nejmenší č. 21 má oproti tomu jen asi 47Mbp). Jevy a případné změny na úrovní DNA jsou ovšem příliš jemné a vyžadují molekulární analýzu. Tyto jemné DNA abnormality jsou odpovědné za různé dědičné choroby jako je anemie nebo cystická fibrióza nebo mohou mýt predispozicí pro vznik rakoviny popřípadě jiných složitých chorob. Je dobré zmínit, že podle počtu chromozomů nelze usuzovat například na 23
vyspělost druhu. Octomilka má 8 chromozomů, morče 16, člověk jak byl řečeno 46, drůbež 78 a motýli v závislosti na druhu až 380. Některé druhy rostlin pak 10, jiné i přes 1200. Velká většina genů v těchto organizmech je však soustředěna v několika málo velkých chromozomech; zbytek chromozomů je pak malý nebo vysloveně drobný (rozpadlé chromozomy). 1.2. Genetická data 1.2.1. Sekvenování DNA Sekvenování DNA je prosté určení sekvence nukleotidů uvnitř jednoho DNA řetězce druhý řetězec je jak jsem se již zmínil komplementární a jednoznačně odvoditelný. Sekvenování je tedy proces, kterým se převádí DNA sekvence do podoby dat, se kterými se pak dá pracovat pomocí prostředků na hromadné zpracování dat. Pro princip sekvenování existuje několik základní metody. Jednou z nich je například metoda chemické degradace, další je metoda terminace řetězců, která dnes jednoznačně převládá. Tato metoda používá jednovláknovou DNA jako vzor pro syntézu druhého komplementárního řetězce. Tato syntéza je zprostředkována enzymem polymerázou. Reakce je upravena tak, že v určitých místech (na určitých nukleotidech) dochází v závislosti na sekvenci vzorového vlákna k ukončení (terminaci) syntézy. Vznikají tak nedokončené řetězce komplementárního vlákna různých délek; a tyto délky je možné zjistit pomocí elektroforézy v gelu. Jelikož k ukončení reakce dochází ve chvíli, kdy se ve vzorovém vlákně vyskytne určitý nukleotid, tak délka odpovídá vzdálenosti od začátku vlákna, ve které se objevil tento nukleotid. Získáme tedy dílčí informaci o sekvenci známe pozici prvního výskytu 24
daného nukleotidu ve vzorovém vlákně. Syntéza se provádí tak, že se vždy hledají řetězce pro jeden konkrétní nukleotid. Trik této metody spočívá v tom, že se do reakce nepřidává pouze terminační dideoxynukleotid, ale také i normální partnerský deoxynukleotid v poměru 100:1. Další důležitým aspektem je, že reakce nikdy neobsahuje pouze jedno vzorové vlákno, ale velké množství těchto vláken se stejnou sekvencí. Při sekvenování tedy probíhá současně více syntéz nových komplementárních vláken. Vzorová vlákna budou vždy na stejných místech obsahovat např. guaniny, proti kterým bude DNA polymeráza do nového vlákna zařazovat cytosiny, které se budou náhodně vybírat z roztoku. Pokud tedy bude jeden ze sta cytosinů mít podobu terminačního dideoxynukleotidu, dojde k zastavení (terminaci) reakce jen u jednoho ze sta nově syntetizovaných vláken. U ostatních bude zařazen normální cytosin a syntéza tohoto vlákna bude pokračovat dále k dalšímu místu, kde kam bude potřeba na guanin navázat nějaký cytosin. V tomto momentu se opět zastaví 1% z dosud syntetizujících vláken. Na konci tohoto procesu tedy bude výsledkem reakce směs nových vláken, která budou dlouhá v závislosti na tom, kde se u nich syntéza zastavila. Po rozdělení v gelu a zjištění jejich délky v počtu párů tedy zjistíme pozice, na kterých se ve vzoru objevil guanin. Současné metody jsou schopné přímo sekvenovat jenom relativně krátké úseky DNA, 300 1000 nukleotidů; hlavním problémem je, že při dosažení této hranice chybí rozlišovací schopnost od sebe rozeznat dva úseky lišící se v délce o jeden nukleotid. Používaným řešením je, že se DNA (nejdelší chromozom = 250 milionů bází) mechanicky nebo pomocí speciálních enzymů rozstřihne na menší části, které se pak za pomocí vhodné bakterie namnoží (což ovšem nelze úplně vždy mj. kvůli vlivu této DNA na fungování hostitelské bakterie) a potom sekvenují s tím, že se s výhodou využije faktu, že se nová sekvence překrývá se nějakou vhodnou známou částí k přesné identifikaci jejího umístění (shotgun sekvenování). 25
Jak jsme již zmínili, lidský genom obsahuje zhruba 3.10 9 bází. Při průměrné velikosti sekvenovaného fragmentu 500bp a zanedbání překryvů, je potřeba nejméně 6.000.000 běhů k jeho úplnému osekvenování. I přes tuto zjevnou pomalost již v roce 1999 resp. 2000 byly zveřejněny sekvence chromozomu 22 resp. 21. V současnosti uváděné sekvenční technologie jsou nadto schopny pracovat řádově rychleji než dřívější elektroforézní systémy. 1.2.2. Genové čipy Jiný přístup jak získat data z DNA je použít tzv. genové čipů, tzv. microarrays. Tato metoda se často se používá pro měření aktivity (exprese) genů v organismu. Vzhledem k tomu, že data zkoumaná v této práci mají původ právě v genových čipech, tuto problematiku zde trochu rozvedeme. Tato metoda je založena na technologii DNA prob; probu si lze představit jako jakousi sondu, sekvenci několika bází, která identifikuje určitý úsek DNA. Postup je následující. Vezmeme jedno vlákno DNA, toto vlákno budiž komplementární doplněk sekvence, kterou chceme hledat. Vložíme ho do ro roztoku, který obsahuje zkoumaný genetický materiál. V případě, že proba nalezne v roztoku svůj komplement, dojde ke spojení proby a tohoto komplementu ze zkoumaného genetického materiálu (tzv. hybridizaci). Trik této metody tkví v tom, že dříve než se zkoumaný genetický materiál (což bývá RNA získaná ze zkoumané DNA) vloží do roztoku, je opatřen fluorescentem. V technologii genetických čipů se tohoto využívá tak, že se proby ve velkém množství zafixují na konkrétní přesně dané pozice na čipu (což je většinou sklíčko nebo jiný speciální povrch), takže podle intenzity zbarvení lze v principu jednoduše určit kam se obarvená RNA uchytává, tj. jaké sekvence obsahuje. Často se toto pak provádí s různě zbarveným materiálem různého původu, takže lze okamžitě srovnat rozdíly ve 26
výskytu sekvencí ve vzorcích. Různý původ může například znamenat, že jeden materiál má původ ve zdravých buňkách a druhý v buňkách napadených rakovinou, buňkách na které byly aplikovány léky apod. Jak bylo řečeno, prob může být velké množství a hybridizace probíhá na všech současně, takže technologie dává poměrně rozsáhlé výsledky například pro bakterii E. coli, která je pro jednoduchý genom často vyhledávaným objektem experimentů, se na čip vejde dost prob pro nalezení všech jejích 4000 genů. Dále pak na každý čip je umístěno velké množství prob, které jsou stejné; jelikož ne každý proba je následně hybridizovaná v plné míře (dochází k částečné hybridizaci), je pro přesnější určení přítomnosti dané sondy ve zkoumaném vzorku (samplu) výhodné získané hodnoty tímto způsobem zprůměrovat. Tato data pak naskýtají vhodnou příležitost pro použití strojového učení. Následující obrázek č. 3 ukazuje, jak může genový čip a hybridizační procesy na něm vypadat. Obr. 3 Proces hybridizace na genovém čipu [5] Z obrázku je patrné, že délka RNA řetězců je výrazně větší než délka pro; typická délka v praxi používaných prob je asi 25 bází, oproti tomu typická délka 27
zkoumaného samplu je v tisících bází. Tato délka je dostatečná k identifikaci zkoumaných genů a na druhou stranu jsou proby dost krátké na to, aby nedocházelo k nežádoucím hybridizacím, například částečným hybridizacím nebo vzájemným hybridizacím dvou sond popřípadě jakési sebehybridizaci jedné sondy. Dále po ukončení fáze hybridizace je čip opláchnut, aby se smyla všechna nehybridizovaná (obarvená) DNA a pomocí optického mikroskopu se přečte hodnota intenzity fluorescence každého konkrétního vzorku na čipu. 1.2.3. Genomická data Ve stručnosti o tom, jak jsou nasbíraná data reprezentována a jak je s nimi manipulováno: existuje několik pohledů na to jak organizovat genomická data pro další využití lišící se v tom, co tvoří příklady (examples) a co vlastnosti (features). První možností je, že gen tvoří příklad a jeho exprese v různých podmínkách je množina vlastnosti. Druhý asi přirozenější přístup, který také používáme v této práci, je ten, že příklad je tvořený experimentem a jednotlivé rysy odpovídají jednotlivým genům. V této práci k těmto datům přistupujeme pomocí tzv. metody učení s učitelem; tj. vytvoříme model na trénovacích datech, kde pro každý příklad je přiřazena kategorie (rakovina ano ne, leukémie typ 1 typ 2). Na základě vytvořeného modelu pak jsme schopní rozhodnout pro do příkladů nezahrnuté případy o zařazení do kategorie. Pro experimenty byly použity dva zdroje dat: SAGE data a ALLAML. data. 28
1.2.3.1. SAGE data Serial Analysis of Gene Expression data alias SAGE data jsou microarray data s extrémně vysokou dimenzí a díky metodě měření jsou zde přítomny chyby ve velkém množství. Původním problémem nad těmito daty je správně oklasifikovat typ rakoviny, v našem případě však hledáme pravidla pouze pro třídy rakovina ano/ne. Tento data set má záměrně velmi diverzifikovaný původ (různé tkáně), aby bylo možné provést mezitkáňová srovnání. Pro velkou šíři záběru tyto data asi nemá smysl více rozebírat. Originální dataset obsahuje 35000 atributů a počet chyb dosahuje asi 10%[9]. V našem případě jsme však až s takto vysokodimenzionálními daty nepracovali a po redukci atributů na takové, které se projevily alespoň v několika situacích zůstalo asi 11000 atributů. Klasifikační přesnost CN2 bez injektové apriorní znalosti se na těchto datech pochybuje kolem 66%. 1.2.3.2. ALLAML data ALL vs. AML problém spočívá ve správném klasifikování vzorku s leukémií. Leukémie je jak asi všichni víme, nádorové onemocnění bílých krvinek. Abnormální bílé krvinky se množí na úkor červených krvinek i krevních destiček, čímž vyvolají anémii, krvácení a krevní výrony. V těžkých případech mohou v kostní dřeni úplně potlačit krvetvorbu. Leukémie lze rozdělit podle dvou atributů do čtyř skupin: jednak na akutní a chronické, dále pak na lymfocytické a myeloidní. Akutní leukémie je charakterizovaná rapidním šířením nezralých krevních buněk. Toto zahlcení způsobí, že kostní dřeň je následně neschopná tvořit zralé buňky, 29
kterých je pak logicky nedostatek. Tato nemoc je vyskytuje u dětí a dospívajících (v USA v této kategorii je to nejčastější příčina úmrtí mezi zhoubnými onemocněními). Chronická leukémie se liší tím, že kostní dřeň produkuje velké množství relativně vyspělých, ale stále nějak abnormálních buněk. Typicky trvá měsíce až roky než se vyvinou a jsou produkovány v daleko větším počtu než je běžné. Výsledkem je pak velké množství abnormálních bílých krvinek v krvi. Toto onemocnění je naopak časté u starších lidí. Rozdíl mezi lymfocytickou a myeloidní leukémií je v tom, který typ buněk zasahuje zda bílé krvinky (lymphocyty) nebo buňky kostní dřeně (myelocyty). Naučit strojově rozpoznávat a predikovat tento rozdíl je mj. naším úkolem v této práci. Příklady jsou rozděleny do dvou tříd: ALL (Acute Lymphocytic Leukemia) a AML (Acute Myelogenous Leukemia), k dispozici jich máme celkem 72. Každý má 7129 atributů/feature, což jsou numericky vyjádřené exprese genů. Vzhledem k tomu, že data mají poměrně kompaktní původ (jedna série měření zaměřená na jeden problém), jejich klasifikace je při použití např. CN2 poměrně daleko snazší resp. predikční síla větší než klasifikace SAGE dat, i když metoda získání (microarray) je u obou sad dat shodná. Originální neupravená data lze získat na této adrese: http://www.broad.mit.edu/cgi bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=43, kde je také jejich popis a popis jejich získání. Klasifikační přesnost CN2 bez injektované apriorní znalosti se na těchto datech pochybuje kolem 87%. 30
1.2.4. Genové ontologie V této práci dále používáme genové ontologie, zde si je tedy stručně uvedeme. Gene ontology project (GO) poskytuje slovník vhodně volených termínů pro popis atributů genů a procesů týkajících se genů. GO popisuje tři základní struktury: molekulární funkce (molecular function; MF) biologické procesy (biological processes; BP) buněčné komponenty (cellular components) Molekulární funkce popisují různé aktivity genových produktů na molekulární úrovni; nepopisují ovšem kdy nebo kde se dějí. Biologické procesy popisují sérii prováděných akcí skládající se z více molekulárních funkcí. Buněčná komponenta je součást buňky (organela) nebo skupina genových produktů. V oblasti GO se hlavní úsilí soustředí na vytvoření a udržování GO, dále jejich propojení se spolupracujícími databázemi (DB obsahující data týkající se genomu člověka, zvířat, rostlin, bakterií apod.) a vytvoření nástrojů, které jsou schopné s GO efektivně pracovat nebo vytvářet je. Takováto sjednocená platforma pak umožňuje jednotné dotazování napříč spolupracujícími databázemi. GO výrazy jsou strukturovány tak, že je možné pomocí nich uplatnit různé pohledy na data. Každý genový produkt má alespoň jednu molekulární funkci a je použitý alespoň v jednom biologickém procesu v alespoň jedné buněčné komponentě. GO výrazy jsou organizované v orientovaném acyklickém grafu (directed acyclic graph; DAG). Pro první představu si lze DAGy znázornit jako větvemi propletené orientované stromy rozdíl oproti jednoduchému stromu je ten, že potomek může mít více předků; teorií grafů se zde ovšem nebudeme zabývat, pro případ potřeby či zájmu odkazuji na [10]. V GO platí pravidlo které říká, že pokud nějaký uzel grafu popisuje nějaký genový produkt, pak tento genový produkt musí popisovat i jeho předchůdce. 31
GO výrazy v každém případě nejsou úplným popisem celé složité struktury a všech jevů týkajících se genových produktů, umožňují nám přiřadit genům a jejich produktům pouze omezenou množinu atributů. Pomocí GO například není možné popsat v kterých buňkách, jejich vývojových stádiích nebo jakém širším kontextu (například chorob) se projevují tyto popisy jsou součástí jiných ontologií určených pro jiné účely. 32
1.3. Klasifikace 1.3.1. CN2 Algoritmus CN2 byl uveden v roce 1988 [6], jeho princip je následující: při startu algoritmu máme prázdnou množinu pravidel a dokud existuje prvek v (nějak neurčitě definovanou funkcí určené) množině pravidel s výhodnou hodnotou výběrového kritéria (tj. jsou vhodná pro tvorbu pravidel), pak odstraníme z množiny examplů examply pokryté nejlépe vypadajícím pravidlem, a do množiny pravidel přiřadíme toto pravidlo implikující majoritní třídu těchto examplů. V pseudokódu toto vypadá přibližně následovně (pro uspořádanou variantu): def CN2 ( Examples ): # seznam examplů (n-tic s třídou) je vstupem, tj. schematicky: # Examples = [ [ [ att1... attn ], class ],...,... ] # seznam pravidel je prázdný ListOfRules = empty # získáme nejlepší vhodné pravidlo nebo empty množinu BestRule = GetBestRule(Examples) # dokud není množina examplů prázdná # nebo nejsou žádná vhodná pravidla while ( not Examples.empty() and not BestRule.empty() ): # odstraníme pravidlem pokryté examply E.remove( BestRule.coveredExamples() ) # do seznamu pravidel přidáme na konec pravidlo # indukující majoritní třídů pokrytých examplů ListOfRules.addRuleWithClass( BestRule, BestRule.coveredExamples().getMajorityClass() ) # získáme nejlepší vhodné pravidlo pro další cyklus BestRule = GetBestRule(Examples) 33
Je zjevné, že naprosto rozhodující roli na efektivitu algoritmu bude mít kvalita volby funkce GetBestRule. CN2 algoritmus tuto funkci implementuje pomocí paprskového prohledávání tak, že si udržuje množinu (paprsek) nejnadějnějších pravidel a tyto specializuje dokud to je možné a výhodné. Následující obrázek proces názorně ilustruje: TRUE ATT1 op C1 ATT2 op C2 ATTn op Cn ATT2 op C2 and ATT1 op C1 ATT2 op C2 and ATT3 op C3 ATTn op Cn and ATT2 op C2 Obr. 4 Paprskové procházení stavovým prostorem algoritmu CN2 V každém momentu si algoritmus pamatuje jenom určité množství nejnadějnějších pravidel (podle nějaké hodnotící funkce), které odpovídá šířce paprsku. Původní implementace CN2 toto realizuje poměrně zbytečně složitým způsobem tak, že skladuje seznam nadějných pravidel na velikostí omezené haldě a přebývající pravidla tedy přepadnou přes okraj (první myšlenka jak to realizovat, která se sama nabízí a může vás taktéž napadnout, ovšem není zrovna správná). Při defaultně malé šířce paprsku (<10) se ale jinak žádoucí asymptotická výhodnost této metody bezpečně nijak neprojevuje a realizace pomocí pole by mohla být dokonce výrazně výhodnější. Pokud jde o to jak vypadá toto paprskové prohledávání v kódu, pak následuje 34