Technische Universiteit Delft Faculteit Elektrotechniek, Wiskunde en Informatica Delft Institute of Applied Mathematics Het rangschikken van genen (Gene Ranking) Verslag ten behoeve van het Delft Institute of Applied Mathematics als onderdeel ter verkrijging van de graad van BACHELOR OF SCIENCE in TECHNISCHE WISKUNDE door Cindy Boon Delft, Nederland Juli 2014 c 2014 door Cindy Boon. Alle rechten voorbehouden. Copyright BSc verslag TECHNISCHE WISKUNDE “Het rangschikken van genen” (Gene Ranking) Cindy Boon Technische Universiteit Delft Begeleider Martin van Gijzen Overige commissieleden M. Keijzer C. Vuik C. Kraaijkamp Juli, 2014 Delft 2 SAMENVATTING E´en van de grootste uitdagingen in de geneeskunde is op het moment het vinden van onderliggende oorzaken voor genetische ziektes. Een mogelijk hulpmiddel in dit onderzoek is het rangschikken van genen op mate van belang. Dit rapport beschrijft een onderzoek naar dit rangschikken van genen. Een menselijk lichaam bevat 20.000-25.000 genen, die doordat ze in verbinding staan met elkaar, zijn te ordenen naar mate van belang. Het doel van het maken van deze rangschikking is het vinden van de meest bepalende genen, die een grote rol spelen bij bepaalde genetische ziektes. Het doel van het onderzoek is begrip krijgen van hoe genen zijn verbonden, en het verbeteren van het al bestaande GeneRank algoritme, een algoritme over het rangschikken van genen. Het GeneRank algoritme dat het fundament is van dit onderzoek, neemt twee componenten van data mee in de berekening van de rangschikking, zodat de rangschikking zo betrouwbaar mogelijk is. Het eerste component is de experimentele data, die een rangschikking van genen geeft met eventuele fouten door experimentele onnauwkeurigheid. Het tweede component is de biologische kennis over verbindingen, ofwel de verwachte verbindingen, tussen genen, waardoor de experimentele onnauwkeurigheid zo veel mogelijk wordt ingeperkt. De biologische data is opgebouwd uit de moleculaire functies, de biologische processen, en de cellulaire componenten van de genen. In de beschreven algoritmes is er even veel gewicht gelegd op de experimentele data als op de biologische data. Het rangschikken van genen heeft veel overeenkomsten met het rangschikken van pagina’s, zoals het PageRank algoritme van Google doet. Zowel genen als pagina’s zijn onderling verbonden, en zowel genen als pagina’s zijn te modelleren in een netwerk, en te rangschikken op mate van belang. Het grootste verschil tussen deze twee problemen is dat als een willekeurige pagina op het web met een andere willekeurige pagina verbonden is, dit andersom niet hoeft te gelden, terwijl wanneer een willekeurig gen met een ander willekeurig gen verbonden is, dit ook andersom geldt, ofwel het gen netwerk is symmetrisch. Door de symmetrie van het GeneRank probleem is er na omschrijvingen een snel convergerende methode voor symmetrische matrices toegepast, die een goede oplossing geeft. We hebben het GeneRank algoritme hiermee verbeterd. 4 1 Voorwoord In het rapport dat voor u ligt, leest u over het wiskundig rangschikken van genen. Het project dat dit rapport tot stand heeft gebracht, is mijn bachelorproject. Ik heb dit mogen doen in de sectie Numerieke Wiskunde aan de Technische Universiteit in Delft. Het project is uitgevoerd ter afsluiting van de bachelor Technische Wiskunde die ik heb mogen volgen in de drie collegejaren van 2011-2014. In ongeveer drie maanden heb ik geprobeerd om de opgedane kennis in het dik twee jaar studeren van wiskunde, en het leren onderzoeken, samen te brengen in een eindrapport. Het rapport is interessant voor iedereen die ge¨ınteresseerd is in het onderzoek naar het rangschikken van genen door het uitvoeren van geschikte algoritmes. Voor iedereen die het PageRank probleem van Google kent, is het rapport mogelijk interessant, omdat het GeneRank probleem veel overeenkomsten heeft met het PageRank probleem, en ook op enkele punten verschilt. Mijn begeleider Martin van Gijzen wil ik bedanken voor alle uren die hij in mijn ontwikkeling en de ontwikkeling van het rapport heeft gestoken. Zowel voor de vele interessante uren gedurende onze afspraken, als voor het nalezen van verschillende versies van het rapport. Ik kan met zekerheid zeggen dat in het rapport na iedere iteratie, na iedere versie die Martin nakeek, er een kleinere fout overbleef, zoals ook de algoritmes in het rapport als kenmerk hebben. Ook een woord van dank aan de commissieleden die dit rapport beoordelen: Meneer Vuik, Mevrouw Keijzer en Meneer Kraaijkamp, bedankt! Ik hoop dat u het rapport met plezier zult lezen, en dat u interessante kennis mag opdoen. Cindy Boon Delft, 25 juli 2014. 6 Inhoudsopgave 1 Voorwoord 6 2 Inleiding 10 3 De verbinding tussen genen 3.1 Het rangschikken van genen . . . . . . . . . 3.2 De verbinding tussen genen, deel 1 . . . . . 3.2.1 Ontologie en annotatie . . . . . . . . 3.2.2 Componenten binnen een annotatie 3.2.3 Van GO annotatie tot GO matrix . 3.3 De verbinding tussen genen, deel 2 . . . . . 3.3.1 Betekenis experimentele vector ex . 3.3.2 Gen microarray experimenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 13 13 14 15 16 16 16 4 De GeneRank matrix 4.1 Transitiematrix T1 . . . . . . . . . . . . . 4.1.1 Opbouw met connectiematrix C . 4.1.2 Van connectie- tot transitiematrix 4.2 Transitiematrix T2 . . . . . . . . . . . . . 4.3 Gehele transitiematrix T . . . . . . . . . . 4.3.1 Weergave in graaf- en matrixvorm 4.4 Dempingsfactor d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 18 19 20 20 21 21 5 Algoritmes om de GeneRank vector te berekenen 5.1 De stelselmethode . . . . . . . . . . . . . . . . . . . . . 5.1.1 Beschrijving methode . . . . . . . . . . . . . . . 5.1.2 Implementatie . . . . . . . . . . . . . . . . . . . 5.2 Eigenwaardeprobleem . . . . . . . . . . . . . . . . . . . 5.2.1 Markov matrix . . . . . . . . . . . . . . . . . . . 5.2.2 De stelling van Perron-Frobenius . . . . . . . . . 5.2.3 Eigenwaardes en stationaire rangschikkingsvector 5.3 De machtsmethode . . . . . . . . . . . . . . . . . . . . . 5.3.1 Beschrijving methode . . . . . . . . . . . . . . . 5.3.2 Implementatie . . . . . . . . . . . . . . . . . . . 5.4 De verschoven machtsmethode . . . . . . . . . . . . . . 5.4.1 Beschrijving methode . . . . . . . . . . . . . . . 5.4.2 Implementatie . . . . . . . . . . . . . . . . . . . 5.5 De methode van Jacobi . . . . . . . . . . . . . . . . . . . . . . . . r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 22 23 24 24 24 25 26 26 27 28 28 28 29 6 Het gebruik van symmetrie 6.1 Aanpassing systeem tot symmetrisch computatieprobleem . . . 6.2 De CG methode . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Voorbereidende kennis . . . . . . . . . . . . . . . . . . . 6.2.2 Beschrijving CG methode . . . . . . . . . . . . . . . . . 6.2.3 Implementatie . . . . . . . . . . . . . . . . . . . . . . . 6.3 De PCG methode toegepast op het GeneRank probleem . . . . 6.3.1 Beschrijving PCG toegepast op het GeneRank probleem 6.3.2 Implementatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 30 30 31 31 32 32 32 . . . . . . . 8 6.4 Begrenzing eigenwaardes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Numerieke experimenten 7.1 Dataset met recente data . . . . . . . . . . . . . . 7.2 Convergentie in de machtsmethode . . . . . . . . . 7.2.1 Het residu . . . . . . . . . . . . . . . . . . . 7.2.2 Implementatie van het residu . . . . . . . . 7.2.3 Convergentiefactor machtsmethode . . . . . 7.3 Convergentie in de verschoven machtsmethode . . 7.3.1 Het residu . . . . . . . . . . . . . . . . . . . 7.3.2 Implementatie van het residu . . . . . . . . 7.3.3 Resultaten . . . . . . . . . . . . . . . . . . 7.4 Convergentie in de methode van Jacobi . . . . . . 7.5 Convergentie in de PCG methode toegepast op het 7.5.1 Het residu . . . . . . . . . . . . . . . . . . . 7.5.2 Implementatie van het residu . . . . . . . . 7.5.3 Convergentiefactor PCG methode . . . . . 7.6 Vergelijken resultaten machts- en PCG methode . 7.6.1 Variatie dempingsfactor d . . . . . . . . . . 7.6.2 Tijdsduur en aantal iteraties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GeneRank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . probleem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 35 35 35 35 35 36 37 37 37 38 40 40 40 41 41 42 42 46 8 Conclusie 48 9 Discussie 49 10 Appendix 10.1 Methodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Stelselmethode . . . . . . . . . . . . . . . . . . . . . 10.1.2 Machtsmethode . . . . . . . . . . . . . . . . . . . . . 10.1.3 Verschoven machtsmethode . . . . . . . . . . . . . . 10.1.4 PCG methode toegepast op het GeneRank probleem 10.2 Gen Ontologie (GO) databank . . . . . . . . . . . . . . . . 10.3 Constructie matrix met meest recente data . . . . . . . . . 10.3.1 Inlezen . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 “Deel van”-relatie ⇒ “is een”-relatie . . . . . . . . . 10.3.3 Symmetrisch maken van de matrix . . . . . . . . . . 10.4 Inlezen willekeurige datasets van de GO website . . . . . . . 10.4.1 Constructie matrix uit gedownloade informatie . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 51 51 52 53 54 55 55 55 56 56 56 2 Inleiding Het menselijk lichaam bestaat uit een groot aantal organen. Deze organen zijn opgebouwd uit verschillende weefsels, die weer bestaan uit miljarden cellen. In iedere cel zit een kopie van erfelijkheidsmateriaal, in de vorm van chromosomen. En op de chromosomen zitten de genen. Er zijn 46 chromosomen, en 20.00025.000 genen in het menselijk lichaam. Het rangschikken van deze 20.000-25.000 genen op mate van belang, is een hulpmiddel in de analyse van gen expressie datasets in de moleculaire biologie. Biomedische onderzoekers probeerden al signalen die uit de gen microarray experimenten komen, te verbinden met onderliggende genetische factoren van een ziekte. De GeneRank methode gaat verder in op het mogelijk maken van een goede rangschikking van genen. Het idee achter de GeneRank methode is om netwerk data, ofwel biologische kennis, te gebruiken om een rangschikking van genen te geven in een microarray experiment. De rangschikking van genen is dan minder gevoelig voor variatie, veroorzaakt door experimentele bias, dat een onderzoek slechts gebaseerd op fout-gevoelige experimenten, wel is. De GeneRank methode is een nogal nieuwe wiskundig methode, dat in 2005 naar buiten kwam naar het idee van Morrison et al., zie [6]. In essentie is GeneRank een intu¨ıtieve aanpassing van de PageRank methode van Google, waarbij vele wiskundige eigenschappen zijn behouden. In dit rapport zal enkele keren de vergelijking worden getrokken met Google PageRank, ten behoeve van het verhelderen van het GeneRank principe. De eerste vergelijking volgt nu meteen. Net zoals pagina’s op het web, zijn genen weer te geven in een netwerk, met genen als knopen en verbindingen tussen de genen als paden. De eerste doelstelling van dit rapport is het verhelderen van hoe genen met elkaar in verbinding staan. Genen staan op verschillende manieren met elkaar in verbinding, bijvoorbeeld het gezamenlijk maken van bepaalde stoffen, prote¨ınes, om cellen aan te sturen. Een ander voorbeeld van een verbindende factor, is dezelfde functie hebben, of bepaalde componenten gemeenschappelijk hebben. De tweede doelstelling is het verbeteren van de GeneRank methode door het bekijken van verschillende methodes toegepast op het GeneRank probleem; het vinden van snel convergerende methodes. Er zal worden gekeken naar de afname van de fout per iteratie, en daarmee de convergentiesnelheid van de methodes. De laatste doelstelling is te kijken naar wat de voordelen zijn van de symmetrische connectiematrix, een eigenschap van de GeneRank methode. Deze eigenschap maakt dat we de geconjugeerde gradi¨enten methode kunnen toepassen. Ook zorgt deze eigenschap ervoor dat er gemakkelijk uitspraken kunnen worden gedaan over de ligging van de eigenwaardes. De onderzoeksvragen die achtereenvolgens zullen worden behandeld zijn: 1. Wat houdt de verbinding tussen genen in? 2. Welke effici¨ente en snelle methodes zijn er om de rangschikkingsvector voor het GeneRank probleem te vinden? 3. Zijn er voordelen voor het vinden van de rangschikkingsvector door de symmetrie van de connectiematrix? Het volgende hoofdstuk begint met het behandelen van de eerste deelvraag, over de verbinding tussen genen en de data die in dit rapport daarvoor zullen worden gebruikt. Vervolgens zal in hoofdstuk 3 worden uitgelegd hoe de transitiematrix, waarop het GeneRank algoritme is toegepast, en verscheidene methodes zullen worden toegepast, is opgebouwd. Dan, wanneer het duidelijk is hoe de matrix waarmee zal worden gewerkt, er uit ziet, kan in hoofdstuk 4 op de tweede deelvraag worden ingegaan. Er zullen enkele methodes worden uitgelegd. De methodes die worden behandeld zijn: de stelselmethode, ofwel een directe methode, de (verschoven) machtsmethode, en de methode van Jacobi. In hoofdstuk 5 wordt de derde deelvraag behandeld, over de symmetrie van de connectiematrix. Hier zal onder andere de laatste methode, de geconjugeerde gradi¨entenmethode met preconditionering, worden uitgelegd. Het laatste hoofdstuk, 10 hoofdstuk 6, bestaat uit de numerieke experimenten. De data zal worden beschreven, en de resultaten van de behandelde methodes zijn weergegeven, op het gebied van tijdsduur van het algoritme, het aantal iteraties, en convergentie, om na te gaan welke van de methode het meest effici¨ent is. Ten slotte, is er de conclusie, de discussie, waarin suggesties worden gegeven voor mogelijk vervolg onderzoek, de referenties, waarin de geraadpleegde literatuur is opgenomen, en de appendix, waarin de matlab codes zijn weergegeven die gebruikt zijn om dit rapport tot stand te brengen. 11 3 De verbinding tussen genen In dit hoofdstuk zal basis informatie worden gegeven over genen en netwerken, zodat het duidelijk is wat het doel is van het rangschikken van genen. Achtereenvolgens wordt er uitleg gegeven over wat genen zijn en doen, wordt de verbinding tussen genen toegelicht, en wordt de gen ontologie (GO) database ge¨ıntroduceerd. 3.1 Het rangschikken van genen Ons genenbestand bevat erfelijk materiaal opgeslagen in lange DNA strengen. De genen bestaan uit stukken DNA, zie figuur 1 verkregen uit [1]. Alle genen samen bepalen het functioneren van de cellen waaruit het organisme is opgebouwd. De genen vertellen door middel van een code aan elk van de cellen wat en wanneer iets te doen. Elke cel bevat exact dezelfde genen, maar lang niet alle genen zijn in alle cellen actief. Elk type cel heeft een eigen patroon van genexpressie. In de ene cel komen genen tot expressie die de cel tot een zenuwcel maken; in een spiercel zijn die genen stil en zijn weer hele andere genen actief. Welke genen wel, en welke genen niet tot expressie komen, wordt geregeld door een zeer complex systeem. Figuur 1: Schematische afbeelding van het DNA en de genen Genen zijn op verschillende manieren met elkaar verbonden. Er is een mate van belang van genen die te bepalen is door te kijken naar de verbindingen tussen de genen. Het doel is om de meest bepalende genen te vinden die een rol spelen bij bepaalde genetische ziektes. In de gerangschikte vector staat bovenaan het gen dat het “meest belangrijk” is, dus het meest in contact staat met andere genen, en onderaan het gen dat het “minst belangrijk” is, ofwel het minst in contact staat met andere genen. Vele bestaande methodes zijn empirisch, met een mogelijk grote bias, aangezien deze onderzoeken slechts op empirische experimenten zijn gebaseerd, en daarmee meer onderhevig aan variatie veroorzaakt door experimentele afwijkingen. Om een kleinere bias te verkrijgen, wordt er gemodelleerd waarbij gekeken wordt naar de verwachte verbindingen tussen genen. Er wordt gebruik gemaakt van grafentheorie, waarbij 12 er twee dominante componenten van informatie uiteenvallen bij het algoritme: de experimentele informatie van de DNA-microarray data, en de kennis over het onderliggende netwerk van genen; de biologie. Het GeneRank algoritme combineert deze twee componenten. De genen zijn weer te geven in een ongerichte graaf van een eindige verzameling knopen. Elk gen is een knoop. Elke verbinding tussen twee genen is een pad; bepaalde vooraf bekende informatie. In de volgende paragraaf zal nader worden ingegaan op de twee onderscheide componenten binnen de transitiematrix: 1. Deel 1: de kennis over de biologie van genen; de kans dat een gen met een ander gen in contact staat, bijvoorbeeld rekening houdend met functie of prote¨ıne constructie; 2. Deel 2: de informatie van de DNA-microarray data. 3.2 De verbinding tussen genen, deel 1 Het eerste deel van de transitiematrix is te vergelijken met de hyperlinks, de verbindingen tussen pagina’s, bij Google PageRank. De data die de verbinding tussen genen inhoudt, kan verschillend zijn en op verschillende plekken worden gevonden, zoals: • Rat Genoom Databank (RGD); • Biomedische ontologie¨en, van de volwassen hersenen van de muis tot zebravis anatomie en ontwikkeling, bijvoorbeeld te vinden in [2]; • Gen Ontologie (GO) annotatie: gemeenschappelijke factoren op het gebied van biologisch proces, cellulair component, en moleculaire functie. In dit rapport is het laatst genoemde, Gene Ontology (GO), te vinden in [10], beschouwd als databank van verbindingen tussen genen. GO interacties beschrijven op moleculair niveau of een paar van genen in verbinding staan met elkaar. 3.2.1 Ontologie en annotatie Een ontologie is een gecontroleerde woordenschat of -lijst, van goed gedefinieerde termen met gespecificeerde relaties tussen hen, en is in staat ge¨ınterpreteerd te worden door zowel mensen als computers. Annoteren is biologische informatie voorzien van een geschikte context. Specifiek voor DNA-annotatie wordt ontdekt genetisch materiaal bijvoorbeeld zowel gerelateerd aan de positie van het gen in het genoom, en aan de intronen en exonen, ofwel de stukjes DNA die zich bevinden in het gen, maar respectievelijk wel en niet worden gebruikt om prote¨ıne te coderen, met andere woorden de delen van het gen die respectievelijk wel en niet in het uiteindelijke mRNA terechtkomen. Als ook aan de regulerende sequenties, aan herhalingen, aan de naam en de genproducten, zoals RNA en prote¨ınes. De annotaties worden opgeslagen in databanken om annoteren eenvormig te maken. GO is een belangrijke ontologie binnen de bio-informatica als het gaat om het beschrijven van eigenschappen van de onderzochte genen in een cel. Biologen verliezen vaak veel tijd en moeite aan het zoeken naar beschikbare informatie over elk gebied van onderzoek. Er is ook een brede variatie aan terminologie door de jaren heen ontstaan, dat effectief zoeken moeilijk maakt voor zowel computers als wetenschappers. GO vergemakkelijkt dit en is dus een datastructuur door gezamenlijke inspanning, dat alle relevante entiteiten en hun onderlinge relaties en regels binnen dat domein bevat. Het vervult de vraag naar consistente beschrijvingen van gen producten in verschillende databases. Het doel ervan is om de weergave van de eigenschappen van genen 13 en de genproducten te standaardiseren, onafhankelijk van het soort of ras waaruit ze komen. Duidelijk wordt nog vermeld op de GO website dat GO niet een manier is om biologische databanken te unificeren. 3.2.2 Componenten binnen een annotatie Gen ontologie annotatie geeft een samenvatting van wat bekend is over een gen of gen product. De GO databank uit [10] bevat drie componenten van informatie. Het GO project heeft deze drie gestructureerde gecontroleerde ontologie¨en ontwikkeld, drie GO secties, die gen producten beschrijven. De ontologie¨en zijn in termen van: • de moleculaire functies van het gen (de elementaire activiteiten van een gen product op het moleculaire niveau, zoals binding, transportatie, als mutatie). Dit is anders dan biologische processen die meer dan ´e´en activiteit inhouden); • het biologisch proces waarin het gen is verwikkeld (operaties of verzamelingen van moleculaire gebeurtenissen met een gedefinieerd begin en einde, toebehorend aan het functioneren van ge¨ıntegreerde levende eenheden, zoals cellen, weefsels, organen en organismes, bijvoorbeeld cellulaire processen); • de locatie van het gen binnen de cel, ofwel het cellulaire component. Samenvattend: GO is een platform om genen en gen producten te beschrijven in termen van hun moleculaire functies, hun biologische processen, en hun subcellulaire localisaties of celullaire componenten. Binnen het GO project is de informatie over de genen soort-overschrijdend. Elke ontologie-term kan worden gerepresenteerd door een unieke ontologie specifieke identificatie, een GO-getal, ofwel een ontologie ID. De aangeleverde data binnen een ontologie, uit [15], ziet er per gen als volgt uit: [Term] id: GO:0000001 name: mitochondrion inheritance namespace: biological_process def: "The distribution of mitochondria, including the mitochondrial genome, into daughter cells after mitosis or meiosis, mediated by interactions between mitochondria and the cytoskeleton." [GOC:mcc, PMID:10873824, PMID:11389764] exact_synonym: "mitochondrial inheritance" [] is_a: GO:0048308 ! organelle inheritance is_a: GO:0048311 ! mitochondrion distribution De relatie “is a” beschrijft dat dit gen, nummer 0000001, verbonden is met gen nummer 0048308 en 0048311. Enkele componenten die buiten het bereik van de GO databank vallen: • Processen, functies of componenten die uniek zijn voor mutanten of ziektes; • prote¨ıne-prote¨ıne interactie; • omgeving, evolutie en expressie; 14 • anatomische of histologische kenmerken boven het niveau van cellulaire componenten, inclusief cel types. In figuur 2 is te zien hoe gen nummer 0065010, de ‘extracellular membrane-bounded organelle’, zich verhoudt tot voorvaderen en afstammelingenvan het gen. Figuur 2: Familie van het gen: ‘extracellular membrane-bounded organelle’. Een grafisch voorbeeld van het netwerk van gen nummer 0005840, ‘ribosome’, is te zien in figuur 3. Figuur 3: Netwerk van het gen: ‘ribosome’. 3.2.3 Van GO annotatie tot GO matrix De GO matrix is een gerichte acyclische graaf. Elke term heeft relaties met ´e´en of meerdere andere termen. Genen zijn verbonden wanneer ze een annotatie delen, gedefinieerd door de GO databank. GO definieert drie netwerken, ´e´en voor elk van de drie eerder genoemde GO secties: moleculaire functie, biologische proces en cellulaire component. In het GeneRank algoritme wordt een variant gebruikt van 15 de GO matrix, zoals in [6]. De acyclische gerichte graaf wordt aangepast. In de GO matrix staan 0’en, 1’en en 2’en. Daar waar een 0 staat, betekent het dat twee genen geen door GO benoemde verbinding hebben. Daar waar een 1 staat, zijn de drie door GO genoemde GO secties hetzelfde voor een paar van genen. Daar waar een 2 staat, is het ene gen gedeeltelijk gelijk aan het andere gen wat betreft de drie GO secties. Daar waar er 2’en staan in de GO matrix, worden bladknopen, ofwel knopen zonder kind, toegewezen als annotaties voor elk gen, zodat de connectiematrix slechts 0’en en 1’en bevat. Verder wordt ervoor gezorgd dat de matrix symmetrisch is, door te zorgen dat daar waar een 1 staat in de aangepast GO matrix op plek cij , ook een 1 staat in de getransponeerde aangepaste GO matrix. We noemen de symmetrische aangepaste GO matrix: connectiematrix C. 3.3 De verbinding tussen genen, deel 2 Het tweede deel van de transitiematrix is opgebouwd uit experimentele empirische resultaten. Om precies te zijn: gen microarray expressie data. Gebruik makend van gen microarrays, is het mogelijk het gen expressie profiel uit meer dan 30.000 genen t verkrijgen. Nu eerst informatie over wat de experimentele vector inhoudt, daarna informatie over hoe de experimentele vector gevonden wordt. 3.3.1 Betekenis experimentele vector ex De experimentele vector ex = (exi ), met i = 1, 2, · · · , n, bevat de absolute waarde van de expressieverandering van alle genen i, met i = 1, 2, · · · , n. De expressieverandering is een maat van “relevantie” van dat gen verkregen door microarray experimenten. De experimentele vector is de gen expressie karakterisering. Deze vector is te vergelijken met de gepersonaliseerde PageRank vector, waar door teleportatie in het random walk proces wordt gestuurd in de richting van de geliefde pagina’s van een gebruiker. Zoals in artikel [6], pag. 2, beschreven is, heeft het PageRank algoritme een random walk interpretatie waar de rangen corresponderen met de invariante maat van een teleporterende random walk op het web. Dit is equivalent met dat de rang van een webpagina proportioneel is met de bestede tijd op een webpagina al surfend op het web. Nu de vergelijking naar de GeneRank methode. In de GeneRank methode wordt ook gestuurd, maar dan volgens expressieniveau. In het veld van moleculaire biologie, is genexpressiekarakterisering de maat van de activiteit, de expressie van duizenden genen op hetzelfde moment, om een globaal beeld te cree¨eren van de celullaire functie. Vele experimenten van deze soort meten en geheel genoom tegelijkertijd, ofwel, ieder gen aanwezig in een bepaalde cel. Van de paar meest significante genen wordt verwacht dat ze worden ge¨ıdentificeerd door de experimentele data. 3.3.2 Gen microarray experimenten De experimentele vector wordt gevonden door experimenten te doen met gen microarray expressies. Een gen microarray, zoals beschreven in [4] bestaat uit een groot aantal bekende DNA controle rijen die zich bevinden op verschillende locaties op een dia. De DNA in een cel verandert niet, maar zekere afgeleides van de DNA, de mRNA en de tRNA, worden geproduceerd als stimulatie plaatsvindt. De messenger RNA (mRNA), ofwel ‘boodschapper’ RNA, speelt een centrale rol in het tot expressie brengen van genetische informatie. mRNA is een vorm van RNA, welke als ‘boodschapper’ twee processen met elkaar verbindt. Een impressie van dit proces waarin mRNA een rol speelt is: begonnen wordt met DNA, dan is er transcriptie, waarbij een stuk DNA, een gen, overgeschreven wordt tot mRNA, en dan de translatie, 16 waarbij het mRNA wordt vertaald naar een keten van aminozuren, een prote¨ıne, ofwel een eiwit. Ieder gen is een recept hoe een bepaald prote¨ıne te maken. De prote¨ınes geven aan wat de cel behoort te doen, en bepalen hiermee hoe het organisme vorm wordt gegeven. Het proces ziet er globaal gezien uit als in figuur 4 uit [5]. Figuur 4: Gen expressie Samenvattend, is genexpressie het proces waarbij informatie in een gen ‘tot expressie komt’, doordat het gen afgelezen wordt en RNA en prote¨ınes worden gemaakt. Deze experimenten leveren geen data op het absolute niveau van een specifiek gen, ofwel de werkelijke concentratie mRNA, maar zijn te gebruiken om het expressieniveau tussen condities en genen te vergelijken. Microarrays kunnen gelijktijdig toezien op de expressieniveaus van duizenden genen. Het principe achter het aangeven van expressieniveau, zoals beschreven in [3] is dat de hoeveelheid van een bepaalde stof, fluorescentie, die wordt gemeten op iedere rij-specifieke locatie direct proportioneel is met de hoeveelheid mRNA aanwezig in de geanalyseerde steekproef. Door deze metingen bevat de experimentele vector die wordt gebruikt in de GeneRank methode de meest actieve, belangrijke genen bovenaan, en de minst actieve, belangrijke genen, onderaan. Meer hierover staat geschreven in [3]. 17 4 De GeneRank matrix In dit hoofdstuk zal de matrix waarmee in de hierna volgende methodes zal worden gewerkt, opgebouwd, en wordt er uitleg gegeven over de dominante eigenwaarde en eigenvector. De matrix waarop algoritmes zullen worden toegepast, is een transitiematrix. Een matrix die kans bevat dat een gen met een ander gen verbonden is. Zoals toegelicht in het vorige hoofdstuk, bevat de transitiematrix, die in dit rapport zal worden gebruikt, twee soorten data, die worden gerepresenteerd door twee transitiematrices T1 en T2 . 1. Verbindingsmatrix T1 ; bevat het logisch verwachte verband tussen genen, in ons geval de annotaties in de GO matrix. 2. Teleportatiematrix T2 ; bevat het verband tussen genen met betrekking tot de experimentele data. 4.1 Transitiematrix T1 De matrix T1 die nu zal worden ge¨ıntroduceerd modelleert een netwerk met verbindingen tussen genen. Deze verbindingen kunnen worden weergegeven door een graaf. In de uitleg die volgt wordt gewerkt met een voorbeeldgraaf en een bijbehorende voorbeeldconnectie- en transitiematrix. 4.1.1 Opbouw met connectiematrix C De transitiematrix wordt opgebouwd met kennis van de connectiematrix C. C is een symmetrische matrix met een 1 waar een gen verbonden is met een ander gen door GO-annotatie, en een 0 waar er geen verbinding is. Een voorbeeld van een connectiematirx met 5 genen is: C= 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 In de bijbehorende voorbeeldgraaf in figuur 5 staan de pijlen voor een link, ofwel het getal 1 in de matrix. Merk op dat de graaf ongericht is, en de matrix daarmee symmetrisch. Dit is het geval, aangezien het geldt voor i 6= j, dat wanneer gen i met gen j in verbinding staat, het ook geldt dat gen j met gen i in verbinding staat. Dit in tegenstelling tot hoe de Google matrix is opgebouwd. Daar namelijk, wanneer pagina i naar pagina j verwijst door middel van een hyperlink, ofwel er is een gerichte verbinding van pagina i naar pagina j, dan hoeft pagina j niet naar pagina i te verwijzen. 18 Figuur 5: Graaf bij connectiematrix C 4.1.2 Van connectie- tot transitiematrix Van de connectiematrix C kan een transitiematix T1 worden gemaakt, die nodig is voor de methodes die zullen worden gebruikt om de rangschikkingsvector te vinden. De stap van connectiematrix C → transitiematrix T1 gaat als volgt: de transitiematrix T1 is gedefinieerd door T1 = CD−1 , met C = C T en diagonaalmatrix D gedefinieerd door: D = diag(d1 , . . . , dn ), met di = deg(i) de som van de getallen in rij i; de graad. In dit geval zijn het enen die worden opgeteld. De zojuist geconstrueerde transitiematrix T1 bevat de volgende informatie: laat pij (t) de kans aanduiden dat de keten in toestand Sj is op tijd t, gegeven dat het in toestand Si was op tijd t − 1. Ofwel, pij (t) = P (X(t) = Sj |X(t − 1) = Si ), met pij (t) is de transitiekans. De transitiematrix T1 is dan T1 (t) = [pij (t)], een n × n matrix, met n het aantal toestanden, en elke kolom van T1 (t) telt op tot 1. Het laatste maakt dat T1 een kolom-stochastische matrix is. De matrix representatie is nu als volgt: • Laat n = 5 het totaal aantal genen; • Laat k de uitgaande verbindingen van gen j met j = 1, . . . , 5; • Laat T1 de matrix zijn met elementen: T1ij = 1 k als gen i in contact staat met gen j; 0 anders. 19 De transitiematrix T1 behorend bij de graaf in figuur 5, en daarmee behorend bij de matrix C, is: T1 = C ∗ D−1 4.2 = 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 ∗ 4 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 3 0 0 0 0 0 2 −1 = 0 1 2 1 1 3 1 4 0 0 1 3 1 4 0 0 0 1 4 1 2 0 0 1 4 0 0 1 3 1 2 0 0 1 2 0 Transitiematrix T2 De transitiematrix T2 is opgebouwd uit de experimentele vector ex, en ziet er als volgt uit: T2 = met vectoren van lengte n, ofwel: ex T2 = ∗ eT = ||ex||1 ex1 ||ex||1 ex1 ||ex||1 ex2 ||ex||1 ··· ex1 ||ex||1 ex2 ||ex||1 ··· ex2 ||ex||1 .. . .. . .. . exn ||ex||1 exn ||ex||1 ··· ex T ||ex||1 ∗e , .. . exn ||ex||1 Omdat de transitiematrices verbindingen tussen genen onderling representeren, zouden we verwachten dat er slechts 0’en op de diagonaal staan. Op de diagonaal in T2 staan echter geen 0’en. Wanneer we kijken naar een matrix die in dit werk wordt gebruikt als data, zien we dat deze matrix C 4047 genen representeert. Op de diagonaal van T2 staat daarom een nogal klein getal, namelijk 1/4047 = 0.00024710. 4.3 Gehele transitiematrix T De twee zo juist verkregen transitiematrices opgeteld, geeft de transitiematrix T waarmee zal worden gewerkt in het volgende hoofdstuk. De graaf bij transitiematrix T is nu een graaf waarbij alle knopen met elkaar zijn verbonden, zoals te zien in de graaf in figuur 6. 20 Figuur 6: Schematische afbeelding dna 4.3.1 Weergave in graaf- en matrixvorm Om T1 en T2 op te kunnen tellen tot T wordt de scalar 0 < d < 1 ge¨ıntroduceerd die zorgt dat het geheel convex blijft. Een voorbeeld van een gehele transitiematrix T met in totaal 5 genen: 0 0 1 2 T = dT1 + (1 − d)T2 = d 1 3 1 6 0 1 2 1 3 0 1 6 1 2 1 6 0 0 1 2 0 0 1 3 1 3 1 6 1 6 1 3 1 3 + (1 − d) 1 6 0 ex1 ||ex||1 ex1 ||ex||1 ex2 ||ex||1 ··· ex1 ||ex||1 ex2 ||ex||1 ··· ex2 ||ex||1 .. . .. . .. . exn ||ex||1 exn ||ex||1 ··· .. . exn ||ex||1 Hoe dichter d bij 0 ligt, des te meer benadrukt het model de experimentele data. Hoe dichter d bij 1 ligt, des te meer benadrukt het model de netwerk data van de GO databank. 4.4 Dempingsfactor d De keuze van de dempingsfactor d be¨ınvloed de prestatie van gen rangschikking. In artikel[6], pag. 11, wordt na berekeningen op een waarde van d = 0.5 uitgekomen, anders dan bij de PageRank methode, waar deze waarde rond de d = 0.85 ligt. De optimale keuze van d is een interessant onderwerp en verdient nader aandacht te krijgen. 21 5 Algoritmes om de GeneRank vector te berekenen In dit hoofdstuk over methodes worden verschillende algoritmes bekeken om een rangschikkingsvector te berekenen. Er worden achtereenvolgens twee soorten methodes bekeken: • een directe methode; • iteratieve methodes. De directe methode is de stelselmethode, de iteratieve methodes zijn: de machtsmethode en de methode van Jacobi. Morrison et al. gebruikten in [6] een directe methode om de GeneRank vector te verkrijgen, een methode die erg ineffici¨ent kan zijn wanneer het probleem heel groot. Voor grote ijle systemen is Gaussische eliminatie en acherwaartse substitutie niet geschikt. Grote ijle systemen komen vaak op als parti¨ele differentiaal vergelijkingen of optimalisatieproblemen worden opgelost. Wel geschikt, is een benaderde oplossing met behulp van iteratieve methodes. Een iteratieve methode is een wiskunde procedure die een rij van verbeterde benaderingsoplossingen genereert voor een klasse van problemen. Op de directe methode na, zullen er dus iteratieve methodes worden besproken. Om een rangschikkingsvector te verkrijgen, moet de methode convergeren. Wanneer er een oplossing van een systeem van vergelijkingen wordt gezocht, dan gebruikt de iteratieve methode een beginschatting om een succesvolle benadering voor de oplossing te genereren. Een iteratieve methode heet convergent als de corresponderende rij voor een gegeven beginbenadering convergeert. Iteratieve methodes zijn vaak de enige keuze voor niet-lineaire vergelijkingen. Echter, iteratieve methodes zijn vaak nuttig om lineaire problemen op te lossen die een groot aantal variabelen bevatten, waar directe methodes erg duur zouden kunnen zijn, soms zelfs onmogelijk, ook met de best beschikbare berekenkracht. Eerst zal de directe methode worden behandeld, vervolgens zal er algemene informatie volgen over een eigenwaardeprobleem, dan wordt met (verschoven) machtsmethode behandeld, en als laatste de methode van Jacobi, die een lineair stelsel oplost. De optimale verschuiving van de verschoven machtsmethode zal worden berekend, en er zal worden geconcludeerd dat de machtsmethode en de methode van Jacobi hetzelfde zijn. 5.1 De stelselmethode 5.1.1 Beschrijving methode Een directe methodes, in dit geval de stelselmethode, probeert het gegeven probleem door een eindige rij van operaties op te lossen. Wanneer er geen afrondfouten zijn, dan levert een directe methode een exacte oplossing, zoals wanneer het een lineair systeem van vergelijkingen Ax = b oplost met behulp van Gaussische eliminatie. Een directe methode geeft een exacte oplossing, maar is slechts toe te passen op voldoende kleine problemen. De methode kan erg veel geheugenruimte gebruiken, zoals het geval is bij het GeneRank probleem. Voor grote n, kost de stelselmethode veel tijd. Het oplossen van een stelsel met n vergelijkingen en n onbekenden kost veel geheugen. We beginnen met het systeem T r = r met T = dT1 + (1 − d)ex ∗ eT . 22 Enkele omschrijvingen van het systeem geeft: Tr = r [dT1 + (1 − d)ex ∗ eT ]r = r dT1 r + (1 − d)T ex ∗ eT r = r dT1 r + (1 − d)ex = r (I − dT1 )r = (1 − d)ex, waarbij geldt dat eT r = 1, aangezien r een kansvector is. De vergelijking : (I − dT1 )r = (1 − d)ex komt overeen met het systeem: (I − dCD−1 )r = (1 − d)ex, (1) met D de matrix met de som van de rijen van C, met D een diagonaalmatrix, die informatie bevat over de graad van een knoop, ofwel het aantal paden dat grenst aan de knoop. Dan volgt dat de rangschikkingsvector r met A = (I − dCD−1 ) en b = (1 − d)ex is: r = A−1 b. 5.1.2 Implementatie De beschreven stelselmethode komt uit artikel[6], pag. 13. In het volgende algoritme geldt dat ex is de experimentele data, onder andere onderdeel van de beginvector, degrees is de som van de rijen van matrix C, ind is een indicator, D is hier D−1 , ofwel de som van de rijen van C op de diagonaal, en r is de rangschikkingsvector. De invoer voor het algoritme: • de matrix C die het netwerk van genen representeert; • de experimentele vector ex, ofwel microarray data, ofwel de mate van expressieverandering per gen in een vector; • de parameter d ∈ [0, 1], die bepaalt hoeveel nadruk er op de experimentele data ligt en hoe veel op de transitiematrix. De uitvoer: rangschikkingsvector r. Het algoritme is beschreven in algoritme 1. 23 Algorithm 1 Stelsel algoritme 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: procedure ex = abs(ex) norm ex = ex/max(ex) c = sparse(C) degrees = sum(C) ind = find(degrees == 0) degrees(ind) = 1 D1 = sparse(diag(1./degrees)) A = eye(size(c)) − d ∗ (c0 ∗ D1) b = (1 − d) ∗ norm ex r = A\b 5.2 Eigenwaardeprobleem In de volgende paragraaf wordt de machtsmethode behandeld, een methode die een eigenwaardeprobleem oplost. Een eigenwaardeprobleem is een mogelijkheid waarop het GeneRank probleem te beschrijven is. Deze paragraaf zal informatie verschaffen over de eigenschappen van de matrix T , die nodig zijn om het eigenwaardeprobleem op te lossen, de bijbehorende eigenwaardes, en de unieke stationaire eigenvector r. De stelling van Perron-Frobenius speelt hierbij een grote rol. 5.2.1 Markov matrix De transitie matrix T van genen heeft alle eigenschappen van een Markov matrix, een eigenschap die zo meteen van pas komt. Een Markov matrix is een stochastische matrix met de eigenschap dat de matrix geheugenloos is. Een stochastische matrix is een vierkante matrix T met de eigenschappen: 1. ti,j ≥ 0, voor alle i en j; PN 2. i=1 ti,j = 1, voor alle j. Ofwel, alle elementen van T zijn niet-negatief en alle kolomsommen zijn kansvectoren. Een Markov proces is een stochastisch proces met een eindige of aftelbare toestandsruimte die voldoet aan de Markov eigenschap. Een collectie random variabelen X(t)t∈T met toestandsruimte S = S1 , S2 , . . . voldoet aan de Markov eigenschap als, voor alle integers m en t0 < t1 < · · · < tm < t, geldt: P (X(t) = Sj |X(tm ) = Sim , . . . , X(t0 ) = Si0 ) = P (X(t) = Sj |X(tm ) = Sim ). Ofwel, een Markov keten is geheugenloos in de zin van dat de toestand van de keten in de volgende tijdsperiode alleen afhangt van de huidige tijdsperiode, en niet van de afgelopen toestanden van de keten. We zijn ge¨ınteresseerd in de discrete-tijd Markov keten met eindige toestandsruimte. Een stochastisch proces Xn , n ≤ 0 met toestandsruimte S heet een discrete-tijd Markov keten (DTMC) als voor alle i en j in S geldt: P (Xn+1 = j|Xn = i, Xn−1 , . . . , X0 ) = P (Xn+1 = j|Xn = i). In woorden: Gegeven het heden Xn en het verleden X0 , . . . , Xn−1 van het proces hangt de toekomst Xn+1 alleen af van het heden en niet van het verleden. De conditionele kansen P (Xn+1 = j|Xn = i) heten 1-staps overgangskansen. 5.2.2 De stelling van Perron-Frobenius Om de stelling van Perron-Frobenius te kunnen defini¨eren, geven we enkele definities. De re¨ele transitiematrix T is niet-negatief als alle elementen van T niet-negatief zijn. Een niet-negatieve vierkante matrix 24 T heet primitief als er een k bestaat, zodat alle elementen van T k positief zijn. Er geldt dat als T primitief is, dat alle andere eigenwaardes van T voldoen aan: |λ| < λmax . T heet irreducibel als ∀ i, j er een k = k(i, j) bestaat, zodat (T k )ij > 0. Ofwel T irreducibel als T = (tij ) een n × n positieve matrix: tij > 0 voor 1 ≤ i, j ≤ n. In woorden, de matrix T is irreducibel als elk gen met elk ander gen in verbinding staat, ofwel het is mogelijk van elke willekeurige knoop naar een willekeurige ander knoop te gaan. De stelling van Perron-Frobenius, zoals beschreven in [19] heeft als aanname dat T irreducibel is. De stelling geeft onder andere de volgende drie eigenschappen: • T heeft een positieve re¨ele eigenwaarde λmax zodat alle andere eigenwaardes van T voldoen aan: |λ| ≤ λmax , dus de spectraal radius ρ(T ) is gelijk aan λmax ; • λmax heeft algebra¨ısche en geometrische multipliciteit 1, en heeft een eigenvector r = (r1 , r2 , . . . , rn ) van T , zodat alle elementen van r positief zijn: T r = λr, ri > 0 voor 1 ≤ i ≤ n. De bij r behorende eigenwaarde is λmax ; • Elke niet-negatieve eigenvector verschillend van r is een veelvoud van r. Het geldt dat T irreducibel is, ofwel ieder gen dat gerepresenteerd wordt in T is verbonden met elk willekeurig ander gen in T . Dit geldt wegens de constructie van T , zoals in het vorige hoofdstuk. Nu, wegens T irreducibel, mogen we de stelling van Perron-Frobenius toepassen, en gelden de zojuist opgesomde punten voor de transitiematrix T van het GeneRank probleem. 5.2.3 Eigenwaardes en stationaire rangschikkingsvector r Stelling: Voor transitiematrix T is eigenwaarde 1 de grootste eigenwaarde, en deze is uniek. Bewijs: We bewijzen achtereenvolgens de existentie en uniciteit van de grootste eigenwaarde 1. Existentie: Wegens T kolom-stochastisch, geldt dat er een eigenwaarde 1 bestaat, ofwel het geldt dat matrix T met P T = 1 met i = 1, · · · , N , voldoet aan T r = r. Ook zegt de stelling dat er geen eigenwaarde |λ| > 1 j i,j is. De reden dat er geen |λ| > 1 is, is dat de machten van T k zouden groeien wanneer |λ| > 1, maar P kenmerk van een Markov matrix is dat iedere T k weer een Markov matrix is, met j Ti,j = 1, dus volgt dat |λ| ≤ 1. Hieruit kunnen we concluderen dat 1 een eigenwaarde, en dat 1 is de grootste eigenwaarde van T . Eenduidigheid: De Perron-Frobenius stelling verzekert dat T primitief is, ofwel dat als λmax = 1, dat deze dan uniek is. Doordat matrix T slechts positieve elementen bevat, geldt wegens Perron-Frobenius dat er een stationaire kansvector bestaat met eigenwaarde λ = 1. Deze stationaire kansvector is de corresponderende strikt positieve eigenvector, de rangschikkingsvector. Het i’de element in de rangschikkingsvector, r(k) , is de kans dat de keten op tijdstip k in toestand Si is, dat is, (k) ri := P (X(k) = Si ), Pn met r = (r1 , r2 , . . . , rn )T de kansverdelingsvector, waarvan de elementen optellen tot 1, ofwel, i=1 ri = 1. Het i’de element van de unieke stationaire verdeling r is de proportie tijd dat de keten spendeert in 25 toestand Si op de lange termijn. Het Markov proces zal convergeren naar een stationaire vector r. Wanneer de transitiekansen niet meer vari¨eren in de tijd, dan is de Markov keten stationair. Het systeem dat wordt opgelost om deze stationaire rangschikkingsvector te verkrijgen is Tr=r, zodat: rk+1 = T rk . Verder geldt dat de op ´e´en na grootste eigenwaarde λ2 gelijk is aan de dempingsfactor d. Dit zal worden bewezen in het hoofdstuk over symmetrie. 5.3 De machtsmethode 5.3.1 Beschrijving methode De machtsmethode zoals beschreven in [7] begint met een beginschatting r0 en vormt de volgende termen r1 = T r0 , r2 = T r1 en zo verder, zodat in het algemeen rk+1 = T rk . Iedere stap is een matrix-vector multiplicatie, en na k stappen geeft de methode: rk = T k r0 . Veronderstel nu dat T een verzameling van n lineair onafhankelijke eigenvectoren {x1 , x2 , . . . , xn } heeft, waarvoor geldt: T xi = λi xi , i = 1, . . . , n en waarbij λ1 correspondeert met de grootste eigenwaarde, in ons geval λ1 = 1, λ2 met de op ´e´en na grootste eigenwaarde, enzovoorts, ofwel: 1 = |λ1 | > |λ2 | ≥ |λ3 | ≥ · · · ≥ |λn | met de grootste eigenwaarde, λ1 = 1, uniek. Deze eigenwaarde heeft algebra¨ısche multipliciteit gelijk aan 1. De vereiste beginvector r0 ziet er als volgt uit: r0 = c1 x1 + c2 x2 + · · · + cn xn met ||r0 ||1 = 1. Itereren van r0 met matrix T geeft dan: T k r0 = c1 T k x1 + c2 T k x2 + · · · + cn T k xn = c1 λk1 x1 + c2 λk2 x2 + · · · + cn λkn xn = c1 x1 + c2 λk2 x2 + · · · + cn λkn xn = rk Dan zo lang als de veronderstelling r0 een component van de eigenvector x1 bevat, zodat c1 6= 0, en aan de voorwaarde is voldaan dat de matrix T diagonaliseerbaar is en daarmee de eigenvectoren xi een basis vormen voor Rn , zal een component geleidelijk aan dominant worden. Er geldt dan dat λrkk = rk met de 1 grootste eigenwaarde λmax = λ1 = λk1 = 1, is: rk = c1 x1 + c2 λ2 λ1 k x2 + · · · + cn = c1 λk1 x1 + c2 λk2 x2 + · · · + cn λkn xn 26 λn λ1 k xn Dan vinden we na k iteraties: |λi | = |λi | < 1 → lim |λi |k = 0 → rk ≈ c1 λk1 x1 = c1 x1 k→∞ |λ1 | Ofwel met andere notatie: rk+1 = ||TTrrkk||1 . Wat gebeurt, is dat met iedere iteratie de vector rk wordt vermenigvuldigd met de matrix T , en vervolgens genormaliseerd. 5.3.2 Implementatie Het implementeren in matlab wordt op twee verschillende manieren gedaan: • De matrix wordt voorafgaand aan het itereren gevormd; • De matrix wordt impliciet gevormd. De beginvector waarmee in beide gevallen wordt gerekend is: r0 = ex ||ex||1 . De eerste manier, waarbij de matrix voorafgaan aan het itereren wordt gevormd, pakt als transitiematrix T: T = d ∗ T1 + (1 − d) ∗ T2 = d ∗ T1 + (1 − d) ∗ ex ∗ ones(1, n) ||ex||1 met T1 en T2 de twee onderdelen van de transitiematrix T . Het algoritme is beschreven in algoritme 2, met Algorithm 2 Machtsmethode procedure loop: rk+1 = T ∗ rk normr = norm(rk+1 , 1) rk+1 = rk+1 /normr 6: end 1: 2: 3: 4: 5: De tweede manier, waarbij de matrix T impliciet wordt gevormd, vormt r op de volgende manier: r = d ∗ (C ∗ (D\r0)) + (1 − d) ∗ norm ex Het itereren gaat zoals in algoritme 3, met r0 = ex ||ex||1 . 27 Algorithm 3 Machtsmethode 1: 2: 3: 4: 5: 6: procedure loop: rk+1 = d ∗ (C ∗ (D\rk )) + (1 − d) ∗ norm ex normr = norm(rk+1 , 1) rk+1 = rk+1 /normr end 5.4 De verschoven machtsmethode 5.4.1 Beschrijving methode De verschoven machtsmethode wordt beschreven, omdat het mogelijk een snellere convergentie van het residu heeft, ofwel een snellere manier om de rangschikkingsvector te verkrijgen. Laat (λ, x) een eigenpaar van de matrix T , en σ een constante, dan is (λ − σ, x) een eigenpaar van de matrix (A − σI). Het getal σ heet een verschuiving, aangezien het een eigenwaarde λ van T verschuift 2| naar λ − σ van B = A − σI. Kies µ > 0, met µ een eigenwaarde van B. Nu zoeken we de σ zodat |µ |µ1 | minimaal, ofwel dat minimaal is: |(λk −σ|)2 (|λk −σ)1 | . Nu het berekenen van de optimale verschuiving σ. Bekend is dat λmax = 1. Met het commando ’eig’ in matlab, wordt gevonden dat in de connectiematrix C van het GeneRank probleem geldt dat −d ≤ λi ≤ 0.5, voor i = 2, 3, . . . , n, en wegens Perron-Frobenius hebben we de eigenschap dat T primitief is, ofwel dat: 1 = |λ1 | > |λ2 | ≥ |λ3 | ≥ · · · ≥ |λn |. Dat impliceert met d = λ2 en −d = λmin : |λmin − σ| = |λ2 − σ| ⇒ | − d − σ| = |d − σ| d+σ =d−σ ⇒ σ = 0. Ofwel de optimale verschuiving is: σ = 0 voor d = 0.5. In het algemeen geldt: A − σI convergeert met een optimale ratio, wanneer σ = in [18]. 5.4.2 λ2 +λn , 2 zoals geschreven Implementatie Een kleine aanpassing aan de machtsmethode zonder verschuiving geeft algoritme 4, met r0 = 28 ex ||ex||1 . Algorithm 4 Verschoven machtsmethode procedure T = d ∗ (C ∗ (inv(D))) + (1 − d) ∗ (norm ex ∗ ones(1, n)) eps = 1e − 12 loop rk+1 = T ∗ rk − s ∗ rk normr = norm(rk+1 , 1) 7: rk+1 = rk+1 /normr 8: if ||errk || < eps then break 9: end 1: 2: 3: 4: 5: 6: Wanneer we een verschuiving σ introduceren, convergeert de fout helaas niet sneller. De optimale verschuiving is wanneer σ = 0. 5.5 De methode van Jacobi Zoals eerder gevonden in vergelijking 1 kon het eigenwaardeprobleem T r = r herschreven worden tot: (I − dCD−1 )r = (1 − d)ex, (2) een eigenwaardeprobleem. Dit is een lineaire vergelijking die met iteratieve methodes kan worden opgelost. Een iteratieve methode om Ar = b op te lossen is de methode van Jacobi. Er zal worden geconcludeerd dat deze methode voor het GeneRank probleem hetzelfde systeem oplevert als de zojuist behandelde machtsmethode. Schrijf A = L + I + U , met de matrix L de elementen van A onder diagonaal, matrix I de diagonaalelementen van A, en de matrix U de elementen van A boven de diagonaal. Dan geldt dat: (L + I + U )r = b. ⇒ r = b − (L + U )r De methode van Jacobi werkt met vaste punt iteratie, zoals beschreven in [18]. Het uitvoeren hiervan op het systeem geeft: ri+1 = (b − (L + U )ri ) Verder toepassen van de methode van Jacobi op vergelijking 2 geeft: L + U = −dCD−1 en b = (1 − d)ex. Hieruit volgt:: ri+1 = (1 − d)ex + dCD−1 ri , overeenkomstig met de machtsmethode. Nu kunnen we concluderen dat alle resultaten die worden verkregen door toepassing van de machtsmethode gelijk zijn aan de resultaten die worden verkregen door toepassing van de methode van Jacobi. 29 6 Het gebruik van symmetrie De symmetrie van de connectiematrix C is een voordelige eigenschap op verschillende gebieden. In het komende hoofdstuk zullen we zien dat wegens symmetrie de geconjugeerde gradi¨enten methode kan worden toegepast, zodat relatief erg snel een rangschikkingsvector te vinden is. Er zal eerst worden gekeken naar hoe de symmetrie van de connectiematrix C zorgt voor een mogelijke omschrijving van A = (I−dCD−1 ) tot een symmetrisch systeem, vervolgens wordt de CG methode uitgelegd, en als laatste wordt er gekeken naar de PCG methode toegepast op het GeneRank probleem, ofwel met preconditionering toegepast op het GeneRank probleem. Een ander voordelig gevolg van de symmetrie van C is dat er genoeg informatie aanwezig is om gemakkelijk een begrenzing voor de eigenwaardes van de matrix T van het systeem te vinden. Er zal een bewering worden gedaan over deze eigenwaardes, en die zal worden bewezen. 6.1 Aanpassing systeem tot symmetrisch computatieprobleem Terwijl de connectiematrix C symmetrisch is, beschrijven de meeste bekende algoritmes de berekening van het GeneRank probleem met methodes voor niet-noodzakelijk symmetrische matrices. Er wordt vaak een niet-symmetrisch lineair systeem opgelost, of een niet-symmetrisch eigenwaardeprobleem. Met andere woorden, geen van de beschreven algoritmes gebruikt de structuur van C effici¨ent. Nu is de vraag: kunnen we het GeneRank probleem transformeren tot een symmetrisch matrix computatie probleem, zodat meer effici¨ente numerieke algoritmes kunnen worden toegepast? In dit hoofdstuk, wordt laten zien dat het niet-symmetrische lineaire systeem A = (I−dCD−1 ) kan worden herschreven tot symmetrisch positief definiet (SPD) lineair systeem, en wordt het systeem opgelost, gebruik makend van een geconjugeerde gradi¨enten methode met preconditionering (PCG) toegepast op het GeneRank algoritme. Dit algoritme is gebaseerd op wat geschreven is in [17]. Het geldt dat T r = r om kan worden geschreven, zoals in vergelijking 1, ofwel tot: (I − dCD−1 )r = (1 − d)ex Het symmetrisch maken van A = (I − dCD−1 ) kan als volgt: (D − dC)D−1 r = (1 − d)ex. Dan geldt, met b r = D−1 r, dat: (D − dC)b r = (1 − d)ex. b = (D − dC) is symmetrisch. Nu kunnen methodes voor symmetrische matrices worden De matrix A toegepast op het GeneRank probleem, om de vector b r = D−1 r, en vervolgens de rangschikkingsvector r, te berekenen. 6.2 De CG methode 6.2.1 Voorbereidende kennis De geconjugeerde gradi¨entenmethode (CG) is een algoritme voor de numerieke oplossing van een bepaald systeem van lineaire vergelijkingen met een symmetrisch en positiefdefiniete matrix, voorgesteld door Hestenes en Stiefel in 1952. 30 b = (D − dC) een positief definiete matrix is. Om de CG methode toe te mogen passen, is het nodig dat A b = (D − dC) is een symmetrische positief definiete (SPD) matrix. Stelling: A b symmetrisch is. Te bewijzen: A b is Bewijs: In de vorige paragraaf is door omschrijvingen verkregen dat A b is positief definiet als rT Ar b > 0 ∀ vectoren 0 6= r ∈ Rn , en voor 0 ≤ d < 1. positief definiet. A Wegens de stelling van Gershgorin geldt dat de diagonaalelementen van een matrix br = b, met b Het doel is om de CG methode toe te passen op Ab r = D−1 r. De CG methode minimaliseert daarmee de benadering: ||b rk − b r||Ab. Een groot voordeel van CG is de bescheiden geheugenruimte die het inneemt, namelijk slechts 4 vectoren met lengte n, en daarmee de convergentie-eigenschappen. b als uT Av b = 0. Ofwel, als ze zijn orthoTwee vectoren u,v 6= 0 zijn geconjugeerd met betrekking tot A gonaal ten overstaande van dit inproduct. Geconjugeerd zijn is een symmetrische relatie. De conjugatievoorwaarde is een orthonormaal-type voorwaarde en draagt overeenkomsten met GramSchmidt orthonormalisatie. Door de conjugatie en slimme constructie van getallen en vectoren in het algoritme, is er een kleine geheugenruimte nodig om het algoritme uit te voeren, en convergeert het algoritme snel. Hier meer over in de komende paragrafen. 6.2.2 Beschrijving CG methode Hier volgt een bondige beschrijving van de CG methode uit [18], om een beeld te krijgen van hoe de methode in elkaar steekt. De volgende vergelijking lossen we op: rk+1 = rk + αk pk , met αk zodanig dat ||b rk − b r||Ab minimaal. Het residu is: zk+1 = zk − αk Apk . De zoekdirectie p nemen we in eerste instantie gelijk aan het residu z, ofwel: p0 = z0 . Om te zorgen dat op´e´envolgende zoekvectoren, pk en pk+1 onderling geconjugeerd zijn, stellen we pi+1 gelijk aan: pk+1 = rk+1 + βk pk , met βk zodanig dat pk Apk+1 = 0. 6.2.3 Implementatie De invoer voor het algoritme: beginschattingsvector r0 , waarbij we zvva kunnen aannemen dat r0 = 0. Beginnend met een beginschattingsvector, mogen we de eerste basisvector willekeurig kiezen, en kiezen we: p0 = b − Ar0 . De andere vectoren in de basis zullen geconjugeerd zijn met de gradi¨ent: Ar0 − b. Het algoritme is beschreven in algoritme 5. 31 Algorithm 5 Geconjugeerde gradi¨enten methode 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: procedure = 1e − 12 z0 = b − Ar0 p0 = z0 k=0 loop: zT z αk = pTkApk k k rk+1 = rk + αk pk zk+1 = zk − αk Apk if ||zk+1 || < then break zT z k+1 βk+1 = k+1 zT k zk 12: pk+1 = zk+1 + βk pk 13: k =k+1 14: end 11: 6.3 De PCG methode toegepast op het GeneRank probleem 6.3.1 Beschrijving PCG toegepast op het GeneRank probleem Gegeven een lineair systeem Ar = b, betekent preconditioneren het vervangen van het originele systeem door het systeem: M −1 Ar = M −1 b, met M de preconditionering. Een precondtionering is in dit geval voordelig, aangezien de matrix M −1 A dichter bij de identiteitsmatrix I ligt. Dit impliceert dat de methode sneller zal convergeren naar de gewenste rangschikkingsvector r. b met de Voor een SPD lineair systeem, is een goede preconditionering, zie [17], een benadering van A volgende eigenschappen: • M is symmetrische en positief definiet; b ≈ I; • M −1 A • operaties met M −1 hebben niet veel geheugenruimte nodig. We kunnen PCG niet direct toepassen op het systeem M −1 Ar = M −1 b, aangezien M −1 A in het algemeen niet-symmetrisch is. Om de PCG methode te kunnen toepassen, preconditioneren we het systeem op de volgende manier: 1 b − 12 )(M 12 r) = M − 21 b. (M − 2 AM b en M − 21 AM b − 21 delen dezelfde eigenwaardes. Nu, is het voorstel om de digonaalmatrix Merk op: M −1 A als preconditionering te gebruiken om het lineaire systeem (D − dC)b r = (1 − d)ex, op te kunnen lossen, ofwel: M = D = diag(d1 , d2 , . . . , dn ). Hieruit volgt dat het lineaire systeem met preconditionering wordt: 1 1 1 1 r) = (1 − d)(D− 2 ex). (I − dD− 2 CD− 2 )(D 2 e 6.3.2 Implementatie Invoer voor het algoritme is: tolerantiegetal , dempingsfactor d, deg = [deg1 , deg2 , . . . , degn ]T , en k = 0. ex ex Neem verder als invoer de vectoren: r0 = ||ex|| , z0 = ||ex|| , p0 = ex./deg, en y0 = p0 . Het algoritme 1 1 is beschreven in algoritme 6. 32 Algorithm 6 PCG methode toegepast op het GeneRank probleem 1: 2: 3: 4: 5: 6: procedure = 1e − 12 k=0 loop: k =k+1 qk = deg. ∗ pk − d ∗ (C ∗ pk ) yT z 11: k−1 αk = k−1 pT qk rk = rk−1 + αk ∗ pk zk = zk−1 − αk ∗ qk if zk+1 < then break yk = zk ./deg 12: βk+1 = 7: 8: 9: 10: 13: 14: 15: 16: yT k zk yT k−1 rk−1 pk+1 = yk + βk+1 ∗ pk end r∗ = deg. ∗ rk rCG = r∗ /norm(r∗ , 1) Als uitvoer van het algoritme krijgen we de rangschikkingsvector r. 6.4 Begrenzing eigenwaardes Stelling: Alle eigenwaarden van de GeneRank matrix zijn re¨eel. Bovendien geldt λmax = 1 en −d ≤ λ ≤ d voor alle andere eigenwaarden, met d de dempingsfactor. Bewijs: Immers, er geldt dat: Tr = r −1 T dCD + (1 − d)exe r = r. Er geldt dat ex = ex ||ex||1 , en CD−1 een stochastische matrix. Dan eT CD−1 = eT en eT ex = 1. Nu volgt: T de + (1 − d)eT r = eT r ⇔ eT r = eT r = 1 We weten nu wat de linker eigenvector in dit geval is. Een linker eigenvector is een rij-vector u met de eigenschap: uA = λu. Zo is de rechter eigenvector een kolomvector v, die genoteerd staat aan de rechterkant van de matrix A, ofwel: Av = λv. In dit geval is de linkereigenvector bij eigenwaarde λ = 1: e. Nu, vul in: xj , de j-de eigenvector, j > 1, ⊥ e. Dan: dCD−1 xj + 0 = λj xj . Dus voor (λj , xj ), met j = 2, . . . , n geldt: dCD−1 xj = λj xj . 33 Nu gebruiken we de stelling van Gershgorin, die het gewenste resultaat zal geven. De stelling van Gershb een symmetrisch n × n-matrix, met elementen aij , en laat gorin P heeft de volgende aannames: Laat A Ri = j6=i |aij | voor i ∈ {1, 2, . . . , n} de som zijn van de absolute waarde van de niet-diagonaal elementen in de i-de rij. Laat D(aii , Ri ) de gesloten schijf zijn met centrum aii en straal Ri . Voldoenend aan de aannames, geeft de stelling: Iedere eigenwaarde van A ligt in tenminste ´e´en van de Gershgorin schijven D(aii , Ri ). Nu kunnnen we met behulp van de stelling van Gershgorin concluderen dat met straal 1 en centrum 0, dat λ2 = 1 ∗ d en λn = −1 ∗ d met λ1 > λ2 ≥ . . . ≥ λn , en −d ≤ λ ≤ d, ∀λ 6= λmax = λ1 . 34 7 Numerieke experimenten In de vorige hoofdstukken is er geschreven over het GeneRank probleem en de theorie van verschillende methodes die kunnen worden toegepast om de rangschikkingsvector van genen te vinden. De methodes die achtereenvolgens zijn behandeld: de stelselmethode, de (verschoven) machtsmethode, de methode van Jacobi, en de geconjugeerde gradi¨enten methode (met preconditionering) (PCG). In het komende hoofdstuk zullen de numerieke experimenten die uitgevoerd zijn op de data worden getoond. Er wordt gefocust op wat er gebeurt wanneer de machtsmethode en de PCG methode worden toegepast. Er zal informatie worden gegeven over zowel de uitvoertijd van het algoritme, als het aantal iteraties dat nodig is om tot de rangschikkingsvector te komen. 7.1 Dataset met recente data Er wordt gebruikt gemaakt van drie matrices uit [6], ofwel de meest recente data van de GO website in april 2005. 1. de matrix behorend bij de expressievector ex met zowel positieve als negatieve expressie getallen; 2. de matrix behorend bij de expressievector ex met strikt negatieve expressie getallen; 3. de matrix behorend bij de expressievector ex met strikt positieve expressie getallen. De hoeveelheid genen en verbindingen die de drie matrices bevatten, is te vinden in tabel 1. Naam Matrix 1 Matrix 2 Matrix 3 Aantal genen Aantal verbindingen tussen genen 4047 1625 2392 169 798 33 626 128 468 Tabel 1: Informatie over de drie matrices met data 7.2 Convergentie in de machtsmethode 7.2.1 Het residu De convergentie factor is de ratio: c = | λλ12 | = |λ2 | = d, met d de scalar die ervoor zorgt dat de transitiematrix T = d ∗ T1 + (1 − d) ∗ T2 een convex geheel is, aangezien we te maken hebben met een Markov matrix, met grootste eigenwaarde gelijk aan 1. De asymptotische convergentiefactor is dus gelijk aan de grootte van de op ´e´en na grootste eigenwaarde van T , ofwel λ2 = d. De machtsmethode convergeert: rk → r. Convergentie ratio: |λ2 | < 1, aangezien λ1 = 1 de grootste eigenwaarde is, die uniek is. Er is |λ2 | langzame convergentie als |λ2 | ≈ 1. De machtsmethode zal snel convergeren als |λ1| = |λ2 | klein is, en langzamer hoe dichter |λ2 | bij 1 in de buurt komt. In de methodes is aangenomen dat d = 0.5, zoals in artikel [6] is voorgesteld. 7.2.2 Implementatie van het residu Het residu van de machtsmethode plotten in matlab vindt plaats door eerst een residu-vector aan te maken, en vervolgens iedere iteratie het residu in de residu-vector op te slaan. De residu-vector heeft 35 ex . daarmee lengte gelijk aan het aantal iteraties. We gebruiken de expliciete machtsmethode, met r0 = ||ex|| 1 Het algoritme, dat slechts de residu berekening als toevoeging heeft op algoritme 2, ziet er uit als in algoritme 7. Algorithm 7 Machtsmethode 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: procedure resvec0 = ones(N, 1) eps = 1e − 12 loop: rk+1 = T ∗ rk normr = norm(rk+1 , 1) resveck = norm(rk+1 − rk ) rk+1 = rk+1 /normr if ||resveck || < eps then break end 7.2.3 Convergentiefactor machtsmethode Bekijken we de machtsmethode, dan hangt convergentiesnelheid, en daarmee de convergentiefactor, af van het residu: k ! λ2 k k k ||T r − r || = O = O |λ2 | λ1 Bij de machtsmethode heeft de volgende vector cmacht de convergentiefactor berekend: cmachti = 36 resveci resveci−1 De resulterende vector, berekend met matrix 1, cmacht = 0.00784931856616076 0.126148343420699 0.249107106630327 0.365224879931140 0.394825912045956 0.437841452728645 0.452171381228828 0.473379069080085 0.479556623359947 0.488102925456741 0.490804094380037 0.494171183387977 0.495487260828022 0.496913902494186 0.497610870410932 0.498275752257954 0.498662880494112 0.499000333131726 0.499221684857274 0.499404530954619 0.499533797480900 0.499637635676406 0.499714478702855 0.499775458935961 0.499821883383959 0.499858588491153 0.499887061416148 0.499909720663980 0.499927309401110 0.499941113832902 De factor is hier ongeveer: 0.5 = d. De tijd die erover wordt gedaan om de loop uit te voeren is ongeveer 0.95 seconde. 7.3 Convergentie in de verschoven machtsmethode 7.3.1 Het residu Het residu wordt voor de verschoven machtsmethode op analoge wijze verwerkt als bij de machtsmethode zonder verschuiving. 7.3.2 Implementatie van het residu Het plotten van het residu van de verschoven machtsmethode vindt plaats door een residu vector aan te maken, en in iedere iteratie het residu in de residu vector op te slaan. Het gebruikte algoritme, met ex , is weergegeven in algoritme 8. Het algoritme is een uitbreiding op algoritme 4. r0 = ||ex|| 1 37 Algorithm 8 Verschoven machtsmethode 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: procedure T = d ∗ (C ∗ (inv(D))) + (1 − d) ∗ (norm ex ∗ ones(1, n)) eps = 1e − 12 loop rk+1 = T ∗ pk − s ∗ pk normr = norm(rk+1 , 1) resveck = norm(T ∗ pk − pk ) lambda = normr + s pk+1 = rk+1 /normr if ||resveck || < eps then break end 7.3.3 Resultaten De resultaten zijn op basis van de methode, gebruik maken van matrix 1. In figuur 7, 8 en 9, zijn de residuen weergegeven voor de verschoven machtsmethode met verschuiving σ = 0.2 σ = 0.1, en σ = 0 respectievelijk. Figuur 7: Convergentiecurve verschoven machtsmethode met σ = 0.2 38 Figuur 8: Convergentiecurve verschoven machtsmethode met σ = 0.1 Figuur 9: Convergentiecurve verschoven machtsmethode met σ = 0 De resultaten weergegeven in een tabel zijn te vinden in tabel2 met verschuiving σ = 0.2, σ = 0.1, σ = 0.01 en σ = 0. 39 Matrix dimensie σ = 0.2 σ = 0.1 σ = 0.01 σ=0 = 10−2 = 10−4 = 10−6 = 10−8 = 10−10 = 10−12 0.0497 sec. 3 it. 0.0307 sec. 3 it. 0.0443 sec. 3 it. 0.0335 sec. 3 it. 0.2381 sec. 19 it. 0.0919 sec. 8 it. 0.0691 sec. 6 it. 0.0604 sec. 6 it. 0.6210 sec. 53 it. 0.2886 sec. 19 it. 0.2184 sec. 13 it. 0.1538 sec. 12 it. 1.0960 sec. 88 it. 0.4049 sec. 31 it. 0.2282 sec. 20 it. 0.2332 sec. 19 it. 1.3816 sec. 122 it. 0.5460 sec. 42 it. 0.3667 sec. 27 it. 0.3298 sec. 26 it. 1.6571 sec. 157 it. 0.6316 sec. 53 it. 0.4166 sec. 34 it. 0.3510 sec. 32 it. Tabel 2: Optimale verschuiving Overeenkomstig met dat wat we hebben gezien bij de beschrijving van de vershoven machtsmethode, laten de figuren 7, 8, 9 en tabel 2 zien dat de optimale verschuiving σ = 0 is. 7.4 Convergentie in de methode van Jacobi Voor de methode van Jacobi geldt overeenkomstig met de machtsmethode: ri+1 = (1 − d)ex + dCD−1 ri , De volgende twee oplossingen kunnen van elkaar af worden getrokken: ri+1 = dCD−1 ri + (1 − d)ex en r = dCD−1 r + (1 − d)ex, zodat overblijft: r − ri+1 = dCD−1 (r − ri ) waarbij dCD−1 de versterkingsmatrix is. Zo vinden we: ||r − ri+1 || ≈ λmax (dCD−1 )(r − r0 ) = (dCD−1 )(r − r0 ). met λmax de spectraalradius, het supremum over de absolute waardes van de elementen in het spectrum, ofwel ρ(T ) = λmax = maxi (|lambdai |). De methode van Jacobi heeft dezelfde convergentiefactor als de machtsmethode, namelijk: d. 7.5 Convergentie in de PCG methode toegepast op het GeneRank probleem 7.5.1 Het residu De convergentie ratio van CG wordt verwacht af te nemen als d afneemt. We bekijken de convergentie van de PCG methode toegepast op het GeneRank algoritme. Stel ven A ≡ D − dC, en b r de exacte oplossing van het systeem. Zie in [18] dat geldt : ||b r−r (k) ||A ≤ 2 p κ2 (D − dC) − 1 p κ2 (D − dC) + 1 !k ||b r − r(0) ||A , met r(k) is geproduceerd door de PCG methode, κ2 (D − dC) = λmax (D − dC) , λmin (D − dC) is het 2-norm conditie getal van A, en ||v||2A ≡ vT (D − dC)v. 40 De convergentie is te berekenen, aangezien alle informatie bekend is, namelijk: κ2 (D − dC) = zodat: q ||b r − r(k) ||A ≤ q 3 2 −1 3 2 +1 3 , 2 ≈ 0.7 ≈ 0.25. 0.2 Dit vertelt dat het aantal CG iteraties nodig om de fout door een vaste factor kleiner dan 1 te reduceren, proportioneel is met de wortel van het twee-conditie getal κ2 (D − dC). Hier is het twee-conditie getal de ratio van de grootste eigenwaarde door de kleinste eigenwaarde van (D − dC). De convergentiefactor is niet alleen door de factor van de grootste en de kleinste eigenwaarde verkregen, maar ook door de gehele verdeling van eigenwaardes. Het algoritme gaat als in algoritme 9. 7.5.2 Implementatie van het residu Het residu van de PCG methode wordt in iedere iteratie in de residu-vector opgeslagen. Het algoritme is ex ex , z0 = ||ex|| , beschreven in algoritme 9, met dempingsfactor d, deg = [deg1 , deg2 , . . . , degn ]T , r0 = ||ex|| 1 1 p0 = ex./deg, en y0 = p0 . Algorithm 9 PCG methode toegepast op het GeneRank probleem procedure k=1 eps = 1e − 12 4: loop: 5: qk = deg. ∗ pk − d ∗ (C ∗ pk ) 1: 2: 3: yT z 10: 11: 12: k−1 αk = k−1 pT qk rk = rk−1 + αk ∗ pk zk = zk−1 − αk ∗ qk if zk+1 < then break normz = norm(z, 1) resveck+1 = [resveck ; normz] yk = zk ./deg 13: βk+1 = 6: 7: 8: 9: yT k zk yT k−1 rk−1 pk+1 = yk + βk+1 ∗ pk k =k+1 16: end 14: 15: 7.5.3 Convergentiefactor PCG methode Bij de PCG methode heeft de volgende vector cpcg de convergentiefactor berekend: cpcgi = resveci resveci−1 41 De resulterende vector, berekend met matrix 1 cpcg = 0.434234349250101 0.260640047854833 0.308150479923512 0.217011918052124 0.250249959369377 0.241909388916971 0.242381422469359 0.209685140833943 0.221689207074938 0.230440411529726 0.198277841625850 0.237966672216885 0.255432972172009 0.231662348035950 0.206759197121159 0.224333871104718 0.222044757461802 0.217144955678176 0.219335415876562 0.223585027269756 De convergentiefactor is ongeveer: 0.25. De tijd die erover wordt gedaan om de loop uit te voeren is ongeveer 0.06 seconde. 7.6 Vergelijken resultaten machts- en PCG methode 7.6.1 Variatie dempingsfactor d In artikel [6], pag. 11, is berekend dat een goede waarde voor d zou zijn: d = 0.5. Andere waardes voor d zijn daarmee niet uitgesloten. Om een beeld te geven van wat het residu is voor verschillende waardes van d, is de afname van de grootte van het residu weergegeven in de tabellen 3, 4 en 5, matrix 1, 2 en 3 respectievelijk, met alle residuwaardes ∗10−8 . Daar waar een 0 staat is het residu kleiner dan 1 ∗ 10−8 . d Iteratie Machtsmethode PCGmethode 1 5 10 20 30 40 50 0.85 0.75 0.65 0.55 0.5 1334384.16 1177397.78 1020411.41 863425.04 784931.86 50502.19 27009.83 13206.34 5728.34 3556.85 15730.23 4499.44 1075.67 202.38 78.03 2912.98 238.33 13.62 0.48 0.07 571.21 13.37 0.18 0 0 112.41 0.75 0 0 0 22.13 0.04 0 0 0 0.85 0.75 0.65 0.55 0.5 86793836.89 72921072.32 60314394.13 48808043.73 43423434.93 9162313.58 2920430.21 1008137.32 338522.20 189402.53 231844.14 26240.76 3279.09 377.92 118.96 136.93 1.87 0.03 0 0 0.03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabel 3: Matrix 1, afname van de norm van het residu bij verschillende parameters d 42 d Iteratie Machtsmethode PCGmethode 1 5 10 20 30 40 50 0.85 0.75 0.65 0.55 0.5 1794123.59 1583050.23 1371976.86 1160903.50 1055366.82 66402.27 35513.59 17364.21 7531.85 4676.69 20843.98 5962.17 1425.36 268.18 103.39 3819.98 312.54 17.86 0.63 0.09 746.22 17.46 0.24 0 0 146.71 0.98 0 0 0 28.87 0.06 0 0 0 0.85 0.75 0.65 0.55 0.5 88559731.51 73222250.47 59701302.97 47692212.91 42177527.24 7790332.31 2425437.29 824303.58 273410.27 152146.18 246233.26 27258.54 3365.89 385.34 121.04 177.07 2.43 0.04 0 0 0.11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabel 4: Matrix 2, afname van de norm van het residu bij verschillende parameters d d Iteratie Machtsmethode PCGmethode 1 5 10 20 30 40 50 0.85 0.75 0.65 0.55 0.5 1822015.15 1607660.43 1393305.71 1178950.98 1071773.62 92078.47 49245.87 24078.55 10444.24 6485.05 36359.80 10400.28 2486.37 467.80 180.36 7029.41 575.13 32.87 1.16 0.17 1382.28 32.35 0.44 0 0 272.10 1.82 0.01 0 0 53.57 0.10 0 0 0 0.85 0.75 0.65 0.55 0.5 87626402.85 73556847.46 60792443.04 49159632.62 43721570.51 8829500.45 2780371.64 954294.23 319246.06 178345.22 204184.96 23801.66 3035.29 355.12 112.47 87.02 1.20 0.02 0 0 0.02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabel 5: Matrix 3, afname van de norm van het residu bij verschillende parameters d In de tabellen 3, 4 en 5 is af te lezen dat het residu bij meer iteraties afneemt. De machtsmethode begint met een groter residu dan de PCG methode, en de PCG methode convergeert sneller dan de machtsmethode, zodat de PCG methode na een kleinere hoeveelheid iteraties afgerond is. Ook is duidelijk te zien dat hoe verder de parameter d verwijderd van 1, hoe sneller het residu convergeert. Het valt op dat de drie matrices na genoeg hetzelfde gedrag vertonen. Nu enkele grafische weergaves voor d = 0.75, anders dan de dempingsfactor die we door het rapport heen aanhouden, d = 0.5, om te laten zien wat een ander dempingsgetal voor resultaat geeft. De machtsmethode genereert een stationaire rangschikkingsvector na 73 iteraties. De tijd dat het algoritme wordt uitgevoerd neemt ongeveer 2.2 seconde in. Dit is te zien in figuur 10. 43 Figuur 10: Convergentiecurve machtsmethode met d = 0.75 De PCG methode genereert voor d = 0.75 een stationaire rangschikkingsvector na 31 iteraties zoals te zien in figuur 11. De tijd dat het algoritme wordt uitgevoerd neemt ongeveer 0.09 seconde in. Figuur 11: Convergentiecurve PCG methode met d = 0.75 44 En voor d = 0.5 genereert de machtsmethode een stationaire rangschikkingsvector na 31 iteraties. De tijd dat het algoritme wordt uitgevoerd neemt ongeveer 0.94 seconde in. Een weergave is in 12. Figuur 12: Convergentiecurve machtsmethode met d = 0.5 De PCG methode genereert voor d = 0.5 een stationaire rangschikkingsvector na 21 iteraties. De tijd dat het algoritme wordt uitgevoerd neemt ongeveer 0.06 seconde in. Een weergave hiervan is 13. 45 Figuur 13: Convergentiecurve PCG methode met d = 0.5 7.6.2 Tijdsduur en aantal iteraties Aangezien de rangschikkingsvector r een stationaire verdeling van een Markov keten is, gebruiken we de 1-norm van het residu als stopcriterium in dit rapport. Het stopcriterium is dan ||Ark − λk rk || = ||Ark − rk || < , met > 0, en λk = 1 de eigenwaarde bij de k-de iteratie. Deze stopcriteria voor de machtsmethode en de PCG methode komen overeen. Dit is als volgt in te zien. Voor de machtsmethode geldt dat: ||T rk − rk || = ||(dCD−1 − (1 − d)exeT )rk − rk || = ||(dCD−1 − I)rk − (1 − d)ex||, terwijl voor de PCG methode geldt dat: ||T rk − rk || = ||b − Ark || = ||(1 − d)ex − (I − dCD−1 )rk ||, met b = (1 − d)ex en A = (I − dCD−1 ). In tabel 6 en 7 zijn de tijdsduur (in secondes) en het aantal iteraties (it.) weergegeven, voor verschillende . De tolerantie van het residu, , wordt gevarieerd tussen 10−2 en 10−12 , en d = 0.5. Matrix dimensie Matrix 1 Matrix 2 Matrix 3 = 10−2 = 10−4 = 10−6 = 10−8 = 10−10 = 10−12 0.0444 sec. 2 it. 0.0212 sec. 3 it. 0.0362 sec. 3 it. 0.1384 sec. 5 it. 0.0402 sec. 6 it. 0.0957 sec. 6 it. 0.3219 sec. 11 it. 0.0687 sec. 12 it. 0.1372 sec. 12 it. 0.5274 sec. 18 it. 0.0977 sec. 18 it. 0.2514 sec. 19 it. 0.7421 sec. 24 it. 0.1354 sec. 25 it. 0.3141 sec. 26 it. 0.9175 sec. 31 it. 0.1766 sec. 31 it. 0.3776 sec. 32 it. Tabel 6: Machtsmethode, tijdsduur en aantal iteraties 46 Matrix dimensie Matrix 1 Matrix 2 Matrix 3 = 10−2 = 10−4 = 10−6 = 10−8 = 10−10 = 10−12 0.0141 sec. 5 it. 0.0031 sec. 5 it. 0.0038 sec. 5 it. 0.0226 sec. 9 it. 0.0037 sec. 8 it. 0.0045 sec. 8 it. 0.0358 sec. 12 it. 0.0047 sec. 12 it. 0.0061 sec. 12 it. 0.0376 sec. 15 it. 0.0051 sec. 15 it. 0.0072 sec. 15 it. 0.0491 sec. 18 it. 0.0058 sec. 18 it. 0.0081 sec. 18 it. 0.0676 sec. 21 it. 0.0067 sec. 21 it. 0.0084 sec. 20 it. Tabel 7: PCG methode, tijdsduur en aantal iteraties Uit de tabellen 6 en 7 kan het volgende worden geconcludeerd: • het aantal iteraties dat nodig is, zowel voor de machtsmethode als voor de PCG methode neemt toe, naarmate kleiner, zoals verwacht; • de spreiding van het aantal iteraties is bij de machtsmethode groter dan bij de PCG methode; • wat tijdsduur betreft, is het duidelijk dat deze toeneemt bij het verkleinen van . Het programma heeft meer tijd nodig te convergeren bij kleine . Ook neemt de tijdsduur toe bij het vergroten van de matrixdimensie n; • de tijdsduur en hebben een duidelijk verband; meer iteraties impliceert een langere tijdsduur; • ook hier valt op dat de drie matrices na genoeg hetzelfde gedrag vertonen. 47 8 Conclusie Nu alle resultaten zijn beschreven, zetten we de belangrijke zaken die kunnen worden geconcludeerd, op een rij. Onderzocht in dit rapport is de verbindingen tussen genen, en methodes om het systeem T r = r op te lossen, met T de GeneRank transitiematrix, om een rangschikkingsvector r te verkrijgen. De onderzoeksvragen waarmee dit rapport opende, waren de volgende: 1. Wat houdt de verbinding tussen genen in? 2. Welke effici¨ente en snelle methodes zijn er om de rangschikkingsvector voor het GeneRank probleem te vinden? 3. Zijn er voordelen voor het vinden van de rangschikkingsvector door de symmetrie van de connectiematrix? We zullen de onderzoeksvragen achtereenvolgens behandelen. Het GeneRank probleem werkt met twee soorten data van verbindingen tussen genen, de experimentele data en de biologisch, ofwel verwachte, data. De experimentele data wordt verkregen door het stimuleren van genen om prote¨ınes te maken, en zo te kunnen meten hoe actief ze zijn, en daarmee wat hun mate van belang is. Deze data geeft al een rangschikking, maar is door de onnauwkeurigheid van experimenten zeer gevoelig. De biologische, ofwel verwachte, data in dit rapport bestond uit de drie componenten: moleculaire functie, biologische proces en cellulaire component. We hebben ´e´en directe methode bekekeken: de stelselmethode. Verder bekeken we iteratieve methodes toegepast op het GeneRank probleem: de (verschoven) machtsmethode die een eigenwaardeprobleem oploste, en de methode van Jacobi die een lineaire stelsel van vergelijkingen oploste. Alles methode hadden dezelfde rangschikkingsvector r als uitvoer. Het vergelijken van de methodes was gebaseerd op convergentiesnelheid. We hebben gezien dat voor het GeneRank probleem geldt dat de methode van Jacobi gelijk is aan de machtsmethode. We hebben geconcludeerd dat de optimale verschuiving bij toepassing van de machtsmethode, verschuiving σ = 0 is. De machtsmethode convergeert sneller dan de directe methode. Wegens de symmetrie van de connectiematrix C konden we gemakkelijk bewijzen dat alle eigenwaarden van de GeneRank transitiematrix T re¨eel zijn, dat de grootste eigenwaarde gelijk aan 1 is, en dat de overige eigenwaardes tussen - de dempingsfactor en + de dempingsfactor liggen, ofwel tussen −d en +d. Door de symmetrische connectiematrix was de niet-symmetrische matrix A = (I − dCD−1 ) om te schrijven b Deze omschrijving maakte dat we de geconjugeerde gradi¨entenmethode tot een symmetrisch matrix A. met preconditionering toegepast op het GeneRank probleem konden toepassen, een methode die erg snel convergeert, en ons een goede oplossing heeft gegeven. De PCG methode toegepast op het GeneRank probleem convergeert sneller dan de machts- en directe methode. We concluderen dat de methode die het snelst een goed resultaat geeft de PCG methode toegepast op het GeneRank probleem is. Als laatste, concluderen we dat de drie matrices die zijn gebruikt voor de numerieke experimenten, oplossingen geven die heel dicht bij elkaar liggen, met de reden dat de eigenwaardes λ1 = 1, λ2 = d en λn = −d voor de matrices hetzelfde zijn. Omdat de eigenwaardes voor de drie matrices gelijk verdeeld liggen, hebben de methodes oplossingen geven die dicht bij elkaar liggen. 48 9 Discussie Het rapport over het onderzoek naar het verbeteren van het GeneRank algoritme ligt achter ons. Het rapport dat nu bijna ten einde is, ging over de verbinding tussen genen, over verschillende algoritmes om de rangschikking te verkrijgen, en over de symmetrie van de connectiematrix van het GeneRank probleem, die voordelen met zich meebrengt. We zagen dat de GeneRank methode de verbinding tussen genen in het algoritme betrouwbaar probeert te laten zijn, door op twee soorten data te steunen: de experimentele data van mate van belang van genen, en de verwachte mate van belang van genen, gekeken naar de biologische verbinding tussen genen. We bekeken verschillende methodes. De directe methode nam erg veel geheugenruimte in, het algoritme deed er daardoor lang over om tot een oplossing te komen. Verder bekeken we de (verschoven) machtsmethode, de methode van Jacobi, en de PCG methode toegepast op het GeneRank probleem. We zagen dat voor het GeneRank probleem geldt dat de machtsmethode gelijk is aan de methode van Jacobi, en we zagen dat de optimale verschuiving voor de machtsmethode om het proces zo snel mogelijk te laten convergeren, geen verschuiving was. De machtsmethode nam een kortere tijd in om tot de oplossing te komen dan de directe methode, zoals we verwachtten. We konden door de symmetrische connectiematrix C een het systeem zo omschrijven dat we de PCG methode konden toepassen, een methode voor symmetrische matrices, die snel een goede rangschikkingsvector berekende. We verwachtten dat de methode die gebruik maakt van een symmetrische matrix sneller zou convergeren, dan de machtsmethode, de snelst convergerende methode in dit rapport. Deze verwachting klopte. We zagen dat de PCG methode dezelfde rangschikkingsvector als de andere methodes gaf, en veel sneller dan de andere methodes een oplossing vond, overeenkomstig met wat we verwachtten. De resultaten die we kregen door numerieke experimenten te doen, brachten ons tot de conclusie dat de drie matrices die waren gebruikt als data, ons na genoeg dezelfde oplossing gaven door de overeenkomstige ligging van de eigenwaardes van de matrices. Vervolgonderzoek kan gaan over het vinden van een ander testprobleem van bijvoorbeeld de GO website, ofwel het omschrijven van een recente GO matrix naar een symmetrische matrix met 0’en en 1’en. Er is een begin meegemaakt met het onderzoek hiervan, zoals te lezen in de appendix. We verwachten gelijke resultaten te krijgen na toepassing van de methodes met andere GO matrices, en kunnen dit bevestigen wanneer de nieuwe testproblemen zijn gereaslieerd. Verder vervolgonderzoek kan gaan over de dempingsfactor d. In dit rapport namen we naar aanleiding van artikel [6] aan dat d = 0.5. Dit onderzoek kan nog verder worden ondersteund en uitgebreid. 49 Referenties [1] http://www.oeiikgroei.nl/baby/medisch/dna-genen-en-chromosomen/ [2] www.bioontology.org [3] Adi L. Tarca, Roberto Romero en Sorin Draghici. Analysis of microarray experiments of gene expression profiling. American Journal of Obstetrics and Gynecology, 195(2): 373-388. 2008 [4] HC King, AA Sinha Gene expression profile analysis by DNA microarrays: promise and pitfalls. JAMA: the journal of the American Medical Association, 286(18):2280-8. 2001. [5] http://en.wikipedia.org/wiki/Gene expression [6] Julie L. Morrison, Rainer Breitling, Desmond J. Higham en David R. Gilbert. GeneRank: Using search engine technology for the analysis of microarray experiments. BMC Bioinformatics, 6:233. Glasgow, 2005. [7] Gilbert Strang. Linear Algebra and Its Applications (2e editie). Pagina 288. Academic Press. New York, 1980. [8] http://www.geneontology.org/GO.format.annotation.shtml. [9] http://www.geneontology.org/GO.format.obo-1 2.shtml [10] http://www.geneontology.org/ [11] GO.annotation.conventions.shtml [12] http://bioportal.bioontology.org/ [13] http://www.intermine.org/ [14] http://ratmine.mcw.edu [15] http://www.geneontology.org/ontology/gene ontology.obo [16] M. Ashburner, CA Ball, JA Blake et al. The Gene Ontology Consortium. Gene ontology: tool for the unification of biology. Nature Genetics, 25(1):25-9. California, 2000. [17] Gang Wu, Wei Xu, Ying Zhang en Yimin Wei. A preconditioned conjugate gradient algorithm for GeneRank with application to microarray data mining. Data Min Knowl Disc, 26:27-56. 2011. [18] Yousef Saad. Iterative Methods for Sparse Linear Systems (1e editie). SIAM. California, 2003. [19] Schlomo Sternberg. Dynamical Systems. Dover Publications. Harvard, 2010. [20] BaoJun Yue, Heng Liang, Fengshan Bai. Understanding the GeneRank Model. IEEE 1st Int Conf. Bioinform. Biomed. Eng., 6-8. Beijing, 2007 [21] http://homes.esat.kuleuven.be/ bioiuser/gpp/index.php [22] Davod Khojasteh Salkuyeh, Vahid Edalatpour, en Davod hezari. A new preconditioner for the GeneRank problem. arXiv, 1403.3925 [math.NA]. 2104. 50 10 Appendix 10.1 Methodes 10.1.1 Stelselmethode clear all; close all; load(’GO_matrix.mat’) format long C=w_All; ex=expr_data; d=0.5; % De experimentele data, de beginvector, expressie verandering gen i--> ex = abs(ex); norm_ex = ex/norm(ex,1); c = sparse(C); % Som van de rijen van matrix C--> deg = sum(C); % In het pagerank geval dangling node, bij genen komt dit niet voor--> ind = find(deg == 0); % Deze actie verandert niets aan de matrix, zie vorige punt--> deg(ind) = 1; % D invers, som van de rijen van W op de diagonaal--> D1 = sparse(diag(1./deg)); % (I-dW’Dinv)--> A = eye(size(c)) - d * (c’*D1); % (1-d)ex--> b = (1-d) * norm_ex; % Oplossen van r--> r = A\b; % Rangschikkingsvector r--> xStelsel = r/norm(r,1); 10.1.2 Machtsmethode clear all; close all; load(’GO_matrix.mat’) format long C=w_All; ex=expr_data; d=0.5; eps=1e-12; N=100; n=length(C); ex = abs(ex); % Beginschattingsvector--> r0 = ex/norm(ex,1); norm_ex = ex/norm(ex,1); lambda = zeros(N,1); % Construeren matrix D--> deg = sum(C); D = diag(deg); 51 % Transitiematrix--> T = d*(C*(inv(D))) + (1-d)*(norm_ex*ones(1,n)); resvec = ones(N,1); for i = 2:N r = T*r0; % r = d *(C*(D\r0)) + (1-d)*norm_ex; % In dit geval is het 1 als ex vanaf het begin niet-negatief--> normr = norm(r,1); % Fout in de norm van het residu--> resvec(i) = norm(T*r0-r0); lambda(i) = normr; % Eigenvector maken met normr=lambda=1, dus r0=r--> r0 = r/normr; % Tolerantie van het residu--> if resvec(i)<eps break end end % Afdrukken van het residu--> semilogy(resvec(1:i),’*’); title(’Machtsmethode voor GeneRank’); xlabel(’Aantral matrix-vector producten’) ylabel(’1-norm van het residu’) 10.1.3 Verschoven machtsmethode clear all; close all; load(’GO_matrix.mat’) format long shift = input(’shift = ’); C=w_All; ex=expr_data; d=0.5; eps=1e-12; N=100; n=length(C); r0 = ex/norm(ex,1); ex = abs(ex); norm_ex = ex/norm(ex,1); lambda = zeros(N,1); % Construeren matrix D--> deg = sum(C); D = diag(deg); T = d*(C*(inv(D))) + (1-d)*(norm_ex*ones(1,n)); resvec = ones(N,1); %error vector for i = 1:N r = T*r0 - shift*r0; normr = norm(r,1); 52 resvec(i) = norm(T*r0-r0); lambda(i) = normr + shift; r0 = r/normr; if resvec(i)<eps break end end semilogy(resvec(1:i), ’*’) title(’Machtsmethode voor GeneRank’); xlabel(’Aantral matrix-vector producten’) ylabel(’1-norm van het residu’) 10.1.4 PCG methode toegepast op het GeneRank probleem De berekeningen voordat het itereren begint: clear all; close all; load(’GO_matrix.mat’) format long C=w_All; ex=expr_data; d=0.5; eps =1e-12; N=100; ex=abs(ex); norm_ex = ex/norm(ex,1); deg=sum(C); ind = find(deg==0); deg(ind)=1; n=size(C,1); % D=sparse(diag(deg))--> deg=deg’; Beginschattingsvector--> r=norm_ex; % 0’de residu--> z=norm_ex; % Norm van het 1-residu--> normz=norm(z,1); resvec=[1]; rho=1; Het itereerproces en afdrukken residu: for i=2:N % Constructie van p--> y=z./deg; rho1=rho; rho=z’*y; % Iteratie 1--> if(i==2) p=y; 53 % Iteratie 2,3,..--> else beta=rho/rho1; p=y+beta*p; end % (D-dC)p--> q=deg.*p-d*(C*p); pq= p’*q; alpha = rho/pq; % Rangschikkingsvector berekenen--> r=r+alpha*p; % Residu berekenen--> z=z-alpha*q; normz = norm(z,1); % normr wordt in iedere iteratie berekend, en aan de vector toegevoegd--> resvec = [resvec;normz]; % Tolerantie van het residu--> if(normz<=eps) break; end end % Berekening uiteindelijke rangschikkingsvector r--> r=deg.*r; rCG = r/norm(r,1); % Afdrukken van het residu--> semilogy(resvec, ’*’) title(’PCG voor GeneRank’) xlabel(’Aantral matrix-vector producten’) ylabel(’1-norm van het residu’) 10.2 Gen Ontologie (GO) databank In matlab zit een “Bioinformatics Toolbox”, die voorzien is van verschillende commando’s om data van buitenaf, van een website, in te lezen en daar mee te werken. Om te kijken hoe het werkt om data te downloaden en dan te verwerken in matlab, wordt een random GO matrix in matlab geconstrueerd. Om een matrix te maken kunnen we het commando “getmatrix()” gebruiken. Nodig om dit commando te gebruiken is een “GeneontObj”, een object, zoals gecre¨eerd door de “geneont” constructor functie. De output is een connectiematrix, waarin 0 geen relatie representeert, 1 een “is een”-relatie representeert, en 2 een “deel van”-relatie representeert tussen genen. De “is een”-relatie en “deel van”-relatie zijn transitieve relaties; als A is een deel van B, en B is een deel van C, dan is A een deel van C. 54 De meest recente versie van de GO databank, is gemakkelijk in matlab te laden met het commando geneont. De matrix wordt gecre¨eerd met het commando getmatrix. De meest recente versie van gene ontology.obo kan van de GO website worden ingelezen, vanaf de pagina [15]. Een willekeurig netwerk van de GO site downloaden, daar wordt zo meteen op ingegaan. Het geldt zelfs dat ieder willekeurig obo-file door het commando ’geneont’ kan worden verwerkt, en wat door het commando ’getmatrix’ tot een matrix wordt gevormd. De recente matrix gedownload van de GO website bevat de getallen 0, 1 en 2. De connectiematrix C die gewenst is, bevat slechts de getallen 0 en 1, en is symmetrisch. De twee¨en in de matrix geven een “deel van”-relatie aan. Omdat dit een duidelijke relatie tussen twee genen is, worden de twee¨en in de matrix getransformeerd naar enen. Om de matrix klaar voor gebruik te maken, moet worden gezorgd dat de matrix symmetrisch is. Nu is het de bedoeling dat er niet slechts de meest recente versie van de GO matrix kan worden gebruikt, maar dat een netwerk van genen kan worden gedownload van de GO website, om die vervolgens als data in matlab te kunnen gebruiken. De matrices die je van de GO website kunt downloaden zijn zoals de meest recente versie niet meteen bruikbare matrices, maar is info waarvan de gewenste connectiematrix kan worden gemaakt. Dit proces gaat op de volgende manier: Om te beginnen wordt het gedownloade bestand geunzipt, en wordt er gelezen wat voor info er in het bestand staat: Nu zijn de gegevens binnen, en wordt de matrix geconstrueerd. De volgende twee vectoren van gegevens zijn hiervoor nodig: GOid en DB Object Symbol. Nu moet het commando “geneont” worden gebruikt om een file van de GO site in te lezen, zodat er staat: “geneont(’File’, FileValue)”, die een gen object cre¨eert, een string, die de bestandsnaam specificeert van een Open Biomedische Ontology (OBO)-formaat bestand, die op het MATLAB zoekpad is. Een string wordt gebruikt om output te labelen en om de namen van m-files in andere functies te gebruiken. Om relaties, zoals voorouders enzo, te visualiseren, wordt de “biograph” functie gebruikt en de “getmatrix”, allen onderdeel van de “Bioinformatics Toolbox”. De “getmatrix ” methode geeft een vierkante matrix terug van relaties van het gegeven “Gen Ontology” object. Deze graaf wordt soms een ‘ge¨ınduceerde’ graaf genoemd. 10.3 10.3.1 Constructie matrix met meest recente data Inlezen GO = geneont(’LIVE’,true); [MATRIX, ID, REL] = getmatrix(GO); 10.3.2 “Deel van”-relatie ⇒ “is een”-relatie i=1; j=1; for i = 1:length(MATRIX) for j = 1:length(MATRIX) if MATRIX(i,j) == 2 MATRIX(i,j) = 1; 55 end j=j+1; end i = i+1; j = 1; end 10.3.3 Symmetrisch maken van de matrix i=1; j=1; for i = 1:length(MATRIX) for j = 1:length(MATRIX) if MATRIX(i,j) == 1 MATRIX(j,i) = 1; end j=j+1; end i = i+1; j = 1; end 10.4 Inlezen willekeurige datasets van de GO website \subsubsection{Unzippen} \begin{verbatim} gunzip(’gene_association3.gz’); SGDGenes = goannotread(’gene_association3’); 10.4.1 Constructie matrix uit gedownloade informatie Twee bruikbare vectoren: genen = [SGDGenes.GOid]; mensgenen = {SGDGenes.DB_Object_Symbol}; Voorouders en weergave in netwerk met het commando biograph: ancestors = getancestors(GO,5840) riboanc = GO(ancestors) cm = getmatrix(riboanc); BG = biograph(cm, get(riboanc.Terms.’name’)) view(BG) 56
© Copyright 2024 ExpyDoc