BiNGO: een Cytoscape-plugin voor functionele annotatie van … · 2019. 11. 28. · BiNGO: een...

85
Faculteit Toegepaste Wetenschappen Vakgroep Toegepaste Wiskunde en Informatica Voorzitter: Prof. dr. ir. G. Vanden Berghe Vakgroep Moleculaire Genetica Voorzitter: Prof. dr. Anna Depicker BiNGO: een Cytoscape-plugin voor functionele annotatie van genclusters door Karel Heymans Promotor: Prof. dr. V. Fack Scriptiebegeleider: Dhr. Steven Maere Afstudeerwerk ingediend tot het behalen van de graad van licentiaat in de informatica, optie: toepassingsgerichte informatica Academiejaar 2003–2004

Transcript of BiNGO: een Cytoscape-plugin voor functionele annotatie van … · 2019. 11. 28. · BiNGO: een...

  • Faculteit Toegepaste Wetenschappen

    Vakgroep Toegepaste Wiskunde en Informatica

    Voorzitter: Prof. dr. ir. G. Vanden Berghe

    Vakgroep Moleculaire Genetica

    Voorzitter: Prof. dr. Anna Depicker

    BiNGO: een Cytoscape-plugin voor

    functionele annotatie van genclusters

    door Karel Heymans

    Promotor: Prof. dr. V. Fack

    Scriptiebegeleider: Dhr. Steven Maere

    Afstudeerwerk ingediend tot het behalen van de graad van licentiaat in

    de informatica, optie: toepassingsgerichte informatica

    Academiejaar 2003–2004

  • Toelating tot bruikleen

    De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van

    het afstudeerwerk te kopiëren voor persoonlijk gebruik.

    Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met be-

    trekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten

    uit dit afstudeerwerk.

    Karel Heymans 25 mei 2004

    i

  • Dankwoord

    Graag zou ik iedereen willen bedanken die heeft bijgedragen tot de verwezenlijking van dit

    eindwerk, in het bijzonder dank ik:

    • mijn promotor, Prof. dr. V. Fack, die mij de kans heeft aangereikt deze scriptie aan tevatten;

    • mijn scriptiebegeleider, dhr. Steven Maere, die met veel enthousiasme en zo mogelijk metnog meer vakkennis mijn werken richting heeft gegeven;

    • mijn vriendin, Mieke Jacob, voor het vinden van een coole en catchy naam voor mijnCytoscape-plugin, met name: BiNGO;

    • mijn ouders voor de steun tijdens mijn studies;

    • mijn zus, Reinhilde, voor het nalezen op dt-fouten.

    ii

  • BiNGO: een Cytoscape-plugin voor functionele annotatie van genclusters

    door

    Karel Heymans

    Afstudeerwerk ingediend tot het behalen van de graad van licentiaat in de informatica, optie:

    toepassingsgerichte informatica

    Academiejaar 2003–2004

    Universiteit Gent

    Faculteit Toegepaste Wetenschappen

    Promotor: Prof. dr. V. Fack

    Samenvatting

    Het doel van deze scriptie is het schrijven van een programma met als functionaliteit het bereke-

    nen en visueel voorstellen van overrepresentatie van functionele klassen in een cluster genen die

    de gebruiker selecteert in een graaf. BiNGO (Biological Network Gene Ontology), de software

    die in het kader van deze scriptie werd ontwikkeld, is opgevat als een plugin voor Cytoscape,

    een bestaand pakket voor visualisatie van biologische netwerken. Zowel plugin als moederpro-

    gramma zijn in Java geprogrammeerd.

    Voor de berekeningen wordt er gebruik gemaakt van statistische testen (hypergeometrische test,

    binomiale test) en ook van multiple testing correcties (Benjamini & Hochberg correctie van de

    False Discovery Rate, Bonferroni correctie van de Family-Wise Error Rate).

    Bij de visualisatie van de netwerken in Cytoscape wordt er gebruik gemaakt van het grafische

    pakket GINY (Graph INterface librarY). De plugin maakt hier ook gebruik van.

    Trefwoorden: Cytoscape, Java, overrepresentatie, visualisatie, statistiek.

    iii

  • Inhoudsopgave

    1 Inleiding 1

    1.1 Het biologische luik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.1 Het centrale dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.2 Biologische achtergrond . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.2 Gene Ontology (GO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.1 Wat is een ontologie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.2 De verschillende ontologieën in GO . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.3 Hoe zien ontologieën eruit? . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.2.4 Wat is een annotatie? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.3 Waarom is deze scriptie belangrijk? . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.4 Korte beschrijving van de BiNGO-functionaliteit . . . . . . . . . . . . . . . . . . 7

    1.5 Vergelijking met andere GO-tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    1.5.1 Introductie GO-tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.5.2 Vergelijking GO-tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2 Introductie Cytoscape 13

    2.1 Wat is Cytoscape? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.2 Hoe is Cytoscape ontstaan? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.3 De Cytoscape “Core”-functionaliteit en -architectuur . . . . . . . . . . . . . . . . 14

    2.3.1 Data-integratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.3.2 Annotatietransfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.3.3 Graaf lay-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.3.4 Attribuut-Naar-Visueel mapping . . . . . . . . . . . . . . . . . . . . . . . 15

    2.3.5 Graafselectie en -filteren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.3.6 Plugin-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.4 Graph INterface librarY (GINY) . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.5 De Cytoscape “Core”-Objecten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.5.1 CyNetwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.5.2 CyWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    iv

  • 2.5.3 CytoscapeObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    3 Statistische analyse 21

    3.1 Algemene principes toetsen van hypothesen . . . . . . . . . . . . . . . . . . . . . 21

    3.2 Bespreking van de verschillende gëımplementeerde testen . . . . . . . . . . . . . . 23

    3.2.1 Hypergeometrische test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.2.2 Binomiale test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.2.3 χ2-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.3 Bespreking van de verschillende correcties . . . . . . . . . . . . . . . . . . . . . . 26

    3.3.1 Bonferroni controle van de Family-Wise Error Rate . . . . . . . . . . . . . 27

    3.3.2 Benjamini & Hochberg controle van de False Discovery Rate . . . . . . . 27

    4 Implementatie van BiNGO 29

    4.1 Plugin-architectuur in Cytoscape . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    4.1.1 Overzicht van het maken van een Cytoscape-plugin . . . . . . . . . . . . . 29

    4.1.2 Stap 1: Extend AbstractPlugIn . . . . . . . . . . . . . . . . . . . . . . . 30

    4.1.3 Stap 2: Creëer een Jar-file . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    4.1.4 Stap 3: Obfusceren van de plugin . . . . . . . . . . . . . . . . . . . . . . . 31

    4.1.5 Concrete implementatie van de plugin-architectuur in BiNGO: BiNGO-

    plugin.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    4.2 SettingsPanel: de gebruikersinstellingen . . . . . . . . . . . . . . . . . . . . . . 31

    4.2.1 SettingsOpenPanel, SettingsSavePanel: het kiezen van de bestanden 32

    4.2.2 HelpMenuBar: het help-menu . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.2.3 SettingsPanelActionListener: de luisteraar . . . . . . . . . . . . . . . 33

    4.3 Implementatie van de testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.3.1 DistributionCount: het tellen van de genen . . . . . . . . . . . . . . . . 35

    4.3.2 Implementatie van de hypergeometrische test . . . . . . . . . . . . . . . . 36

    4.3.3 Implementatie van de binomiale test . . . . . . . . . . . . . . . . . . . . . 38

    4.4 Implementatie van de correcties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    4.4.1 Implementatie van de Bonferroni correctie van de Family-wise Error Rate 38

    4.4.2 Implementatie van de Benjamini & Hochberg correctie van de False Dis-

    covery Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    4.5 DisplayBiNGOWindow: de visualisatie . . . . . . . . . . . . . . . . . . . . . . . . . 39

    4.6 CreateBiNGOFile: het gegevensbestand over de overrepresentatie . . . . . . . . . 41

    5 Handleiding BiNGO 43

    5.1 Het BiNGO-venster met zijn opties . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    5.2 Richtlijnen voor de combinatie statistische testen en correcties . . . . . . . . . . 45

    v

  • 5.3 Het aantal categorieën . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    5.4 Testen tegenover genoom of graaf? . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    5.5 Het ontologiebestand en het annotatiebestand . . . . . . . . . . . . . . . . . . . . 46

    5.6 Het SIF-bestand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.7 Het databestand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    5.8 De visualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    6 Clusteronderzoek met BiNGO 52

    6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    6.2 Bespreking van de geselecteerde cluster . . . . . . . . . . . . . . . . . . . . . . . . 53

    6.3 Screenshots van het onderzoek van de cluster met BiNGO . . . . . . . . . . . . . 54

    6.3.1 Screenshots van het testen tegenover het genoom . . . . . . . . . . . . . . 54

    6.3.2 Screenshots van het testen tegenover de graaf . . . . . . . . . . . . . . . . 55

    6.4 Bespreking van het onderzoek van de geselecteerde cluster . . . . . . . . . . . . . 55

    7 Besluit 70

    7.1 Conclusies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    7.2 Distributie via website en cd-rom . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    7.3 BiNGO in de toekomst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    vi

  • Lijst van figuren

    1.1 Voorbeeld van een microarray-compendium . . . . . . . . . . . . . . . . . . . . . 3

    2.1 Grafische voorstelling van de Cytoscape “Core” . . . . . . . . . . . . . . . . . . . 17

    5.1 Het BiNGO-venster met zijn opties . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    6.1 Screenshot: De graaf met test-data . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    6.2 Screenshot: De graaf met test-data met geselecteerde cluster . . . . . . . . . . . 53

    6.3 Screenshot: De te onderzoeken cluster . . . . . . . . . . . . . . . . . . . . . . . . 53

    6.4 Screenshot: Hypergeometrische test tegenover het hele genoom . . . . . . . . . . 58

    6.5 Screenshot: Hypergeometrische test, Benjamini & Hochberg, genoom . . . . . . . 59

    6.6 Screenshot: Hypergeometrische test, Bonferroni, genoom . . . . . . . . . . . . . . 60

    6.7 Screenshot: Binomiale test tegenover het hele genoom . . . . . . . . . . . . . . . 61

    6.8 Screenshot: Binomiale test, Benjamini & Hochberg, genoom . . . . . . . . . . . . 62

    6.9 Screenshot: Binomiale test, Bonferroni, genoom . . . . . . . . . . . . . . . . . . . 63

    6.10 Screenshot: Hypergeometrische test tegenover de genen in de graaf . . . . . . . . 64

    6.11 Screenshot: Hypergeometrische test, Benjamini & Hochberg, graaf . . . . . . . . 65

    6.12 Screenshot: Hypergeometrische test, Bonferroni, graaf . . . . . . . . . . . . . . . 66

    6.13 Screenshot: Binomiale test tegenover de genen in de graaf . . . . . . . . . . . . . 67

    6.14 Screenshot: Binomiale test, Benjamini & Hochberg, graaf . . . . . . . . . . . . . 68

    6.15 Screenshot: Binomiale test, Bonferroni, graaf . . . . . . . . . . . . . . . . . . . . 69

    vii

  • Lijst van tabellen

    1.1 Vergelijking GO-Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.1 Beslissingsmogelijkheden bij nulhypothesen . . . . . . . . . . . . . . . . . . . . . 23

    3.2 Dataorganisatie voor χ2-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    4.1 Vergelijking uitvoeringstijden hypergeometrische distributie. . . . . . . . . . . . . 37

    5.1 Corpus van het databestand in BiNGO . . . . . . . . . . . . . . . . . . . . . . . 51

    6.1 Tabel met de genen en hun functies uit de geselecteerde cluster . . . . . . . . . . 57

    viii

  • Hoofdstuk 1

    Inleiding

    BiNGO staat voor Biological Network Gene Ontology en voldoet aan de ongeschreven wet dat

    tools van zijn soort de twee letters ’GO’ in hun naam dragen (cf. FatiGO, GOTM, GOSurfer,

    GoMiner, ... voor een beschrijving van deze tools zie sectie 1.5.1 op pagina 9). BiNGO is opgevat

    als een plugin voor Cytoscape, een bestaand pakket voor visualisatie van biologische netwerken

    dat een goede plugin-architectuur bevat.

    Cytoscape is een programma waar elke dag nog aan gewerkt wordt. Het is een programma

    dat elke dag evolueert, er elke dag nieuwe concepten bijkrijgt. Gedurende dit academiejaar

    is Cytoscape ook geëvolueerd. Zo is bijvoorbeeld besloten over te stappen van het grafische

    pakket Y-files naar het grafische pakket GINY. Ook conceptuele veranderingen in de architectuur

    hebben zich dit jaar voorgedaan in Cytoscape. Als voorbeeld hiervan kan men zeggen dat men

    de grote klasse CytoscapeWindow opgesplitst heeft in verschillende kleinere klassen (zoals onder

    andere CyWindow, CyNetwork, ...). BiNGO is compatibel gemaakt met elke versie die dit

    jaar uitgekomen is en is compatibel met Cytoscape 2.0, ALPHA1. Op 11 mei echter is de versie

    Cytoscape 2.0, ALPHA2 ter beschikking gesteld op een apart gedeelte van de site1, een deel

    speciaal voor de ontwikkelaars van Cytoscape en voor de programmeurs van plugins voor het

    moederprogramma, waar trouwens ook de versie Cytoscape 2.0, ALPHA1 gepubliceerd is. De

    nieuwe versie bevat echter te veel veranderingen in klassen die essentieel zijn voor de plugin

    zoals die er nu uitziet om deze nog compatibel te krijgen vóór het inleveren van de scriptie.

    De veranderingen situeren zich vooral rond de klasse CyNetwork besproken in sectie 2.5.1 op

    pagina 18. In een latere versie van BiNGO zal de plugin wel bruikbaar zijn met de recentste

    versie, maar momenteel is er wegens de naderende deadline enkel compatibiliteit met de vorige

    ALPHA versie. De BiNGO-plugin en de versie Cytoscape 2.0, ALPHA1 staan ter beschikking

    op de site2.1http://www.cytoscape.org/alpha.html2http://www.psb.ugent.be/cbd/BiNGO/BiNGO.html

    1

  • De taak van de plugin bestaat uit het berekenen en visueel voorstellen van overrepresentatie

    van functionele klassen van genen. Het berekenen gebeurt aan de hand van statistische tests en

    multiple testing correcties. Het visueel voorstellen gebeurt aan de hand van het grafisch pakket

    dat reeds gebruikt wordt door Cytoscape.

    In het eerste hoofdstuk wordt de biologische kant van de zaak belicht en wordt er ook een

    korte beschrijving gegeven van de functionaliteiten van BiNGO. Tevens wordt BiNGO daar

    vergeleken met andere GO-tools die ook overrepresentatie van functionele klassen van genen

    nagaan. Het tweede hoofdstuk behandelt het moederprogramma van de plugin: Cytoscape. Het

    geeft aan hoe het programma ontstaan is, wat de belangrijkste functionaliteiten zijn en hoe het

    geconcipieerd is. Hoofdstuk drie vertelt ons de theoretische opbouw van de statistische analyse

    van de data. Hierin wordt speciaal aandacht geschonken aan de gëımplementeerde statistische

    tests en multiple testing correcties. In hoofdstuk vier wordt de implementatie van de plugin

    behandeld. Elke klasse wordt er uitvoerig besproken. Het vijfde hoofdstuk bevat de handleiding

    voor BiNGO en het zesde hoofdstuk bevat het onderwerpen van BiNGO aan een testcluster

    van genen geselecteerd in een netwerk. De conclusies, distributie en toekomstperspectieven in

    verband met BiNGO worden besproken in het zevende en laatste hoofdstuk.

    1.1 Het biologische luik

    1.1.1 Het centrale dogma

    Alle informatie voor de bouw en functie van een cel en zijn componenten zit vervat in het

    DNA, onder de vorm van genen. Die worden eerst, onder de invloed van eiwitten die bekend

    staan als transcriptiefactoren, overgeschreven (getranscribeerd) naar mRNA. Dit mRNA wordt

    uiteindelijk vertaald in eiwitten, de functionele eenheden (werkpaarden) van de cel. Elke stap van

    DNA naar eiwit wordt bëınvloed door regulatorische processen die de intermediaire componenten

    bewerken, knippen, modificeren of degraderen. Ook de functionaliteit van de eindproducten, de

    eiwitten, wordt continu gestuurd door regulatorische processen.

    1.1.2 Biologische achtergrond

    Eén van de belangrijkste doelstellingen van de moleculaire biologie vandaag is het ontrafelen en

    in kaart brengen van de complexe interacties tussen DNA, RNA en eiwitten die de functionaliteit

    van een organisme bepalen. De laatste jaren is onder impuls van technologische ontwikkelingen

    enerzijds en de beschikbaarheid van volledig gesequeneerde genomen anderzijds een drastische

    verschuiving in aanpak opgetreden. Daar waar genen, eiwitten en hun interacties vroeger als

    onafhankelijke entiteiten werden bestudeerd, treedt nu meer en meer een globale benadering

    op de voorgrond: systeembiologie. De grootschalige experimenten die daarmee gepaard gaan,

    2

  • zoals expressie-profiling met microarrays (zie figuur 1.1 op pagina 3), genereren een enorme

    hoeveelheid data die met de huidige methodes niet adequaat kan geanalyseerd worden. Vaak

    gaat het om datasets met honderden datapunten voor duizenden genen, een complexiteit die een

    nieuwe dimensie geeft aan data-analyse. Om het onderliggende netwerk van interacties op te

    stellen, te visualiseren en te analyseren is de ontwikkeling van nieuwe concepten en technologie

    vereist. Het uiteindelijke doel van systeembiologie is om op basis van het netwerk van interacties

    tussen cellulaire componenten de functie van elke component en de respons op een verstoring

    van die component te achterhalen.

    Figuur 1.1: Voorbeeld van een microarray-compendium [Hea00]. Dit is een hiërarchisch geclusterdeweergave van de respons van de ongeveer 6000 genen in gist (horizontaal) op 300 perurbatie-experimenten(verticaal). De kleur geeft weer in welke mate een bepaald gen tot expressie komt (men meet mRNAniveau’s) in een bepaald experiment in vergelijking met de controleconditie. Rood is overgeëxpresseerd,groen is ondergeëxpresseerd.

    Systeembiologie is een jong en sterk interdisciplinair onderzoeksveld. Niet alleen de moleculaire

    biologie speelt in dit veld een belangrijke rol, maar ook wiskunde, statistiek, fysica en informa-

    tica. Een van de kernvragen is hoe men verschillende types van informatie kan samenbrengen en

    analyseren als een overzichtelijk geheel. Grafen blijken uiterst nuttig te zijn om fundamenteel ver-

    schillende types van informatie in eenzelfde formaat bij elkaar te brengen. Eiwit-interactiedata,

    signaaltransductiecascades, transcriptiefactornetwerken en metabolische pathways hebben een

    3

  • vanzelfsprekende grafische voorstelling. Ook transcriptoomdata kunnen grafisch vertaald wor-

    den. De uitdaging is nu om deze verschillende netwerken verder te integreren en te annoteren.

    De technologie daarvoor moet nog grotendeels ontwikkeld worden, hoewel veel basistechnieken

    kunnen ontleend worden aan de discrete wiskunde, meer bepaald de logica, grafentheorie en

    combinatorische statistiek.

    Het is belangrijk om alle beschikbare informatie over de genen in het netwerk te verwerken.

    Ongetwijfeld de belangrijkste bron van informatie bij het analyseren en annoteren van genoom-

    wijde datasets is het uitgebreide corpus van functionele informatie dat in de laatste 30 jaar

    werd verzameld. De laatste jaren werden een aantal initiatieven ontwikkeld om die informatie

    samen te brengen en gestructureerd aan te bieden onder de vorm van een gecontroleerd vocab-

    ularium. Een van de belangrijkste initiatieven daaromtrent is Gene Ontology (GO). GO is een

    hiërarchische structuur van termen in drie grote onderverdelingen: biologisch proces, moleculaire

    functie en cellulair compartiment. Elk gen wordt op basis van literatuurinformatie geannoteerd

    op een of meerdere nodes van elke klasse. In sectie 1.2 op pagina 4 wordt Gene Ontology

    besproken.

    1.2 Gene Ontology (GO)

    Het Gene Ontology (GO) project is ontstaan om aan de nood van een consistente omschrij-

    ving van genproducten in verschillende databanken te voldoen. Een genproduct is een RNA- of

    protëıneproduct dat door een gen geëncodeerd is. De GO-medewerkers hebben drie structuren,

    drie ontologieën ontwikkeld die genproducten omschrijven inzake hun biologische processen, cel-

    lulaire componenten en moleculaire functies. Deze zijn ontwikkeld op een species-onafhankelijke

    manier. [ABB+01] [ABB+00]

    1.2.1 Wat is een ontologie?

    Ontologie betekent de kunst (of de wetenschap) om alles een juiste naam te geven. Ontolo-

    gieën zijn specificaties van een relationeel vocabularium. Met andere woorden het zijn sets van

    gedefinieerde termen zoals men die in een woordenboek zou vinden, maar met die aanpassing dat

    de termen in een netwerk zitten. De termen in een gegeven ontologie zijn beperkt tot diegene die

    in een bepaald gebied gebruikt worden. In het geval van GO zijn de termen allemaal biologisch.

    1.2.2 De verschillende ontologieën in GO

    GO is georganiseerd in drie structuren: molecular function, biological process en cellular com-

    ponent. Een genproduct heeft één of meerdere moleculaire functies en wordt gebruikt in één of

    meerdere biologische processen. Het kan tevens geassocieerd zijn met één of meerdere cellulaire

    4

  • componenten. Zo kan bijvoorbeeld cytochrome c beschreven worden door de moleculaire functie

    electron transporter activity, door de biologische processen oxidative mitochondrial matrix en in-

    duction of cell death en door de cellulaire componenten mitochondrial matrix en mitochondrial

    inner membrane.

    Moleculaire functie

    Moleculaire functies beschrijven activiteiten, zoals catalysatorische of bindende activiteiten, op

    het moleculaire niveau. De termen in de GO-moleculaire functies stellen eerder deze activiteiten

    voor dan de entiteiten die deze acties uitvoeren. Ze specificeren niet waar of wanneer of in welke

    context de acties plaatsvinden. Algemeen beschouwd corresponderen moleculaire functies met

    activiteiten die door een individueel genproduct kunnen uitgevoerd worden, maar sommige ac-

    tiviteiten worden uitgevoerd door een verzameling van genproducten (complexes of gene product

    groups genaamd). Voorbeelden van veel voorkomende functionele termen zijn catalytic activity,

    transporter activity en binding, voorbeelden van minder voorkomende functionele termen zijn

    adenylate cyclase activity en Toll receptor binding.

    Biologisch proces

    Een biologisch proces wordt bereikt door één of meerdere geordende moleculaire functies. Voor-

    beelden van veel voorkomende biologische processen zijn celgroei en maintenance or signal trans-

    duction. Voorbeelden van meer specifieke termen zijn pyrimidine metabolism en alpha-glucoside

    transport. Het kan moeilijk zijn om onderscheid te maken tussen moleculaire functies en bio-

    logische processen maar de algemene regel is dat een proces meer dan één afzonderlijke stap

    bezit.

    Cellulaire component

    Een cellulaire component is wat de benaming al aangeeft, namelijk een deel van een cel maar met

    de eigenschap dat het deel uitmaakt van een groter object. Dat groter object kan een anatomische

    structuur (bijvoorbeeld rough endoplasmic reticulum of nucleus) of een genproductverzameling

    (bijvoorbeeld ribosoom, proteasome of een protein dimer) zijn.

    1.2.3 Hoe zien ontologieën eruit?

    GO-termen zijn georganiseerd in een structuur die men een gerichte acyclische graaf noemt

    (Directed Acyclic Graph (DAG)). Deze structuur verschilt van een hiërarchie (of boomstructuur)

    in het feit dat een kind (meer bepaald een term) meerdere ouders kan hebben. Elke GO-term

    moet ook beantwoorden aan de zogenaamde ”true path”-regel. Deze regel zegt dat als een kind-

    term het genproduct beschrijft, al de ouders ervan ook van toepassing moeten zijn voor dat

    5

  • genproduct.

    1.2.4 Wat is een annotatie?

    GO op zich is enkel een systeem om genen en protëınen te annoteren, het zorgt niet voor het

    relateren van databankelementen (genen) aan een annotatiewaarde. Hier komen de annotatiebe-

    standen in het spel, deze zorgen voor additionele informatie bij de GO-bestanden. De termen van

    de Gene Ontology worden gebruikt in de annotatie van genproducten in biologische databanken.

    GO-annotaties zijn associaties die gemaakt worden tussen genproducten en de GO-termen die

    deze beschrijven. Elk gen wordt op één of meerdere GO-termen geannoteerd.

    1.3 Waarom is deze scriptie belangrijk?

    Het aantal genen in sets van genen kan zeer groot zijn en de functionele data die met elk gen

    kunnen geassocieerd worden zijn nogal complex. Het zoeken naar patronen en het evalueren van

    de functionele significantie van deze patronen voor grote groepen van genen is een grote uitda-

    ging voor biologen en is ook uiterst tijdrovend. Om dit te kunnen verwezenlijken in een kortere

    tijdspanne zijn er biologische tools nodig, software die de onderzoeker helpt bij het functioneel

    profileren van deze grote genen-sets. [ZSKS04]

    Binnen deze scriptie werd een tool ontwikkeld om het GO-initiatief ten volle te benutten bij het

    functioneel annoteren van grafen en het opstellen van genetische netwerken. Traditioneel wordt

    de graaf eerst geclusterd in geconnecteerde componenten. Op de methodes die hiervoor ont-

    wikkeld werden wordt verder niet ingegaan. Verdere functionele annotatie van de data gebeurt

    dan door voor elke cluster na te gaan welke functionele klassen (vb. GO-categorieën) statistisch

    oververtegenwoordigd zijn.

    Van bijzonder belang bij GO-overrepresentatie analyse is de statistiek en de voorstelling van

    de resultaten. Meestal worden enkel categorieën op een bepaald intermediair niveau in de GO-

    hiërarchie getest, waardoor het aantal tests (en de bijhorende correctie) beperkt blijft. Tegelijk

    wordt echter de rijke hiërarchische structuur afgevlakt en gaat de samenhang tussen de func-

    tionele klassen verloren. Binnen dit project werd de methodologie ontwikkeld om genen of

    clusters functioneel te annoteren op alle niveaus in de GO-structuur, en vervolgens de anno-

    taties voor verschillende genen of clusters te vergelijken. Wanneer categorieën op alle niveaus

    in de Gene Ontology getest worden is het van belang om de p-waarden in de juiste context

    te bekijken. Dat kan door de resultaten als subgraaf op de hiërarchische structuur te map-

    pen. Omdat per cluster meerdere tests worden uitgevoerd (soms enkele honderden) moet ook

    bijzondere aandacht besteed aan het multiple testing probleem. Omdat traditionele correcties

    zoals de Bonferroni correctie van de Family-Wise Error Rate meestal te conservatief zijn, wor-

    6

  • den veelal minder strenge correcties gebruikt. Voor de bioloog wegen een aantal vals positief

    gëıdentificeerde categorieën immers niet op tegen de mogelijkheid een hypothetische functie voor

    een onbekend gen te identificeren. Dit maakt het des te meer noodzakelijk om te voorzien in

    statistische testen die tegelijk gevoelig en toch verantwoord zijn.

    Een ander punt is de nood om de gebruiker te voorzien van ergonomische tools. Command-

    line gestuurde tools zijn meestal onbruikbaar voor de doorsnee-bioloog. Enkel vlot bruikbare

    tools met een intüıtieve interface kennen een wijd verspreid gebruik onder biologen. Boven-

    dien worden zowel Windows, Mac als Unix algemeen gebruikt in de moleculaire biologie. Een

    programmeur moet dan ook veel oog hebben voor software-ontwikkeling, compatibiliteit en ge-

    bruiksvriendelijkheid. Deze plugin zorgt er dus voor dat de onderzoeker op een handige manier

    een hele set van genen kan verwerken en dan uit de grafische voorstelling van het resultaat een

    juiste conclusie kan trekken met betrekking tot het al dan niet overgerepresenteerd zijn van de

    verschillende functionele klassen. Met ander woorden de gebruiker zal te weten komen tot welke

    functionele klasse(n) de geselecteerde genen het meeste kans maken te behoren.

    Zoals men in de sectie “Vergelijking met andere GO-tools” zal merken, zijn er al verschei-

    dene tools ontwikkeld die deze functionaliteiten voorzien. Maar eigen aan de in dit document

    voorgestelde tool is dat het ingebouwd is in een heus netwerk-tool (met name Cytoscape, zie

    het hoofdstuk over Cytoscape), zodat de gebruiker een cluster genen kan selecteren in een graaf

    en nog vele andere hulpmiddelen kan gebruiken die in deze netwerk-tool aangereikt worden, dit

    allemaal in combinatie met de plugin. Ook de visualisatie op het einde van het proces is uniek

    dankzij de mogelijkheid om de structuur te bekijken aan de hand van een boom, die men dan

    kan bewaren, editeren, ...

    1.4 Korte beschrijving van de BiNGO-functionaliteit

    De eerste stap om overrepresentatie van functionele categorieën na te gaan is natuurlijk het

    selecteren van de cluster genen waarin men gëınteresseerd is. In Cytoscape kan dit zoals je in

    Windows Verkenner bijvoorbeeld een aantal mappen selecteert om te kopiëren. De knopen van

    de graaf die men te zien krijgt in het Cytoscape-venster kunnen genen of eiwitten zijn; beide

    worden met dezelfde canonische (dus unieke) naam geadresseerd. De bogen in de graaf kunnen

    eiwit-eiwit-interacties, DNA-eiwit-interacties of andere correlaties zijn.

    Van de geselecteerde knopen kunnen we de canonische naam opvragen. Via hun annotatie is het

    mogelijk aan de hand van deze naam de functionele annotaties van deze knopen op te vragen.

    De volgende stap in ons overrepresentatieproces is het uitvoeren van een statistische test op de

    genen. De distributie (bijvoorbeeld de hypergeometrische distributie) berekent in welke mate de

    7

  • geselecteerde genen tot een bepaalde GO-categorie behoren, de distributie wordt gebruikt om te

    bepalen of een bepaalde categorie significant overgerepresenteerd is in de geselecteerde cluster.

    De waarde die men bekomt is dus een probabilistische waarde en wordt meestal de “p-value”

    genoemd. Men kan deze statistische test uitvoeren tegenover het hele genoom of tegenover

    de graaf van waaruit de cluster genen geselecteerd is. Vervolgens kan men optioneel nog een

    multiple testing correctie (bv. de Benjamini & Hochberg correctie van de False Discovery Rate)

    toepassen op deze distributie. Gezien een groot aantal GO-categorieën getest worden, is dit

    noodzakelijk. De waarden die na correctie bekomen worden, krijgen meestal de naam “adjusted

    p-values” of dus gecorrigeerde p-waarden.

    De volgende fase behelst het vergelijken van de verkregen waarden (al dan niet gecorrigeerd)

    met een door de gebruiker vooropgestelde significantiegrens α. Wanneer deze drempelwaarde

    niet overschreden wordt, dan is de categorie in kwestie significant overgerepresenteerd in deze

    cluster. Gangbare waarden voor α zijn vooral 0.05 of 0.01 maar waarden die veel kleiner zijn,

    zijn niet uitzonderlijk en verhogen natuurlijk de significantie.

    De bekomen resultaten kunnen vervolgens visueel voorgesteld worden. Eerst en vooral moet een

    deelboom van de ontologieboom opgebouwd worden. Dit gebeurt door de categorieën waarvoor

    een p-value berekend is naar boven te laten propageren tot aan de wortel van de ontologieboom.

    Alle gevonden knopen en bogen worden opgenomen in de deelboom. Men kan er echter voor

    opteren om enkel deze knopen die overgerepresenteerd zijn voor of na correcties naar boven te

    laten propageren . Wanneer een categorie overgerepresenteerd is, kan men die knoop een ander

    kleurtje geven (bijvoorbeeld rood) zodat het goed opvallend is voor de gebruiker. Ook kan men

    de grootte van de knopen laten variëren naargelang het aantal genen dat tot deze categorie

    behoort. Tevens is er de optie voorzien om een gegevensbestand aan te maken met daarin alle

    belangrijke informatie in verband met het gedane onderzoek.

    Om deze tool voor overrepresentatie te integreren in Cytoscape wordt er gebruik gemaakt van

    de handige plugin-architectuur (in sectie 4.1 op pagina 29 wordt dit in detail besproken). Eens

    de plugin geladen is via enkele klikken in het menu, vindt men BiNGO in de menubalk onder

    het menu-item “Plugins” en de berekeningen en visualisatie van de overrepresentatie van een

    cluster genen kan beginnen.

    1.5 Vergelijking met andere GO-tools

    In de wereld van de bio-informatica zijn er natuurlijk nog mensen die op het idee gekomen zijn

    om een soortgelijke tool te ontwikkelen. Meestal gaat dit echter over een stand-alone tool of

    eentje met een web-interface. Een Cytoscape-plugin bestond nog niet. In deze sectie worden

    8

  • eerst de verschillende tools voorgesteld en vervolgens worden deze onderling vergeleken en ze

    worden ook vergeleken met BiNGO.

    1.5.1 Introductie GO-tools

    FatiGO

    FatiGO3 is een web-based tool van de bio-informatica groep op CNIO (Spanje) die aan een

    gegeven set van genen representatieve functionele informatie (onder- of overgerepresenteerde

    Gene Ontology termen) toewijst. De statistische significantie wordt bereikt door gebruik te

    maken van multiple-testing correctie. FatiGO is ontworpen voor functionele annotatie van DNA

    microarray data en is gelinkt aan GEPAS (Gene Expression Pattern Analysis Suite)4. FatiGO

    maakt gebruik van IDs van genen van de belangrijkste genoom en proteomische databanken

    (GeneBank5, UniProt Knowledgebase6, Unigene7, Ensembl8, etc.). [ASDUD04]

    Onto-Express

    Onto-Express9 vertaalt lijsten van genen die differentieel gereguleerd bevonden zijn in “high

    througput”-gen-expressie experimenten, in functionele profielen gebaseerd op GO. De statis-

    tische significantiewaarde wordt berekend en de resultaten worden grafisch voorgesteld als staaf-

    diagrammen, taartvoorstellingen en ook hiërarchische GO-bomen. Onto-Express is beschikbaar

    bij “Intelligent Systems and Bioinformatics Laboratory”, Wayne State University. [KDOK02]

    GOSurfer

    GoSurfer10 maakt gebruik van informatie over Gene Ontology in de analyse van sets van genen

    van “genome-wide” experimenten, micro-array analyse of andere zeer parallelle methoden. Deze

    tool maakt gebruik van rigoureuze statistische testen, interactieve grafieken en geautomatiseerde

    updating van de beschikbare annotaties voor de meest gebruikte gen-identificatoren (UniGene,

    LocusLink [PM01]) of Affymetrix probes. GoSurfer is gemaakt op “Harvard School of Public

    Health”.3http://fatigo.bioinfo.cnio.es/; FatiGO4http://gepas.bioinfo.cnio.es/; GEPAS5http://www.ncbi.nlm.nih.gov/Genbank/; GeneBank6http://www.ebi.ac.uk/uniprot/; UniProt Knowledgebase7http://www.ncbi.nlm.nih.gov/books/bv.fcgi?call=bv.View..ShowSection&rid=handbook.chapter.8578http://www.ensembl.org/; Ensembl9http://vortex.cs.wayne.edu/projects.htm#Onto-Express; Onto-Express

    10http://www.biostat.harvard.edu/complab/gosurfer/; GOSurfer

    9

  • GoMiner

    GoMiner11 is een in Java geprogrammeerd pakket dat lijsten van “interessante” genen organiseert

    (bijvoorbeeld naar boven of naar beneden gereguleerde genen van een micro-array experiment)

    om zo biologische interpretatie in de context van Gene Ontology toe te laten. Ook verschaft

    deze tool kwantitatieve en statistische uitvoerbestanden en twee bruikbare visualisaties: ten

    eerste een boomachtige structuur en ten tweede een compacte, dynamische interactieve gerichte

    acyclische graaf. De genen die voorgesteld worden in GoMiner zijn gelinkt met de belangrijkste

    publieke bio-informaticabronnen. Een tool, MatchMiner, kan gebruikt worden als preprocessor

    om de namen van de genen te bekomen die als invoer kunnen dienen voor GoMiner en andere

    GO-tools. [ZFW+03]

    GOTM (GOTree Machine)

    GOTM of voluit Gene Ontology Tree Machine12 is een web-based tool voor data-analyse en

    datavisualisatie voor sets van genen. Deze tool zorgt voor het genereren van een GOTree, een

    boomachtige structuur om te kunnen navigeren in de Gene Ontology gerichte acyclische graaf

    voor een “input gene set”. Dit systeem zorgt voor een gebruiksvriendelijke datanavigatie en vi-

    sualisatie. Statistische analyse helpt de gebruikers de belangrijkste “Gene Ontology”-categorieën

    te identificeren voor een invoerset en er worden ook biologische gebieden gesuggereerd waarvoor

    verdere studie interessant is. [ZSKS04]

    EASE

    EASE13 is een standalone softwarepakket van NIAID14 voor Windows besturingssystemen. Wan-

    neer een genenlijst die resulteert uit een microarray of een ander experiment gegeven is kan EASE

    op een snelle manier voor elke mogelijke GO-term overrepresentatiestatistieken berekenen ten

    opzichte van alle genen die voorkomen in de dataset. [HDS+03]

    1.5.2 Vergelijking GO-tools

    In tabel 1.1 op pagina 12 staat een vergelijking tussen de verschillende tools die in de vorige

    sectie besproken zijn en de voor deze scriptie ontwikkelde Cytoscape-plugin BiNGO. Een eerste

    element dat opvalt is dat BiNGO weliswaar gebruik maakt van Cytoscape maar dat Cytoscape

    op zich platformonafhankelijk is aangezien het volledig in Java geprogrammeerd is. BiNGO kan

    dus net zoals de web-gebaseerde tools op gelijk welk besturingssysteem lopen, dit in tegenstelling

    tot GoSurfer en EASE die enkel onder Windows draaien en GoMiner die enkel op Windows of11http://discover.nci.nih.gov/gominer/; GoMiner12http://www.gotm.net/; GOTM13http://www.ease.org.uk/; EASE14http://www.niaid.nih.gov/; NIAID

    10

  • Mac werkt.

    Net zoals de meeste tools, enkel FatiGO is hier een uitzondering, biedt de plugin een multi-level

    analysis aan. Men moet dus niet zoals bij FatiGO op voorhand een bepaald niveau van de

    GO-hiërarchie specificeren, alle niveau’s worden onderzocht.

    Voor de visualisatie van de overgerepresenteerde categorieën wordt er in BiNGO gebruik gemaakt

    van een gerichte acyclische graaf die bekomen wordt door de bladeren naar boven te laten

    propageren tot men aan de root komt. Er is voor deze aanpak gekozen omdat het zo voor

    de gebruiker duidelijk is waar de origine ligt van een overgerepresenteerde categorie. Ook is

    er geopteerd om deze categorieën in een rode kleur voor te stellen, ze dus te “highlighten” en

    tevens wordt er een indicatie voor het aantal genen van de cluster in die categorie weergegeven,

    dit dan in de grootte van de knoop. Andere tools doen ongeveer hetzelfde, maar geen enkele

    heeft de unieke combinatie van kleur en grootte van de knoop.

    Voor de statistische analyse werd in BiNGO geopteerd voor de hypergeometrische test en de

    binomiale test. In een latere versie komt daar dan nog de χ2-test bij. De hypergeometrische test

    is echter de belangrijkste. Hij is immers een speciaal geval van de in de literatuur veel besproken

    Fisher-test en is tevens nauwkeuriger dan de χ2-test of de binomiale test en dit vooral wanneer

    het aantal genen in de graaf of het genoom klein is.

    Omdat er gebruik gemaakt wordt van herhaalde testen om na te gaan welke categorieën over-

    gerepresenteerd zijn (Fishing), is het noodzakelijk om ten minste de mogelijkheid aan te bieden

    tot multiple testing correctie. Volgens de makers van FatiGO gaat deze hogere nauwkeurigheid

    ten koste van de snelheid, maar in de praktijk is er van deze slechtere performantie niets te

    merken. Toch is multiple testing correctie om deze reden niet gëımplementeerd in GOTM.

    Wat ook nog een voordeel is voor de nieuw ontwikkelde plugin is dat BiNGO en het moe-

    derprogramma Cytoscape volledig gratis zijn, dit in tegenstelling tot Onto-Express dat slechts

    gedeeltelijk gratis is.

    Het laatste en tevens grootste voordeel bij BiNGO is dat het gëıntegreerd is in een breder visuali-

    satieproduct (Cytoscape). Zo kunnen clusters makkelijk gëımporteerd worden, makkelijk op een

    natuurlijke wijze geselecteerd worden in de grafische omgeving die het moederprogramma aan-

    biedt. Ook de export van de resultaten kan zo op een duidelijke manier gebeuren door gebruik te

    maken van de grafische mogelijkheden van Cytoscape. Er is op deze manier ook mogelijkheid tot

    combinatie met andere tools en plugins. Zo kan bijvoorbeeld in de toekomst BiNGO uitgebreid

    worden met graaf-clustering, scriptie-onderwerp voor het academiejaar 2004-2005.

    11

  • Tab

    el1.

    1:V

    erge

    lijki

    ngG

    O-T

    ools

    Fati

    GO

    Ont

    o-E

    xpre

    ssG

    oSur

    fer

    GoM

    iner

    GO

    TM

    EA

    SEB

    iNG

    O

    Inte

    rfac

    e/O

    SW

    ebW

    ebW

    indo

    ws

    Win

    dow

    s/M

    acW

    ebW

    indo

    ws

    alle

    OS

    Mu l

    ti-lev

    elan

    alys

    isN

    eeJa

    JaJa

    JaJa

    Ja

    Vis

    ualis

    atie

    van

    decl

    assi

    ficat

    ie

    Staa

    fdia

    gram

    ,ta

    bel,

    fixed

    tree

    Staa

    fdia

    gram

    ,ta

    bel

    Fix

    edtr

    eeE

    xpan

    dabl

    etr

    ee,

    geri

    chte

    acyc

    lisch

    egr

    aaf

    Exp

    anda

    ble

    Tre

    e,st

    aafd

    i-ag

    ram

    ,fix

    edtr

    ee

    data

    best

    and

    Fix

    edtr

    ee,

    data

    best

    and

    Stat

    isti

    sche

    anal

    yse

    Fis

    her’

    sex

    act

    test

    Bin

    omia

    lte

    st,

    χ2

    test

    ,Fis

    her’

    sex

    act

    test

    χ2-t

    est

    Fis

    her’

    sex

    act

    test

    Hyp

    erge

    o-m

    etri

    sche

    test

    Hyp

    erge

    o-m

    etri

    sche

    test

    Hyp

    erge

    o-m

    etri

    sche

    test

    ,B

    inom

    iale

    test

    (,χ

    2-t

    est)

    Cor

    rect

    ievo

    orm

    ulti

    -pl

    ete

    stin

    g

    JaJa

    Nee

    Nee

    Nee

    JaJa

    Vis

    ualis

    atie

    van

    deov

    erge

    re-

    pres

    ente

    erde

    GO

    -ca

    tego

    rieë

    n

    Staa

    fdia

    gram

    ,ta

    bel

    Staa

    fdia

    gram

    ,ta

    bel

    Hig

    hlig

    htin

    devo

    lledi

    geG

    OTre

    e

    Hig

    hlig

    htin

    dege

    rich

    teac

    yclis

    che

    graa

    f

    Hig

    hlig

    htin

    dege

    rich

    teac

    y-cl

    isch

    egr

    aaf,

    staa

    fdia

    gram

    data

    best

    and

    Hig

    hlig

    htin

    dege

    rich

    teac

    yclis

    che

    graa

    f

    Kos

    tpri

    jsG

    rati

    sG

    edee

    ltel

    ijkgr

    atis

    Gra

    tis

    Gra

    tis

    Gra

    tis

    Gra

    tis

    Gra

    tis

    Inte

    grat

    iein

    bred

    ervi

    sual

    isat

    iepa

    kket

    Nee

    Nee

    Nee

    Nee

    Nee

    Nee

    Ja:

    Cyt

    osca

    pe

    12

  • Hoofdstuk 2

    Introductie Cytoscape

    2.1 Wat is Cytoscape?

    Cytoscape is een open source en platformonafhankelijk computerprogramma dat gebruikt wordt

    voor het integreren van biomoleculaire interactienetwerken met “high-throughput”-expressiedata

    en andere moleculaire data tot een globaal conceptueel framework. Het programma is toepasbaar

    op om het even welk moleculair systeem van componenten en interacties, maar is het krachtigst

    wanneer het gebruikt wordt voor grote databanken van protëıne-protëıne, protëıne-DNA en

    genetische interacties die steeds in grotere mate beschikbaar zijn voor mens- en modelorganis-

    men. Een software “Core” verschaft een basisfunctionaliteit voor lay-out en bevraging van het

    netwerk voor visuele integratie van het netwerk met expressieprofielen, fenotypen en andere

    moleculaire toestanden en voor het linken van netwerken met databanken van functionele an-

    notaties. De “Core” is uitbreidbaar door een ongecompliceerde plug-in architectuur, die snelle

    ontwikkeling van extra “features” en nieuwe computationele analyses toelaat. De Cytoscape

    Core is platformonafhankelijk en kan dus worden uitgevoerd op de meeste besturingssystemen.

    Bovendien is ze gratis ter beschikking op de Cytoscape website (www.cytoscape.org) als een

    open source Java Application. Het programma is ook uitvoerbaar vanop het web dankzij Java

    Web Start. Het grootste deel van dit hoofdstuk is gebaseerd op [SMO+03].

    2.2 Hoe is Cytoscape ontstaan?

    Door de exponentiële groei van experimentele technologieën om moleculaire interacties en toe-

    standen te karakteriseren, ontstond de nood aan software tools om de enorme hoeveelheid data te

    verwerken en te analyseren. Om data van moleculaire interacties te organiseren en voor te stellen

    in een tweedimensionaal netwerk zijn er viewers beschikbaar die voor meerdere doeleinden bruik-

    baar zijn (bijvoorbeeld: Pajek [BM98], Graphlet1, daVinci2). Meer gespecialiseerde tools zoals1http://www.infosun.fmi.uni-passau.de/Graphlet/; Graphlet Toolkit 5.0.12http://www.informatik.uni-bremen.de/daVinci/; daVinci V2.1

    13

  • Osprey3 en PIMrider4 verschaffen ook deze functionaliteiten, maar linken ook het netwerk aan

    moleculaire interactie-databanken en functionele databanken zoals BIND [BDW+01], DIP [XE01]

    of TRANSFAC [WCF+01]. Vergelijkbaar zijn er voor gen-expressieprofielen en andere molecu-

    laire data verschillende programma’s ter beschikking voor clustering, classificatie en visualisatie

    (bijvoorbeeld: GeneCluster [TDM+99], TreeView [ESBB98], GeneSpring5). Ondanks deze vele

    toepassingen blijft er nog de dringende nood aan software die zowel moleculaire interacties als

    metingen van de moleculaire toestand (zoals bijvoorbeeld mate van gen-expressie) integreren in

    een gemeenschappelijk framework, om dan deze data te beschrijven met een wijd assortiment van

    modelparameters en andere biologische attributen. Bovendien is een flexibel en open systeem

    nodig om algemene en uitbreidbare berekeningen op het interactienetwerk te kunnen imple-

    menteren [Kar01]. Want het is door deze berekeningen dat “high-level” (dus meer algemene)

    interactie data kunnen gekoppeld worden aan, en een drijfveer zijn voor, de ontwikkeling van

    “low-level” (dus meer specifieke) fysico-chemische modellen. Om aan deze noden te voldoen, is

    Cytoscape ontwikkeld door The Institute for Systems Biology in samenwerking met The Uni-

    versity of California te San Diego en The Memorial Sloan-Kettering Cancer Center.

    2.3 De Cytoscape “Core”-functionaliteit en -architectuur

    De basisvoorstelling van biologische data in Cytoscape is een graaf, met de moleculaire entiteiten

    (i.e. eiwitten of genen) voorgesteld door knopen en de intermoleculaire interacties voorgesteld

    door bogen tussen de knopen. De Cytoscape Core software voorziet basisfunctionaliteit voor het

    integreren van arbitraire data in de graaf, representatie van de graaf en de gëıntegreerde data,

    selectie- en filtertools en een interface naar externe methodes gëımplementeerd als plugins.

    2.3.1 Data-integratie

    Bijkomende data zijn gëıntegreerd in het graafmodel door gebruik te maken van attributen. Dit

    zijn (naam, waarde)-paren die knopen of bogen mappen op specifieke datawaarden. Bijvoor-

    beeld, de knoop met de naam “GAL4” kan een attribuut hebben dat “expression ratio” heet en

    een waarde van 3,41 heeft. De attribuutwaarden kunnen van gelijk welk type zijn (bijvoorbeeld:

    strings, discrete of continue getallen, URLs of lists) en ze worden ofwel geladen van een data-

    bank, ofwel dynamisch gegenereerd in de sessie zelf. Grafische browsers laten de gebruiker toe

    alle attributen van de op dat moment geselecteerde knopen en bogen te onderzoeken.3http://biodata.mshri.on.ca/; Osprey Network Visualization System4http://pim.hybrigenics.com/; PIMRider5http://www.silicongenetics.com/; GeneSpring 5.0

    14

  • 2.3.2 Annotatietransfer

    Waar een attribuut één enkel predicaat van een knoop of boog voorstelt, representeert een on-

    tologie een hiërarchische classificatie (vormelijk een gerichte acyclische graaf) van progressief

    meer specifieke beschrijvingen van eigenschappen van knopen of bogen. Typisch corresponderen

    ontologieën met een bestaande kennisbank die groot, complex en relatief statisch is, zoals bij-

    voorbeeld de “Gene Ontology”-database [ABB+01]. “Hexose metabolism”, dat gedefinieerd

    is op niveau 6, bijvoorbeeld, vertakt op niveau 7 in meer specifieke processen zoals “galactose

    metabolism” en “glucose metabolism”. Cytoscape integreert annotaties met andere netwerk-

    datatypes door de gewenste niveau’s van annotatie in de ontologie te transfereren op knoop-

    of boogattributen. Door gebruik te maken van de “annotation controller” is het mogelijk om

    meerdere niveau’s actief en in beeld te hebben op hetzelfde moment, elk als een verschillend

    attribuut van de knopen en bogen waarin men gëınteresseerd is.

    2.3.3 Graaf lay-out

    Eén van de meest fundamentele tools voor het interpreteren van moleculaire interactiedata is de

    visualisatie van knopen en bogen door een tweedimensionaal netwerk [TBET99]. De vroegere

    versie van Cytoscape ondersteunde verscheidene geautomatiseerde algoritmen voor netwerklay-

    out zoals spring-embedded lay-out, hiërarchische lay-out en circulaire lay-out. Van deze is spring-

    embedded layout de meest gebruikte methode voor het opstellen van algemene tweedimensionale

    grafen [Ead84]. Deze methode modeleert een mechanisch systeem in hetwelke de bogen van de

    graaf corresponderen met Hookse veren, die een aantrekkingskracht uitoefenen tussen knopen

    die ver uiteen liggen en een afstotende kracht tussen knopen die dicht bij elkaar liggen. Voorlopig

    is enkel deze spring-embedded lay-out gëımplementeerd in de nieuwste versie van Cytoscape, al

    bestaat er wel al een plugin die de functionaliteit van een hiërarchische lay-out aanbiedt.

    2.3.4 Attribuut-Naar-Visueel mapping

    Zoals de lay-out de locatie van de knopen en de bogen in het venster bepaalt, laat een attribuut-

    naar-visueel mapping data-attributen toe het uitzicht van de met die attributen geassocieerde

    knopen en bogen te controleren. Cytoscape ondersteunt een grote verscheidenheid aan visuele

    eigenschappen zoals kleur, vorm en grootte van de knopen; kleur en dikte van de knooprand en

    kleur, dikte en stijl van de bogen. Een data-attribuut wordt gemapt op een visuele eigenschap

    door gebruik te maken van ofwel een “lookup table”, ofwel interpolatie, afhankelijk van het

    discreet of continu zijn van de waarde van het attribuut. Door visueel expressiewaarden te

    plaatsen op de interactiepaden die verondersteld zijn die waarden te reguleren, connecteren

    attribuut-naar-visueel mappings de geobserveerde data rechtstreeks met een onderliggend model.

    15

  • 2.3.5 Graafselectie en -filteren

    Om de complexiteit van een groot netwerk van moleculaire interacties te verminderen, is het

    noodzakelijk om selectief subsets van knopen en bogen voor te stellen. Knopen en bogen kunnen

    geselecteerd worden volgens een grote variëteit aan criteria, zoals selectie via naam, via een

    lijst van namen of op basis van een attribuut. Meer complexe netwerkselectie-queries worden

    ondersteund door een filter-toolbox die bestaat uit onder andere een “dichtste buur”-filter, die

    knopen selecteert met een minimum aantal buren binnen een vooraf bepaalde afstand in het

    netwerk; een “Local Distance”-filter, die knopen selecteert binnen een gespecificeerde afstand

    van een groep van vooraf geselecteerde knopen; een “Differential Expression”-filter, die knopen

    selecteert volgens de met hen geassocieerde expressie-data; een combinerende filter, die knopen

    selecteert via arbitraire AND/OR-combinaties van andere filters.

    2.3.6 Plugin-interface

    Plugin-modulen verschaffen een krachtige manier om de Cytoscape Core uit te breiden om

    nieuwe algoritmen, additionele netwerkanalyses en/of biologische semantiek te implementeren.

    Plugins krijgen toegang tot het netwerkmodel van de “Core” en kunnen ook de voorstelling van

    het netwerk beheren. Ook al is de Cytoscape Core open source, toch zijn plugins afzonderlijke

    stukken software die beschermd kunnen zijn door gelijk welke licentie die de plugin-auteur ver-

    langt. De reeds genoemde hiërarchische lay-out (sectie 2.3.3 op pagina 15) is een voorbeeld van

    een dergelijke plugin en ook het programma dat het doel is van deze scriptie is een plugin voor

    Cytoscape. In sectie 4.1 op pagina 29 gaan we verder in op plugins en wordt er ook besproken

    hoe deze te implementeren.

    2.4 Graph INterface librarY (GINY)

    Cytoscape maakt voor de visualisatie van grafen gebruik van een grafische bibliotheek: Graph

    INterface librarY of kortweg GINY6. GINY implementeert een zeer innovatief systeem voor

    deelgrafen en laat verbluffende visualisatie toe. Bovendien is deze bibliotheek open source (net

    zoals Cytoscape dus), is ze voorzien van een aantal lay-outalgoritmen en is ze ontworpen met

    een zeer intüıtieve API. Andere grafische pakketten hebben niet al deze voordelen. Zo zijn

    bijvoorbeeld Y-Files7 en Tom Sawyer8 duur en dat hoge prijskaartje vormt een barrière om

    onafhankelijke programmeurs aan een applicatie of plugin te laten werken die deze pakketten

    gebruikt. Ook is het onmogelijk om de code van het pakket te modifiëren voor eigen gebruik6http://csbi.sourceforge.net/; GINY7http://www.yworks.com/en/products yfiles about.htm; Y-Files8http://www.tomsawyer.com/home/index.php; Tom Sawyer

    16

  • gezien het geen open source bibliotheken betreft. Vroeger was Cytoscape opgebouwd met het

    grafische pakket Y-Files, maar wegens de kostprijs is dit pakket in de recentste versie van

    Cytoscape volledig vervangen door GINY. JGraph9 beantwoordt ook niet echt aan de noden

    van Cytoscape. JGraph is wel meer design-georiënteerd, maar komt tekort inzake operaties op

    de grafen. GINY specifieert bovendien enkel een set van interfaces, zo kunnen andere pakketten

    geadapteerd worden om GINY-interfaces te implementeren.

    2.5 De Cytoscape “Core”-Objecten

    Cytoscape bevat verscheidene “Core”-objecten10 die de essentiële datastructuren en venster- en

    user interface-objecten inhouden. Deze objecten worden gebruikt door de andere objecten van

    Cytoscape en door de plugins. Vroeger bestond er één monolithische klasse CytoscapeWindow,

    maar bij het heropbouwen van Cytoscape zonder Y-Files heeft men ervoor geopteerd om meerdere

    objecten te maken. In deze sectie gaan we kort kennismaken met deze “Core”-objecten. Een

    grafische voorstelling van de Cytoscape “Core” ziet u in figuur 2.1 op pagina 17.

    Figuur 2.1: Grafische voorstelling van de Cytoscape “Core”

    9http://www.jgraph.com/; JGraph10http://projects.systemsbiology.net/cytoscape/coreDesign/coreObjects.html; “Core”-Objects

    17

  • 2.5.1 CyNetwork

    De klasse CyNetwork representeert een graaf/netwerk en de daarmee geassocieerde data. Dit ob-

    ject is het centrale data-object van Cytoscape. CyNetwork bevat een referentie naar de volgende

    objecten:

    • De graaf wordt voorgesteld door het grafische pakket GINY. Een graafmodel in GINY,dat natuurlijk bestaat uit knopen en bogen tussen die knopen, wordt opgesplitst in Root-

    Graphs en GraphPerspectives. De RootGraphs bevatten alle knopen en bogen in een

    graaf, terwijl de GraphPerspectives een subset van die knopen en bogen bevatten (gelijk

    welke GraphPerspective mag alle knopen en bogen van zijn RootGraph bevatten, maar

    het hoeft dat niet te doen). Elke GraphPerspective heeft exact één RootGraph, maar de

    Rootgraphs mogen gelijk welke hoeveelheid aan GraphPerspectives hebben. Een Graph-

    Perspective wordt bijvoorbeeld gebruikt wanneer men heel het interactienetwerk van gist

    inlaadt en men enkel de GAL-genen wil bekijken. Dit gebeurt door het inladen van het

    hele netwerk in de RootGraph en van dit netwerk dan een GraphPerspective verkrijgen

    die enkel de GAL-genen bevat.

    • Twee instanties van het GraphObjAttributes-object (met name nodeAttributes en edge-Attributes) bevatten de data-attributen die horen bij de knopen en bogen.

    • Het ExpressionData-object tenslotte bevat een bundel van expressie-data metingen zoalsmicroarray-data. De klasse ExpressionData voorziet de gebruiker van een parser voor

    het gebruikelijke bestandsformaat voor expressie-data en een interface voor het toegang

    verschaffen tot de data. Onder het gebruikelijke bestandsformaat voor expressie-data

    verstaan we dat “tokens” alfanummerieke waarden zijn die gescheiden worden door wit-

    spaties, dat alle lijnen (buiten de hoofding) hetzelfde aantal tokens bevatten met informatie

    over de genen en dat de hoofding de eerste lijn van het bestand is. Natuurlijk moeten alle

    lijnen met informatie over de genen en ook de hoofding voldoen aan bepaalde vormeisen,

    maar daar dieper op ingaan zou ons te ver leiden. Dit object kan ook andere data dan

    expressiedata voorstellen.

    De klasse CyNetwork heeft een listener-architectuur voor het op de hoogte stellen van luiste-

    raars wanneer iemand operaties aan het uitvoeren is op het netwerk. Algoritmen moeten de

    beginActivity-methode aanroepen vóór er op het netwerk gewerkt wordt en de endActivity-

    methode aanroepen wanneer de bewerkingen gedaan zijn.

    18

  • 2.5.2 CyWindow

    CyWindow bevat alle “view”- en “user interface”-componenten die geassocieerd worden met het

    voorstellen van de graaf en het beheren van de user interface. Het is het meest gecompliceerde ob-

    ject dat uit CytoscapeWindow is voortgevloeid, aangezien het alles bevat waarvoor de ontwikke-

    laars nergens anders een gepast plekje vonden. Later kunnen de ontwikkelaars van Cytoscape

    er toch nog voor opteren om bepaalde delen van CyWindow op te delen in kleinere stukken. Een

    reeds bestaand voorbeeld hiervan is de klasse CyMenus, die de creatie van alle menu’s en tool-

    bars voor zich neemt. Het CyWindow-object bevat een referentie naar onder andere de volgende

    objecten:

    • Het CyNetwork-object van sectie 2.5.1 op pagina 18.

    • Het CyMenus-object waarvan sprake in deze sectie.

    • Het GraphView-object van GINY dat instaat voor de visualisatie, dus het tekenen van degraaf.

    • Het “visual mapping system” dat zegt hoe de knopen en de bogen van de graaf getekendmoeten worden. Het maakt gebruik van functies die door de gebruikers gedefinieerd zijn

    om waarden van verscheidene attributen (zoals bijvoorbeeld de kleur ervan) te berekenen

    door gebruik te maken van data-attributen die aan elke knoop en boog vastgehangen

    zijn. Hier wordt de “Attribuut-Naar-Visueel mapping” uit sectie 2.3.4 op pagina 15 dus

    gëımplementeerd.

    2.5.3 CytoscapeObj

    De CytoscapeObj-klasse wordt op dit moment gebruikt als een container die alles bevat wat niet

    bij een netwerk- of vensterklasse past. Dit zijn over het algemeen objecten die uniek zijn binnen

    één instantie van Cytoscape en het zijn ook objecten waartoe iedereen toegang wil hebben. Het

    CytoscapeObj-object bevat een referentie naar de volgende objecten die de zojuist beschreven

    eigenschappen bezitten:

    • Het CytoscapeConfig-object: Om Cytoscape te laten lopen worden er een aantal para-meters gebruikt die door de gebruiker kunnen opgeroepen worden en die gebruikt worden

    om te bepalen wat er moet gedaan worden. Bijvoorbeeld of er bepaalde “features” moeten

    toegepast worden (enabled) of niet (disabled), welke data er moeten opgeladen worden

    en waar deze bestanden te vinden zijn, welke plugins er moeten geladen worden, . . . De

    meeste van deze parameters zitten in het CytoscapeConfig-object. Dit object bestaat

    voornamelijk uit boolese vlaggen of String-variabelen die aangeven wat er moet gebeuren.

    19

  • • Het BioDataServer-object: De BioDataServer is een complex systeem dat informatieverschaft over bepaalde objecten. Algemeen beschouwd kan men via de naam van een

    entiteit (dit is een gen of een eiwit of een sequentie) en de species tot dewelke het behoort,

    verscheidene soorten informatie bekomen die met deze naam gerelateerd zijn. Men kan

    bijvoorbeeld een lijst van gekende synoniemen voor een dergelijke entiteit opzoeken. Ook

    de canonische naam die met een bepaald synoniem geassocieerd is, kan verkregen worden

    met behulp van dit object. Bovendien kan men wanneer de naam van een ontologie

    (bijvoorbeeld “GO Biological Process”) gegeven is, toegang krijgen tot de boom van de

    annotatie-informatie voor een entiteit, inzake de gewenste ontologie.

    • Het CalculatorCatalog-object: Voor elk venster is er een eigen “visual mapper” omhet uiterlijk van de knopen en de bogen te bepalen. Om alle gekende visualisatiestij-

    len die gebruikt worden te bewaren, bestaat er één enkel globaal object, met name het

    CalculatorCatalog-object.

    20

  • Hoofdstuk 3

    Statistische analyse

    In dit hoofdstuk wordt de theoretische uiteenzetting gegeven van de statistische analyse van de

    data. Eerst wordt er algemeen uiteengezet wat het toetsen (testen) van hypothesen behelst.

    Een tweede deel gaat over de verschillende testen die in BiNGO gëımplementeerd zijn. Elke

    test heeft eigen karakteristieken en dus werd er geopteerd om de gebruiker zelf de keuze te laten

    tussen de verscheidene distributies die hem of haar aangereikt worden. De derde sectie van dit

    hoofdstuk gaat over correcties voor multiple testing. De gebruiker is vrij om te kiezen of hij een

    correctie op deze testen wil of niet en zo ja welke correctie zijn voorkeur wegdraagt.

    3.1 Algemene principes toetsen van hypothesen

    In de wereld van de wetenschap, biologie, farmacie, . . .moeten er dikwijls binaire beslissingen

    genomen worden. Er moet dan een keuze gemaakt worden tussen Ja en Nee. Enkele voorbeelden

    die in de praktijk veel voorkomen:

    • Is deze man de vader van deze jongen?

    • Is deze man HIV-positief?

    • . . .

    • en ook is een bepaalde groep genen die tot een bepaalde categorie behoort overgerepre-senteerd?

    In de gegeven voorbeelden is er altijd sprake van “een effect of associatie” van één variabele met

    een andere in de doelpopulatie. In de wetenschap kan de bewering dat de ene variabele met de

    andere geassocieerd is, onderzocht worden door het al dan niet verwerpen van de nulhypothese

    dat er geen associatie zou zijn tussen de twee variabelen. Op basis van lukrake observaties

    21

  • beslist men dan om al dan niet de nulhypothese te verwerpen in het voordeel van de alternatieve

    hypothese. Als men niet de hele populatie observeert, bestaat steeds een kans op een foute

    beslissing met betrekking tot die populatie. Een goed uitgevoerde statistische toets zal de kans

    op belangrijke fouten a priori berekenen en binnen gecontroleerde grenzen houden.

    Concreet wordt bij een statistische toetsingsprocedure eerst een nulhypothese (H0) en een alter-

    natieve hypothese (HA) opgesteld. De nulhypothese zal men wensen te verwerpen ten voordele

    van de alternatieve hypothese. Een voorbeeld van een dergelijke nulhypothese is:

    • H0: de groep genen die tot een bepaalde categorie behoort is overgerepresenteerd.

    • HA: de groep genen die tot een bepaalde categorie behoort is niet overgerepresenteerd.

    De volgend stap is een eenvoudige toetsingsgrootheid T definiëren, een variabele die men op

    basis van de observaties kan berekenen (zoals bijvoorbeeld de hypergeometrische distributie). T

    moet zodanig gekozen zijn dat:

    • er zoveel mogelijk informatie met betrekking tot de discriminatie tussen nulhypothese enalternatief in T is samengevat,

    • de theoretische verdeling van T (bij benadering) gekend is in de veronderstelling dat denulhypothese waar is.

    De derde stap is een beslissingscriterium definiëren voor de toets. Als de geobserveerde waarde

    van T “te extreem” ligt ten opzichte van haar verdeling onder H0, zal men H0 verwerpen ten

    voordele van het alternatief. Een goed gedefinieerde toetsingsprocedure moet a priori aangeven

    wanneer H0 verworpen wordt ten voordele van HA, bijvoorbeeld van zodra men onder H0hoogstens 5% kans heeft om een uitkomst te observeren die minstens zo extreem is als de

    geobserveerde T -waarde. Door de beslissing op deze laatste manier te nemen, aanvaardt men

    een gecontroleerde kans op een type I-fout : H0 verwerpen op basis van de geobserveerde gegevens

    terwijl H0 in de doelpopulatie in werkelijkheid toch waar is, dit is dus een vals positief. Hierboven

    werd de kans op een type I-fout kleiner of gelijk aan 5% genomen. In het algemeen wordt die

    maximaal getolereerde kans met α aangeduid en wordt ze de betrouwbaarheid(sdrempel) of het

    significantieniveau (significance level) van de toets genoemd.

    De vierde en laatste stap is het beperken van de kans op een type II-fout : H0 niet verwerpen op

    basis van de geobserveerde gegevens terwijl H0 in de doelpopulatie toch NIET waar is maar het

    alternatief HA geldt, dit komt dus overeen met een vals negatief. Een andere manier om een type

    II-fout in woorden te omschrijven is: niet in staat zijn om een echt alternatief HA te ontdekken.

    De kans op een type II-fout voor een specifiek alternatief wordt meestal met β aangeduid en

    1−β (de kans om dat specifieke alternatief wel te ontdekken) wordt het onderscheidingsvermogen

    22

  • (power) van een toets genoemd.

    De volgende tabel vat de beslissingsmogelijkheden nog eens samen:

    Tabel 3.1: Beslissingsmogelijkheden bij nulhypothesen

    H0 is waar HA is waar

    H0 verworpen type I-fout correcte uitspraak

    kans α kans 1− β

    H0 niet verwor-

    pen

    correcte uitspraak type II-fout

    kans 1− α kans β

    In het algemeen wenst men een statistische toets te hanteren die zowel de type I-fout als de

    type II-fout zo klein mogelijk maakt. Maar als α kleiner wordt, verwerpt men de nulhypothese

    minder vaak en wordt β automatisch groter. We zullen daarom eerst α fixeren en daarna op

    zoek gaan naar een test die voor die vaste α een zo klein mogelijke β heeft, en dus de power zo

    groot mogelijk maakt.

    Een toets waarbij slechts een alternatief in één richting wordt beschouwd noemt men éénzijdige

    toets in tegenstelling tot een tweezijdige toets waarbij men niet a priori aangeeft in welke richting

    men een verschil verwacht.

    De p − waarde van een test geeft de kleinste α-waarde aan waarbij de test H0 nog net zouverwerpen. Of anders uitgedrukt: de p-waarde van een uitgevoerde toets is de kans onder de

    nulhypothese om een toetsresultaat te bekomen dat evenzeer of meer extreem is dan dat wat

    geobserveerd werd. Dus als de p-waarde zeer klein is, wordt zelfs bij een zeer strenge grens op de

    type I-fout (kleine α) de nulhypothese toch nog verworpen. Hoe kleiner de p-waarde hoe meer

    “significant” het testresultaat afwijkt van de verwachting onder de nulhypothese. Het aangeven

    van een p-waarde voor een toets geeft meer informatie over het resultaat dan een eenvoudige

    verklaring van al dan niet significant op een vast gekozen α-niveau. [VVDVA03]

    3.2 Bespreking van de verschillende gëımplementeerde testen

    Er kunnen verschillende statistische benaderingen gebruikt worden om een p-value te berekenen

    voor elke functionele categorie F. Stel dat er N genen op de graaf gebruikt worden. Om het

    even welk gen heeft de eigenschap dat die ofwel tot categorie F behoort ofwel er geen lid van

    is. Met andere woorden kan men dus stellen dat de N genen uit twee categorieën bestaan: F

    23

  • en niet-F (NF ). De onderzoekers gebruiken de data-analyse methode van hun keuze om die

    genen te selecteren die voor hun experiment kunnen dienen. In Cytoscape kan men bijvoorbeeld

    manueel de knopen in de graaf selecteren waarvan men wil weten of ze overgerepresenteerd zijn.

    Laat ons veronderstellen dat ze een subset van X genen gekozen hebben. We stellen vast dat x

    van deze X genen tot F behoren en we willen uitzoeken wat de probabiliteit is dat dit gebeurt.

    Dus onze vraag is: gegeven N genen van de welke er n tot F behoren en N - n tot NF behoren,

    we nemen op een willekeurige manier X genen en we vragen ons af wat de probabiliteit is dat

    we x genen of meer van type F hebben.

    3.2.1 Hypergeometrische test

    We kunnen dit aanpakken als bemonsteren zonder terugzetten. Dan kan de kans dat een

    bepaalde categorie x keer voorkomt worden berekend met de hypergeometrische distributie met

    de parameters (X, N, n) [THC+99]:

    P (x|X, N, n) = (nx)(N−nX−x)

    (NX)

    Voortgaande op deze formule kan de p-value die uitdrukt of er x-1 genen of minder behoren tot

    F, berekend worden door het optellen van de probabiliteiten van een willekeurige lijst van X

    genen met 1, 2, . . . , x genen die behoren tot categorie F [CB02] [THC+99]:

    p =x−1∑i=0

    (ni )(N−nX−i )(NX)

    Dit komt overeen met een éénzijdige test in dewelke kleine waarden voor p overeenkomen met

    ondergerepresenteerde categorieën. De waarden voor p voor overgerepresenteerde categorieën

    kunnen berekend worden met:

    p = 1−x−1∑i=0

    (ni )(N−nX−i )(NX)

    De uitkomst wordt dan vergeleken met een drempelwaarde α die als veel gebruikte waarden 0.05

    en 0.01 heeft. Stel men heeft een significantiegrens van 0.01 of dus 1%, dan zoekt men naar

    instanties waarvan de probabiliteit dat de overeenkomst toevallig is, kleiner is dan 1%. Wanneer

    bovenstaande som kleiner is dan die α heeft men te maken met overrepresentatie. [DKM+03] De

    test meet of een cluster meer genen bevat van een bepaalde categorie dan er verwacht wordt bij

    toeval. Bijvoorbeeld als de meerderheid van genen die in een cluster voorkomen tot één categorie

    behoren dan is de probabiliteit laag dat dit gebeurt door toeval en heeft p een waarde dicht bij

    nul. [WHD+02] [Fel68]

    De hypergeometrische test is een specifiek geval van de in de literatuur veel voorkomende Fisher’s

    24

  • Exact test [KKF+81]. Bij deze test moet er een tweede cluster opgegeven worden. Wanneer

    men voor die cluster al de genen kiest die niet tot X maar wel tot N behoren (dus tot N-X )

    dan bekomt men de hypergeometrische test. Om deze reden en ook omdat nog een extra cluster

    selecteren niet interessant is voor de gebruiker, heb ik geopteerd om deze test niet in de plugin

    op te nemen.

    3.2.2 Binomiale test

    Het is algemeen geweten dat wanneer N groot is, de hypergeometrische test naar de binomiale

    test gaat. In tegenstelling tot de hypergeometrische test is dit een test mét terugleggen. Wanneer

    de binomiale test gebruikt wordt, wordt de probabiliteit dat er x genen behoren tot F in een

    set van X willekeurig gekozen genen, berekend door middel van de klassieke formule van de

    binomiale kans. In deze formule wordt de kans op het extraheren van één gen uit F, geschat

    door de verhouding n/N,

    P (x|X, n/N) =(

    Xx

    ) (nN

    )x (1− nN )X−x ,en de p-value kan dan berekend worden door:

    p = 1−x−1∑i=0

    (Xi

    ) (nN

    )i (1− nN )X−iDeze test levert een betere rekentijd op dan de hypergeometrische en zoals gezegd is ze voor

    grote sets zelfs hetzelfde. Het spreekt dus voor zich dat deze test vooral toepassingen vindt

    wanneer men met grote hoeveelheden gegevens werkt.

    3.2.3 χ2-test

    Een alternatieve benadering van ons probleem is de χ2-test voor gelijkheid van proporties [FvB93].

    Om deze test toe te passen kan er gebruik gemaakt worden van een dataorganisatie zoals in on-

    derstaande tabel.

    Tabel 3.2: Dataorganisatie voor χ2-test

    Genes on chip Differentially re-

    gulated genes

    Having function F n11 n12 N1. =∑2

    j=1 n1j

    Not having F n11 n11 N2. =∑2

    j=1 n2j

    N.1 =∑2

    i=1 ni1 N.2 =∑2

    i=1 ni2 N.. =∑

    i,j nij

    25

  • De punt-notatie in de tabel in de index van sommige variabelen wordt gebruikt om de som-

    matie naar deze index aan te duiden. Bij deze notatie wordt het aantal genen op de micro-array

    voorgesteld door N = N.1, het aantal van deze genen dat tot categorie F behoort wordt gerepre-

    senteerd door n = n11. Het aantal geselecteerde genen wordt voorgesteld door X = N.2 en het

    aantal van deze genen dat tot categorie F behoort wordt voorgesteld door x = n12. De andere

    elementen uit de tabel zijn te verklaren aan de hand van de hierboven aangehaalde notaties.

    Gebruik makend van deze notatie kan men de waarde van de χ2-statistiek , die nodig is voor de

    χ2-test, als volgt berekenen:

    χ2 =N..(|n11n22−n12n21|−N..2 )

    2

    N1.N2.N.1N.2

    De waarde die men zo bekomt kan dan vergeleken worden met de kritische waarden die men kan

    bekomen via de χ2-distributie met df = (2− 1).(2− 1).

    In de huidige versie van BiNGO is deze statistische test nog niet gëımplementeerd. In een la-

    tere versie zal deze test zeker opgenomen worden. Gezien de architectuur van de plugin is het

    toevoegen van een statistische test geen probleem (zie sectie 4.3 op pagina 35).

    3.3 Bespreking van de verschillende correcties

    “Multiple testing corrections” (zoals de correcties eigenlijk voluit noemen) stellen de p-waarde

    bij die men heeft afgeleid uit de gebruikte statistische test en dienen om het voorkomen van

    vals positieven te corrigeren. Wanneer er immers getest wordt om potentiële significantie na te

    gaan, wordt elke GO-categorie afzonderlijk van de rest beschouwd. Met andere woorden een

    test wordt op elke individuele categorie uitgevoerd. Het voorkomen van vals positieven of met

    andere woorden genen die valselijk overgerepresenteerd genoemd worden (een type I-fout dus)

    is proportioneel ten opzichte van het aantal uitgevoerde testen en het significantieniveau α.

    Om dit te verduidelijken kunnen we een doos nemen met twintig knikkers, waarvan er 19 blauw

    zijn en één rood. Wat is dan de kans dat men de rode eruit haalt? Juist, één op twintig. Stel

    nu dat men twintig keer een knikker uit de doos haalt (en er terug instopt). Zo zal er natuurlijk

    een grotere kans zijn om de rode knikker uit de doos te halen. Dit is één min de kans dat men

    20 keer een blauwe knikker trekt of dus 1− (19/20)20 = 64%. Exact hetzelfde gebeurt wanneerenkele honderden categorieën terzelfder tijd getest worden. Stel dat de blauwe knikkers “true

    positive test results” zijn en de rode knikker een vals positief testresultaat is, dan is de kans

    dat er vals positieven optreden groter naarmate het aantal categorieën toeneemt waarop men

    een statistische test toepast. Stel men heeft één test met α = 0, 05 dan is er 5% kans op een

    type I-fout. Wanneer men dan 100 testen heeft (meerdere testen uitvoeren na elkaar krijgt de

    26

  • benaming ’fishing’), dan is het gemiddeld aantal type I-fouten gelijk aan 5 (i.e. 0, 05×100). Zijnhet 1000 testen dan stijgt het aantal type I-fouten tot 50. Bij de laatste reeks testen zouden er

    dan ongeveer 50 categorieën een vals postief testresultaat opleveren.

    Men heeft verschillende soorten correcties, elk met hun maat van strengheid. Hoe strenger een

    multiple testing correction is, hoe minder vals positieve genen er toegestaan worden. Maar ook

    deze medaille heeft zijn keerzijde aangezien deze strenge correcties een zeer grote hoeveelheid vals

    negatieven (genen die niet significant genoemd worden en het toch zijn) genereren. Hieronder

    worden de correcties besproken die gëımplementeerd zijn in BiNGO.

    3.3.1 Bonferroni controle van de Family-Wise Error Rate

    Deze correctie behoort tot de groep die de Family-Wise Error Rate of kortweg FWER binnen

    de perken wil houden. De FWER wordt gedefinieerd als de kans op ten minste één fout van het

    type I, i.e.:

    FWER = Pr(V > 0)

    waarbij V de type I-fout voorstelt en dus gelijk is aan het aantal verworpen juiste nulhypothe-

    sen. Voor een sterke controle van de FWER op niveau α is er de Bonferroni-procedure. Dit

    is misschien wel de meest gekende bij multiple testing. Deze procedure is tevens een single-

    step-procedure. Hiermee bedoelt men dat voor alle hypothesen gelijkwaardige multipliciteits-

    aanpassingen gedaan worden, ongeacht de volgorde van de teststatistieken of ruwe p-waarden.

    De Bonferroni procedure verwerpt elke hypothese Hi met p-value lager of gelijk aan α/m. De

    hiermee corresponderende Bonferroni single-step adjusted p-values worden dus gegeven door:

    p̃i = min(mpi, 1)

    [GDS03] [Bon35] [Bon36].

    De Bonferroni correctie van de FWER is uiterst conservatief en zeer streng. Stel dat men

    bijvoorbeeld duizend categorieën tegelijk test met een significantieniveau van 0.05. De hoogst

    aanvaardbare p-waarde is dan 0.00005, wat dus daadwerkelijk zeer streng is. Met een FWER

    van 0.05 is het verwachte aantal vals positieven in dit voorbeeld gelijk aan 0.05 (1000 categorieën

    × 0.00005).

    3.3.2 Benjamini & Hochberg controle van de False Discovery Rate

    De meest natuurlijke manier om False Discovery Rate (of kortweg FDR) te definiëren zou

    E(V/R) zijn, namelijk de verwachtingswaarde van de proportie van type I errors (V ) binnen de

    verworpen hypothesen (R). Maar verschillende methodes om het geval R = 0 te behandelen,

    27

  • leiden tot verschillende definities. Wanneer men stelt dat V/R = 0 als R = 0 dan bekomt men

    de FDR-definitie van Benjamini & Hochberg [BH95], i.e.:

    FDR = E(

    VR1{R>0}

    )= E

    (VR |R > 0

    )Pr (R > 0)

    Wanneer het totaal aantal nulhypothesen (m) gelijk is aan het totaal aantal juiste nulhypothesen

    (m0), ook wel de complete nulhypothese genoemd, dan is FDR = FWER.

    Benjamini & Hochberg hebben een step-up-procedure ontwikkeld voor een sterke controle van

    de FDR. Step-wise procedures zijn krachtiger dan single-step-procedures en behouden toch de

    type I error rate controle. De verwerping van een bepaalde hypothese is hierbij niet alleen

    gebaseerd op het totaal aantal hypothesen maar ook op het resultaat van de tests van andere

    hypothesen. Step-down-procedures ordenen de p-values (of statistische tests), beginnende met

    de meest significante, terwijl step-up-procedures (waarvan hier dus sprake) beginnen met de

    minst significante.

    Stel dat de p-values als volgt geordend zijn: pr1 ≤ pr2 ≤ . . . ≤ prm . Als men dan vertrekt vani = m en dan als volgende i = m− 1 neemt, dan kan men zo verder gaat totdat men een i∗ kandefiniëren die het eerste geheel getal i is waarvoor geldt dat pri ≤ imα. Als i

    ∗ niet gedefinieerd

    is dan wordt er geen enkele nulhypothese verworpen. Anders, als i∗ dus wel gedefinieerd is,

    dan moeten alle hypothesen Hri met i = 1, . . . , i∗ verworpen worden. De met de Benjamini &

    Hochberg procedure corresponderende “adjusted p-values” kunnen dus als volgt bekomen wor-

    den:

    p̃ri = mink=i,...,m{min

    (mk prk , 1

    )}[GDS03].

    Deze correctie is minder streng en conservatief dan de Bonferroni correctie en laat dus meer

    vals positieven toe. Hierbij zijn we niet gëınteresseerd in één vals positief, maar willen we er-

    voor zorgen dat de proportie van positieve categorieën die vals positief is kleiner is dan het

    significantieniveau. Stel dat men als α een waarde 0.05 heeft, dan is 5% van de categorieën die

    statistisch als significant beschouwd wordt na toepassen van deze correctie door toeval aangeduid

    en dus een vals positief.

    28

  • Hoofdstuk 4

    Implementatie van BiNGO

    In dit hoofdstuk wordt de implementatie van de plugin besproken. Eerst wordt de architectuur

    van de plugin besproken zoals die vereist is om in te laden in Cytoscape. In de daaropvolgende

    secties worden de overige delen van BiNGO besproken zoals bijvoorbeeld de implementatie van

    de statistische analyse, de implementatie van de visuele voorstelling van de overrepresentatie,

    . . .

    4.1 Plugin-architectuur in Cytoscape

    Cytoscape ondersteunt een handige Plugin-architectuur die ervoor zorgt dat er op een makkelijke

    manier extra functionaliteit aan het moederprogramma kan toegevoegd worden. Deze sectie

    behandelt de theoretische uitwerking om zo een plugin te schrijven en legt er de basisbeginselen

    van uit. Ook wordt dit dan concreet toegepast op de implementatie van BiNGO.

    4.1.1 Overzicht van het maken van een Cytoscape-plugin

    Er zijn drie basisstappen in het bouwproces van een Cytoscape-plugin:

    • Creëer eerst een klasse die de Cytoscape AbstractPlugin-klasse uitbreidt.

    • Creëer vervolgens een Jar-file voor de plugin.

    • Als men de plugin wil publiceren (kenbaar maken aan het publiek) moet je je plugin nog“obfusceren” (i.e. onleesbaar maken voor de buitenwereld).

    Elk van deze stappen wordt in de volgende secties verduidelijkt.

    29

  • 4.1.2 Stap 1: Extend AbstractPlugIn

    In de eerste stap moet dus een nieuwe klasse gemaakt worden die de Cytoscape AbstractPlugin-

    klasse uitbreidt (extends). De source code voor AbstractPlugIn vindt men hieronder:

    package cytoscape;

    /**

    * AbstractPlugin is the class that all plugins must subclass;

    * the interface is simple - the constructor must take a single

    * {@link cytoscape.CytoscapeWindow CytoscapeWindow} argument,* and there must be a {@link #describe describe} method* returning a String description of the plugin.

    */

    public abstract class AbstractPlugin {/**

    * this method’s presence is superfluous;

    * it is only here so that you don’t have to

    * call super(cytoscapeWindow) in your ctor.

    */

    public AbstractPlugin() { }/**

    * required constructor for plugins takes a single

    * {@link cytoscape.CyWindow CyWindow} argument.*/

    public AbstractPlugin(CyWindow cyWindow) { }/**

    * method returning a String description of the plugin.

    */

    public String describe() { return new String("No description."); }}

    Zoals u in de code hierboven kan zien, hebben plugins twee zaken nodig:

    • Eerst en vooral moet de klasse van een constructor voorzien zijn die een CyWindow-object(zie sectie 2.5.2 op pagina 19) kan ontvangen. Het CyWindow is een belangrijke Cytoscape-

    klasse en voorziet toegang tot het hele gamma van Cytoscape-menu’s en grafische objecten.

    • Ten tweede moet de klasse voorzien zijn van een implementatie van de describe-methode.Deze methode moet een korte omschrijving weergeven (return) van wat de plugin werkelijk

    30

  • doet.

    4.1.3 Stap 2: Creëer een Jar-file

    Cytoscape heeft de mogelijkheid om plugins rechtstreeks te laden via Jar-files. Om van deze

    functionaliteit gebruik te maken, moet de plugin in één Jar-file gestopt worden. Dit kan gebeuren

    via de “command line”, via een “makefile” of via een “Ant build file”. Vervolgens kan men dan

    nagaan of de Jar-file wel degelijk werkt. Daarvoor moet Cytoscape opgestart worden en moet

    de plugin geladen worden via het Plugins-menu. Om de plugin te laden moet men volgende

    stappen ondernemen: Plugins → Load Plugin from Jar File en dan natuurlijk de plugin-jar inkwestie selecteren. Eens de plugin geladen is, moet er op het menu-item van de geladen plugin

    in het Plugins-menu geklikt worden en de plugin wordt uitgevoerd.

    4.1.4 Stap 3: Obfusceren van de plugin

    Deze stap is in de huidige fase van Cytoscape niet meer nodig. Vroeger was het verplicht voor

    elke plugin-maker om zijn code te obfusceren, onleesbaar te maken voor de buitenwereld, wegens

    de licentie-overeenkomst met het grafische (en tevens te betalen) pakket Y-Files. Maar aangezien

    in de meest recente versie van Cytoscape Y-Files volledig verwijderd is en integraal vervangen

    is door GINY, is deze laatste fase in het proces om een plugin te schrijven niet meer nodig (zie

    tevens sectie 2.4 op pagina 16).

    4.1.5 Concrete implementatie van de plugin-architectuur in BiNGO: BiN-

    GOplugin.java

    BiNGOplugin.java breidt dus de klasse AbstractPlugin van Cytoscape uit (extends). Aan

    het CyWindow wordt een menu-item met het label “BiNGO-plugin” toegevoegd onder het menu

    Plugins. Het toe-eigenen van het label “BiNGO-plugin” aan het menu-item gebeurt echter in

    de interne listener-klasse BiNGOpluginAction, meer bepaald in de defaultconstructor. Deze

    “luisteraar” produceert een event wanneer er op het menu-item geklikt is in het Cytoscape-

    menu. Ook zit in deze klasse de verplichte describe-methode. Wanneer er nu op het menu-

    item geklikt wordt, dan wordt de actionPerformed-methode uitgevoerd. Hierdoor wordt het

    SettingsPanel (zie sectie 4.2 op pagina 31) op het scherm getoverd.

    4.2 SettingsPanel: de gebruikersinstellingen

    In de BiNGO-plugin moet de gebruiker de mogelijkheid hebben om bepaalde keuzes te maken,

    keuzes die afhangen van het soort experiment dat men wil uitvoeren of van de persoonlijk