BiNGO: een Cytoscape-plugin voor functionele annotatie...

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...

Page 1: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

Page 2: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Toelating tot bruikleen

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

het afstudeerwerk te kopieren 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

Page 3: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 te

vatten;

• mijn scriptiebegeleider, dhr. Steven Maere, die met veel enthousiasme en zo mogelijk met

nog meer vakkennis mijn werken richting heeft gegeven;

• mijn vriendin, Mieke Jacob, voor het vinden van een coole en catchy naam voor mijn

Cytoscape-plugin, met name: BiNGO;

• mijn ouders voor de steun tijdens mijn studies;

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

ii

Page 4: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

Page 5: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 ontologieen in GO . . . . . . . . . . . . . . . . . . . . . . 4

1.2.3 Hoe zien ontologieen 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

Page 6: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

3 Statistische analyse 21

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

3.2 Bespreking van de verschillende geı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: Creeer 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

Page 7: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

5.3 Het aantal categorieen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 8: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

Page 9: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

Page 10: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 geevolueerd. 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 voor 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

Page 11: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 geı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 beı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

Een 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

Page 12: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 hierarchisch 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 overgeexpresseerd,groen is ondergeexpresseerd.

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

Page 13: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

hierarchische 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

proteıneproduct dat door een gen geencodeerd is. De GO-medewerkers hebben drie structuren,

drie ontologieen 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-

gieen 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 ontologieen in GO

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

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

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

4

Page 14: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 een 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 een 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 ontologieen eruit?

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

(Directed Acyclic Graph (DAG)). Deze structuur verschilt van een hierarchie (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

Page 15: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

genproduct.

1.2.4 Wat is een annotatie?

GO op zich is enkel een systeem om genen en proteı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 een 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-categorieen) statistisch

oververtegenwoordigd zijn.

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

de resultaten. Meestal worden enkel categorieen op een bepaald intermediair niveau in de GO-

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

wordt echter de rijke hierarchische 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 categorieen 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 hierarchische 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

Page 16: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

geıdentificeerde categorieen 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 intuı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 categorieen na te gaan is natuurlijk het

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

Windows Verkenner bijvoorbeeld een aantal mappen selecteert om te kopieren. 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

Page 17: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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-categorieen 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 categorieen 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 varieren 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

Page 18: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 hierarchische 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

Page 19: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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”-categorieen

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

Page 20: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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-hierarchie specificeren, alle niveau’s worden onderzocht.

Voor de visualisatie van de overgerepresenteerde categorieen 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 categorieen 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 categorieen 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 geı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 geıntegreerd is in een breder visuali-

satieproduct (Cytoscape). Zo kunnen clusters makkelijk geı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

Page 21: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

riee

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

Page 22: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 proteıne-proteıne, proteı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 exponentiele groei van experimentele technologieen 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

Page 23: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 geıntegreerde data,

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

2.3.1 Data-integratie

Bijkomende data zijn geı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

Page 24: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

2.3.2 Annotatietransfer

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

tologie een hierarchische classificatie (vormelijk een gerichte acyclische graaf) van progressief

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

ontologieen 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 geınteresseerd is.

2.3.3 Graaf lay-out

Een 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, hierarchische 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 geımplementeerd in de nieuwste versie van Cytoscape, al

bestaat er wel al een plugin die de functionaliteit van een hierarchische 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

Page 25: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 varieteit 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 hierarchische 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 intuı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 barriere 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 modifieren 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

Page 26: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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-georienteerd, 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 essentiele 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 een 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

Page 27: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 een 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 zoals

microarray-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 voor er op het netwerk gewerkt wordt en de endActivity-

methode aanroepen wanneer de bewerkingen gedaan zijn.

18

Page 28: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 de

graaf.

• Het “visual mapping system” dat zegt hoe de knopen en de bogen van de graaf getekend

moeten 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

geı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

een 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

Page 29: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

• Het BioDataServer-object: De BioDataServer is een complex systeem dat informatie

verschaft 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” om

het uiterlijk van de knopen en de bogen te bepalen. Om alle gekende visualisatiestij-

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

CalculatorCatalog-object.

20

Page 30: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 geı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 een 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

Page 31: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 definieren, 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 en

alternatief in T is samengevat,

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

nulhypothese waar is.

De derde stap is een beslissingscriterium definieren 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 H0

hoogstens 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

Page 32: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

(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 een richting wordt beschouwd noemt men eenzijdige

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 zou

verwerpen. 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 geı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 categorieen bestaan: F

23

Page 33: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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−n

X−x)(N

X)

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−n

X−i )(N

X)

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

ondergerepresenteerde categorieen. De waarden voor p voor overgerepresenteerde categorieen

kunnen berekend worden met:

p = 1−x−1∑i=0

(ni )(N−n

X−i )(N

X)

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 een 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

Page 34: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 met 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 een gen uit F, geschat

door de verhouding n/N,

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

Xx

) (nN

)x (1− n

N

)X−x,

en de p-value kan dan berekend worden door:

p = 1−x−1∑i=0

(Xi

) (nN

)i (1− n

N

)X−i

Deze 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

Page 35: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 geı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 potentiele 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 een rood. Wat is dan de kans dat men de rode eruit haalt? Juist, een 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 een min de kans dat men

20 keer een blauwe knikker trekt of dus 1− (19/20)20 = 64%. Exact hetzelfde gebeurt wanneer

enkele honderden categorieen 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 categorieen toeneemt waarop men

een statistische test toepast. Stel men heeft een 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

Page 36: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

benaming ’fishing’), dan is het gemiddeld aantal type I-fouten gelijk aan 5 (i.e. 0, 05×100). Zijn

het 1000 testen dan stijgt het aantal type I-fouten tot 50. Bij de laatste reeks testen zouden er

dan ongeveer 50 categorieen 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 geı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 een 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:

pi = min(mpi, 1)

[GDS03] [Bon35] [Bon36].

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

bijvoorbeeld duizend categorieen 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 categorieen

× 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 definieren 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

Page 37: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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 van

i = m en dan als volgende i = m− 1 neemt, dan kan men zo verder gaat totdat men een i∗ kan

definieren 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:

pri = 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 geınteresseerd in een vals positief, maar willen we er-

voor zorgen dat de proportie van positieve categorieen die vals positief is kleiner is dan het

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

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

en dus een vals positief.

28

Page 38: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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:

• Creeer eerst een klasse die de Cytoscape AbstractPlugin-klasse uitbreidt.

• Creeer 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

Page 39: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

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

Page 40: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

doet.

4.1.3 Stap 2: Creeer 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 een 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 in

kwestie 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 persoonlijke

31

Page 41: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

voorkeur van de onderzoeker. BiNGO geeft de gebruiker vele mogelijkheden om zijn of haar

onderzoek zo gepersonaliseerd mogelijk te maken.

Men kan kiezen uit de verschillende geımplementeerde testen en correcties aan de hand van

een JCombobox, dropdown-menu. De α die bij deze testen als drempelwaarde wordt gebruikt

om de p-values mee te vergelijken ten einde de overrepresentatie te weten te komen, kan vrij

ingegeven worden. Hiermee wordt bedoeld dat men gelijk welk decimaal getal tussen nul en

een kan opgeven. Deze α wordt dan intern als String beschouwd (om later te converteren

naar een BigDecimal, voor meer uitleg zie sectie 4.3 op pagina 35 en sectie 4.4 op pagina 38).

Men kan dus ook zeer kleine waarden ingeven die er dan voor zorgen dat de overrepresentatie

nauwkeuriger wordt nagegaan en er dus strenger geselecteerd kan worden.

Wanneer men alle onderzochte categorieen naar de wortel van de boom propageert, wordt dit al

gauw een onoverzichtelijk geheel. Daarom is er in BiNGO de mogelijkheid geımplementeerd om

enkel de overgerepresenteerde categorieen naar boven te propageren. Hierbij kan men dan nog

kiezen tussen de optie of ze overgerepresenteerd zijn voor of na de toepassing van een multiple

testing correctie. Net zoals de bij de statistische testen en de multiple testing correcties wordt

de keuze gemaakt via een combobox.

Een laatste JComboBox zorgt voor de keuze tegenover wat de geselecteerde cluster getest moet

worden. De keuzes bestaan uit het testen tegenover het gehele genoom (dit is dan aan de hand

van een annotatiebestand) of het testen tegenover de graaf waarin men de cluster geselecteerd

heeft.

4.2.1 SettingsOpenPanel, SettingsSavePanel: het kiezen van de bestanden

Vervolgens kan er ook nog opgegeven worden welke annotatie en welke ontologie er gebruikt moet

worden. Hiervoor dient de klasse SettingsOpenPanel die bestaat uit een JButton, een knop met

daarop een opschrift afhankelijk van de String die met de constructor is meegegeven (dus voor

het annotatiepaneel is dat dan logischerwijs “annotatie”) en een niet-editeerbaar JTextField,

een tekstveld, waar het path van het gekozen bestand weergegeven wordt. SettingsOpenPanel

breidt niet enkel de klasse JPanel uit, ze implementeert ook de klasse ActionListener. Hierdoor

wordt de actionPerformed-methode opgeroepen wanneer er op de knop geklikt wordt. Wanneer

dit zich voordoet wordt een JFileChooser-venster, een open-file-venster meer bepaald, geopend

zodat de gebruiker zijn bestand naar keuze kan selecteren zoals hij of zij dat in de meeste

besturingssystemen gewoon is.

Naast het kiezen van de annotatie- en ontologiebestanden, is er ook een mogelijkheid voorzien

voor de gebruiker om het SIF-bestand dat gaat gecreeerd worden voor het opbouwen van het

32

Page 42: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

netwerk (zie sectie 4.5 op pagina 39), te bewaren en ook de mogelijkheid om een bestand te

maken met alle belangrijke gegevens inzake het onderzoek (zie sectie 4.6 op pagina 41). De klasse

SettingsSavePanel zorgt voor deze functionaliteit. Ze bouwt een paneeltje op met daarop onder

andere een JCheckBox, een hokje dat men naar believen kan aanvinken. Wanneer men de box

“checkt”, opteert men het bestand te bewaren (en in het geval van het BiNGO-gegevensbestand

ook voor het aanmaken van het databestand). Een JButton zal bruikbaar worden om net

zoals hierboven een JFileChooser-venster, hier dan wel een save-file-venster, op te roepen.

Het bruikbaar worden van de knop wordt geregeld door de itemStateChanged(ItemEvent e)-

methode, die opgeroepen wordt wanneer het hokje aangekruist wordt. SettingsSavePanel

implementeert immers naast de klasse ActionListener ook de klasse ItemListener. Bij de

checkbox wordt er ook nog gebruik gemaakt van een aparte klasse, met name ToggleIcon.

Deze implementeert de klasse Icon en zorgt ervoor dat er in plaats van de default-voorstelling

van een aangekruist hokje (deze default-voorstelling is een vol vierkant), er een vierkant hokje

met een kruisje erin komt, zodat de gebruiker meer het gevoel heeft dat hij of zij daadwerkelijk

het hokje aankruist.

4.2.2 HelpMenuBar: het help-menu

Het JFrame waar het SettingsPanel aan gehecht is, is voorzien van een JMenuBar, een menubalk

dus. Deze wordt aangemaakt in de klasse HelpMenuBar. Deze menubalk zorgt ervoor dat de

gebruiker een korte gebruikershandleiding kan bekijken en zorgt er tevens voor dat de gebruiker

enige informatie over het ontwikkelde product (zoals de ontwikkelaar, plaats van ontwikkeling

en de contactmogelijkheden) kan bekijken. Om de twee soorten van informatie op het scherm

te tonen, implementeert de klasse HelpMenuBar de klasse ActionListener. De informatie over

het product wordt getoond aan de hand van een JOptionPane.showMessageDialog en de hand-

leiding wordt in een nieuw JFrame met daarin een JTextArea aan de gebruiker ter beschikking

gesteld.

4.2.3 SettingsPanelActionListener: de luisteraar

Op het SettingsPanel is er ook een JButton aanwezig met als opschrift “Start BiNGO” om

het berekenen en visualiseren van de overrepresentatie te initieren. Aan deze knop hangt een

luisteraar, met name de klasse SettingsPanelActionListener. Wanneer er dus op de BiNGO-

button geklikt wordt, dan wordt de actionPerformed-methode van de luisteraar opgeroepen.

Deze controleert eerst of alle velden juist zijn ingevuld. Er wordt gecontroleerd of er wel knopen

geselecteerd zijn (anders krijgt men een aanmaning om dit te doen). Natuurlijk moet er ook

een test gekozen zijn. Tevens moet er een optie gekozen zijn in verband met de keuze van

de grootte van de boom en de keuze tegenover wat er getest moet worden. Bij de keuze van

33

Page 43: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

de grootte van de boom is er nog een bijkomende test, met name of er een correctie geselec-

teerd is in de daarvoor dienende JComboBox wanneer de optie “Overgerepresenteerde categorieen

na correctie” geselecteerd is. De α-waarde moet opgegeven zijn en binnen de vooropgestelde

grenzen liggen (dus 0 < α < 1). Tevens moet het annotatiebestand en het ontologiebestand

gekozen zijn. Als aan deze voorwaarden voldaan is, worden de twee files geparsed door een

AnnotationFlatFileReader respectievelijk een OntologyFlatFileReader die in Cytoscape

aanwezig zijn. In de luisteraar is er ook een mogelijkheid ingebouwd om XML-bestanden te

parsen, maar gezien de makers van Cytoscape deze files als te groot en te complex beschouwen

en overgeschakeld zijn naar een flatfile-systeem, is dit eerder iets om niet-compatibiliteit te

voorkomen als de ontwikkelaars zich alsnog zouden bedenken. Wanneer er bij het parsen een

fout optreedt, omdat bijvoorbeeld het geselecteerde bestand niet aan de de hoofdingvoorwaar-

den (voor meer uitleg over de hoofding van een annotatiebestand zie sectie 5.5 op pagina 47 en

voor meer uitleg over de hoofding van een ontologiebestand zie sectie 5.5 op pagina 46) van een

dergelijke file voldoet, dan wordt er een duidelijke en gedetailleerde foutmelding aan de gebruiker

gegeven, zodat hij zijn lapsus kan corrigeren. Na het parsen van het annotatiebestand en het

ontologiebestand naar een annotatie- respectievelijk ontologie-object, wordt er gecontroleerd of

de bestanden waarvan men een naam kan opgeven om ze te bewaren (dus de SIF-file en de

data-file), een correcte naam hebben. Om de controle van de input te vervolledigen wordt ook

nog eens getest of het netwerk dat ingeladen is in Cytoscape wel geschikt is voor onderzoek

met BiNGO. Als er bijvoorbeeld enkel namen van steden met elkaar verbonden worden, is het

onmogelijk om te bepalen tot welke categorieen van de GO deze steden behoren.

Eens men alle controles succesvol doorgekomen is, worden de canonische namen van de gese-

lecteerde genen geextraheerd van het netwerk door middel van de methode getSelectedCanoni-

calNamesFromNetwork. Deze methode geeft dan een Vector terug met daarin de namen van

deze genen. Hiermee kunnen de “termIDs” opgezocht worden. Dit gebeurt in de methode

getClassificationsFromVector die de labels in de vorm van een array teruggeeft. Om deze

GO-Labels te weten te komen, wordt er gebruik gemaakt van het annotatie-object en zijn me-

thode getClassifications met als argument een element uit de Vector. Tenslotte wordt

er bepaald welke berekeningen er moeten worden uitgevoerd op de verkregen array: welke

test is er gekozen en welke correctie? Dit gebeurt in de methode performCalculations.

Hoe de berekeningen zelf geımplementeerd zijn wordt besproken in sectie 4.3 op pagina 35

en sectie 4.4 op pagina 38. Voor de optie om de gekozen cluster te testen tegenover de

graaf worden eerst nog de namen van al de genen van de graaf opgehaald met de methode

getAllCanonicalNamesFromNetwork en wordt deze vector dan als argument meegegeven aan

de methode getClassificationsFromVector zodat er een array met de classificaties van het

hele netwerk bekomen wordt.

34

Page 44: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

4.3 Implementatie van de testen

Voor de implementatie van de testen is er steeds een zelfde structuur aangehouden qua klassen.

Zo is er voor elke soort test een klasse xxxDistribution met op de plaats van xxx natuur-

lijk de naam van de distributie (bijvoorbeeld HypergeometricDistribution). In deze klasse

wordt de formule van de distributie geımplementeerd. Vervolgens heeft elke test ook nog

een klasse xxxTestCalculate met op de plaats van xxx de naam van de test (bijvoorbeeld

BinomialTestCalculate). Hierin gebeurt de berekening van de distributie voor de verschillende

genen en deze klasse maakt natuurlijk gebruik van de distributieklasse. Door deze manier van

werken is er slechts een kleine aanpassing nodig bij SettingsPanel (namelijk enkel een naam toe-

voegen aan de array met namen voor de test-ComboBox) en bij SettingsPanelActionListener

(namelijk een constante string met de naam van de test en een extra if-clause bij de methode

performCalculations) om een nieuwe test toe te voegen, wat natuurlijk het programma makke-

lijk uitbreidbaar maakt.

Bij alle testen komen zeer grote getallen voor (getallen met dertig cijfers zijn geen uitzondering

en nog grotere getallen evenmin). Bij deze grote getallen schieten de gewone getal-objecten

zoals Integer en Double tekort. Daarom is er bij elke test gebruik gemaakt van de klassen

BigInteger en BigDecimal. Deze standaard Java-klassen hebben een voorstellingswijze zodat

ze arbitrair grote getallen kunnen voorstellen zonder verlies van precisie, iets wat natuurlijk

onontbeerlijk is voor een correct resultaat.

4.3.1 DistributionCount: het tellen van de genen

De distributies hebben vier argumenten in hun constructor. Deze vier argumenten zijn:

• N : het aantal genen in de graaf of het genoom

• n: het aantal genen uit N die tot een bepaalde categorie F behoren

• X : het aantal genen in de cluster die geselecteerd is uit N

• x : het aantal genen uit X die tot een bepaalde categorie F behoren

Natuurlijk moeten deze aantallen berekend worden. Dit gebeurt in de klasse DistributionCount

en die is voor alle distributies logischerwijs hetzelfde. Voor X is dit triviaal aangezien dit

overeenkomt met het tellen van het aantal elementen in de meegegeven classif-array. Voor

het berekenen van n en x wordt er gebruik gemaakt van de methode count. Hierin worden

alle elementen van de reeds genoemde array overlopen en wordt er voor elk element de ouder(s)

gezocht. Deze worden in een set en in een stack bijgehouden. De set dient om geen duplicaten

te hebben, de stack dient om bij het naar boven propageren (dus het zoeken naar de ouders van

35

Page 45: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

de ouders van het element en de ouders daarvan en . . . ) geen elementen te vergeten. Zolang de

stack niet leeg is gaat de zoektocht naar alle voorgangers van het element door. Eens dit gedaan

is, wordt er over de voor dit element gevonden set, geıtereerd en wordt er een map bijgehouden

met als sleutel de term van het element en als waarde een teller die bijhoudt hoeveel keer deze

term al gerefereerd is. Uiteindelijk bekomt men dan een map met de n of x voor elke term. Om

de N te berekenen moet de grootste waarde van de n-map gevonden worden. Dit is immers de

wortel van de boom-structuur en alle bladeren refereren een keer naar deze knoop, ergo men

vindt het aantal knopen in de boom en dus ook het aantal genen in de graaf of in het genoom

(naargelang de keuze bij de combobox in verband met het testen van de cluster tegenover de

graaf of het genoom).

4.3.2 Implementatie van de hypergeometrische test

HypergeometricDistribution

De implementatie van deze statistische test had een hoge moeilijkheidsgraad. Tot een correct

resultaat komen, was geen probleem. De snelheid van de berekening en dus de daarmee gepaard

gaande efficientie was een ander paar mouwen. Een eerste naıeve implementatie die gewoon de

formule implementeerde zoals ze er staat in sectie 3.2.1 op pagina 24, met de daarbij gaande

naıeve implementatie van de binomiaalcoefficienten en de daarbij horende faculteiten leverde een

pover resultaat op met lange wachttijden. Onaanvaardbaar dus, zeker als men rekening houdt

met het feit dat men die berekeningen dan ook nog moet uitvoeren voor meerdere genen. Een

minder naıeve implementatie was er een met een snel algoritme om faculteiten uit te rekenen,

met name Prime Factorization and Nested Squaring voorgesteld door Arnold Shoenhage. Zoals

de naam het al zegt maakt dit algoritme gebruik van onder andere priem-factorisatie. Meer was

er in de geraadpleegde naslagwerken en webpagina’s niet te vinden over dit algoritme, waarvan

ik de implementatie gebruikt heb van Peter Luschny (http://www.luschny.de/). Dit algoritme

is ongeveer vier keer sneller dan de naıeve implementatie van een faculteit. De totale bereken-

ing van de distributie was hierdoor weliswaar substantieel sneller (zo’n 33%) maar toch was de

snelheid nog niet wat het moest zijn.

De oplossing voor dit probleem heb ik gevonden in het verder uitwerken van de binomiaalcoeffi-

cienten. In een aparte klasse BinomialCoefficients is de verder uitgewerkte formule gepro-

grammeerd. De binomiaalcoefficient C(n, k) wordt normaal op volgende manier berekend:

C(n, k) = n!k!(n−k)!

Uitgaande van de eigenschap voor binomiaalcoefficienten dat C(n, k) = C(n, n − k), kan men

dus maar beter de k nemen waarvoor geldt k ≤ n/2. Bovenstaande algemene formule kan dan

36

Page 46: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

op volgende manier herschreven worden wanneer men n! gaat delen door (n− k)!:

C(n, k) =k∏

i=1

(n−k+i)i

Men kan gemakkelijk zien dat voor elke noemer i geldt dat het tot dan bekomen product er deel-

baar door is. Met deze nieuwe formule is een snelle computatie van de binomiaalcoefficienten

wel mogelijk en dus zal de berekening van de hypergeometrische distributie met een meer dan

aanvaardbare rekentijd uitgevoerd worden.

Een vergelijking van de uitvoeringstijd in milliseconden van de verschillende werkwijzen staat

in onderstaande tabel. Er zijn verschillende scenario’s getest, hiermee bedoel ik dat er verschil-

lende waarden voor de argumenten van de hypergeometrische distributie gekozen zijn. Het is

dus zeer duidelijk dat met de nieuwe formule voor de binomiaalcoefficienten er een excellente

uitvoeringstijd bekomen wordt.

Tabel 4.1: Vergelijking uitvoeringstijden hypergeometrische distributie.

Naıeve implemen-

tatie

Met faculteit-

algoritme

Nieuwe for-

mule binomi-

aalcoefficienten

x = 18, X = 50, n = 100, N = 6000 57609 36891 16

x = 2, X = 23, n = 10, N = 1000 125 78 0

x = 23, X = 50, n = 100, N = 250 78 47 16

x = 543, X = 780, n = 1000, N = 6000 1285750 866156 4406

x = 16, X = 65, n = 123, N = 6000 48422 32265 0

HypergeometricTestCalculate

De klasse HypergeometricTestCalculate heeft als doel een map (hypergeometricTestMap)

aan te maken met als sleutel (key) het identificatienummer van de term en als waarde het resul-

taat bekomen via HypergeometricDistribution. Ook de map mapSmallX wordt bijgehouden.

De reden waarom ook deze map wordt bijgehouden heeft te maken met het bepalen van de

grootte van de knopen bij de visualisatie (zie sectie 4.5 op pagina 39). In de constructor wordt

reeds de klasse DistributionCount aangesproken om alle parameters te initialiseren voor het

eigenlijke berekenen begint. Voor dat berekenen is er de methode HypergeometricTestCalcu-

late. Deze itereert over de sleutels van de mapSmallX-map. Voor elke term wordt de hypergeo-

metrische distributie berekend en wordt er een nieuwe entry gemaakt in de hypergeometricTest-

37

Page 47: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Map-map. Via de getters getHypergeometricTestMap en getMapSmallX kunnen de respectieve-

lijke mappen opgevraagd worden.

4.3.3 Implementatie van de binomiale test

De implementatie van de binomiale test was een stuk sneller geschreven dan die van de hypergeo-

metrische test en loopt voor een groot stuk parallel met de hierboven beschreven test. De distri-

butie (geımplementeerd in de klasse BinomialDistribution) gebruikt natuurlijk een andere for-

mule (zie sectie 3.2.2 op pagina 25) dan de hypergeometrische. Deze formule is veel eenvoudiger

qua complexiteit en daardoor is zelfs een naıeve implementatie voldoende om een snelle uitvoe-

ringstijd te bekomen. Ook deze test maakt gebruik van een xxxTestCalculate-klasse, met name

BinomialTestCalculate, waar er hetzelfde gedaan wordt als bij de HypergeometricTestCalcu-

late-klasse maar dan logischerwijs met de binomiale distributie.

4.4 Implementatie van de correcties

Ook voor de implementatie van de correcties is er een vaste klassenstructuur gehanteerd, sterk

gelijkend op die van de statistische testen. Eerst en vooral is er voor elke correctie een klasse voor

het berekenen van de gecorrigeerde p-waarden (bijvoorbeeld de klasse Bonferroni). Bij deze

klasse hoort er dan nog een klasse van de vorm xxxCalculate zoals bijvoorbeeld BonferroniCal-

culate van waaruit de berekeningen gedelegeerd worden. Ook bij de implementatie van de cor-

recties is er net zoals bij de implementatie van de statistische testen gebruik gemaakt van de

klassen BigInteger en BigDecimal voor arbitrair grote gehele getallen respectievelijk arbitrair

grote decimale getallen.

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

Rate

Bonferroni

In deze klasse worden de bij het berekenen van een statistische test bekomen p-waarden, onder-

worpen aan de Bonferroni correctie. Hierbij moeten de “raw p-values” eerst geordend worden.

Voor de ordening is er gebruik gemaakt van het sorteeralgoritme door tussenvoegen (insertion

sort algorithm). Dit algoritme werkt als volgt: in de begintoestand is het eerste element op

zichzelf beschouwd, gesorteerd. In de eindtoestand moeten alle elementen, als groep beschouwd,

gesorteerd zijn. De basisbewerking van het algoritme is het rangschikken van de elementen op de

posities 0 tot en met m, waarbij m een waarde tussen 1 en n heeft. Daarbij wordt verondersteld

dat de elementen op de posities 0 tot en met m−1 reeds gesorteerd zijn, en wordt het element op

38

Page 48: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

positie m op de juiste plaats tussengevoegd. Het algoritme bestaat uit een aantal fasen waarbij

m achtereenvolgens waarden van 1 tot en met n aanneemt. [Fac01] Eens de p-waarden geordend

zijn met dit algoritme, worden ze stuk voor stuk aan de Bonferroni-correctie onderworpen zoals

die gedefinieerd is in sectie 3.3.1 op pagina 27.

BonferroniCalculate

Vanuit de klasse BonferroniCalculate worden alle bewerkingen in verband met de Bonferroni-

correctie gedelegeerd. Eerst worden er twee arrays gemaakt namelijk een voor de GO-labels of

termidentificatie-nummers en een voor de gevonden p-waarden. Deze worden dan meegegeven

aan de constructor van de klasse BonferroniCalculate die er dan zijn bewerkingen op uit-

voert. Vervolgens worden de twee arrays die door de klasse BonferroniCalculate aangemaakt

zijn, opgehaald (adjustedPvalues en sortedGOLabels) en daarvan wordt er een map gemaakt

(bonferroniMap) die dan kan opgevraagd worden.

4.4.2 Implementatie van de Benjamini & Hochberg correctie van de False

Discovery Rate

De implementatie van de Benjamini & Hochberg correctie van de False Discovery Rate loopt

volkomen analoog aan de implementatie van de Bonferroni correctie. Nu zijn er de klassen

BenjaminiHochbergFDR en BenjaminiHochbergFDRCalculate die de bewerkingen uitvoeren

zoals die gedefinieerd zijn in de sectie 3.3.2 op pagina 27.

4.5 DisplayBiNGOWindow: de visualisatie

Eens de berekeningen gedaan zijn en dus de p-values en alle andere nodige informatie gekend

is, kan men overgaan op de visualisatie van de gevonden resultaten. Dit gebeurt in de klasse

DisplayBiNGOWindow die ervoor zorgt dat er een nieuw CyWindow geopend wordt met daarin de

voorstelling van de overrepresentatie.

buildNetwork

Eerst en vooral moet het netwerk (CyNetwork) opgebouwd worden. Dit gebeurt in de methode

buildNetwork. Hiervoor wordt er eerst een SIF-file aangemaakt. Dit is een bestand dat bestaat

uit regels zoals “gen1 pp gen2”, wat betekent dat er een boog bestaat tussen gen1 en gen2

(voor een meer extensieve uitleg van het formaat van het SIF-bestand zie sectie 5.6 op pag-

ina 47). Eerst worden de keys van de testMap overlopen en worden alle hierarchische paden

ervan gezocht met behulp van ontology.getAllHierarchyPaths(termID). Als er voor de optie

39

Page 49: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

gekozen is om enkel de categorieen te onderzoeken met overrepresentatie voor correctie of met

overrepresentatie na correctie, dan worden eerst de termIDs die hier niet aan beantwoorden er

uitgefilterd. De dubbele array die je daarvan als return-waarde terugkrijgt wordt dan overlopen

en tussen elke twee opeenvolgende elementen van een rij van deze array bestaat er een boog en

komt er dus een entry in het SIF-bestand. Maar dit onmiddellijk wegschrijven zou veel dupli-

caten veroorzaken. Daarom worden er verschillende maatregelen getroffen om de dubbels die

kunnen voorkomen bij zowel de knopen als de bogen te elimineren.

Een eerste eliminatie gebeurt tijdens het opbouwen van de set sifSet. Die krijgt elementen van

de vorm “gen1 pp gen2”. Aangezien een set als eigenschap heeft dat er geen dubbels in kunnen

voorkomen, zorgt dit voor eliminatie van duplicaten.

Dit volstaat echter niet. De genen hebben namelijk verscheidene synoniemen voor hun termiden-

tificatienummer. Daarom is er een map nameMap aangemaakt die als sleutel alle termID’s die

voorkomen heeft en als waarde voor deze sleutel een voor elke reeks synoniemen gekozen term-

identificatienummer. Dus stel dat het termID 6678 als synoniemen de termID’s 789, 1024 en 456

heeft dan zorgt dit voor 3 koppels in nameMap namelijk (789,6678) , (1024,6678) en (456,6678).

De set sifSet wordt nu overlopen met een iterator. Alle termidentificatienummers worden nu

opgezocht in de map en de daarmee corresponderende waarde wordt dan opgenomen in een

nieuwe set. Op deze manier worden zowel duplicate knopen als duplicate bogen geelimineerd.

Nu er geen dubbels meer zijn worden de elementen van de verkregen set weggeschreven naar

een bestand. Eens de SIF-file is opgebouwd, wordt ze als argument meegegeven met de me-

thode CyNetworkFactory.createNetworkFromInteractionsFile(SIFFILENAME). Deze “fac-

tory” bouwt dan het netwerk op en geeft dat ook terug. Het SIF-bestand kan bewaard worden

onder de opgegeven naam die men in het SettingsSavePanel kan opgeven. Is het hokje niet

aangekruist, dan wordt het bestand verwijderd.

De attributen

Eens het netwerk is opgebouwd kunnen de attributen van de knopen (GraphObjAttributes)

ingesteld worden. Dit gebeurt in de methode buildNodeAttributes. Eerst halen we de voor-

lopige attributen op die bij het creeren van het netwerk zijn aangemaakt. Vervolgens kiezen we

als omschrijving (description), de naam van de term die we opvragen via het ontologie-object.

Dit attribuut wordt ingesteld als label van de knoop. Afhankelijk van de waarde van de p-value,

en als er ook een correctie gekozen is afhankelijk van de waarde van de adjusted p-value, wordt

de kleur gekozen van de knoop. Een knoop wordt rood gekleurd als zijn waarde kleiner is dan

de opgegeven α, anders is de gekozen kleur geel. De grootte van de knopen worden ingesteld

40

Page 50: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

door de waarde van de map mapSmallX (dus #genen) in volgende functie in te vullen:

knoop grootte = max grootte (1− exp (−#genen))

Zo worden knopen die veel voorkomen groter voorgesteld dan deze die maar weinig voorkomen

en is er toch een beperking inzake maximale grootte (max grootte geeft de maximale grootte

van de knopen aan).

Buiten deze attributen die visueel zichtbaar zijn voor de gebruiker, zijn er nog andere die men

kan opvragen via de “Attribute Browser” van Cytoscape (hoe die opgevraagd moet worden zie

sectie 5.8 op pagina 49). Deze attributen zijn: de termID, x, X, n, N en de p-waarden en

eventueel de gecorrigeerde p-waarden.

Voor de p-waarden en de gecorrigeerde p-waarden kan men zeer grote decimale getallen bekomen.

Bij deze getallen kan men niet in een oogopslag zeggen of ze significant zijn of niet. Daarom is

er geopteerd om de getallen voor te stellen in een wetenschappelijke notatie. Het decimale getal

0.000041025622042003 wordt in de geprogrammeerde wetenschappelijke notatie voorgesteld als

0.41026e − 4. Dit gebeurt aan de hand van de methode getScientificNotationFromString.

De nullen vooraan worden dus opgeslorpt en er worden vijf cijfers na de komma gezet. Het zesde

cijfer bepaalt de afronding van het vijfde cijfer. Wanneer het groter of gelijk is aan 5 wordt er

naar boven afgerond anders naar beneden.

Na het instellen van de attributen worden deze weer aan het netwerk gehecht. Vervolgens

construeren we een nieuw CyWindow, namelijk bingoCyWindow, met onder andere het nieuw

aangelegde netwerk met de aangepaste GraphObjAttributes. Tenslotte wordt het venster met

de nieuwe graaf aan de gebruiker getoond door het oproepen van de methode showWindow van

de klasse CyWindow.

4.6 CreateBiNGOFile: het gegevensbestand over de overrepresen-

tatie

Naast het visueel voorstellen van de berekeningen, wordt er in BiNGO ook de mogelijkheid

voorzien een file aan te maken met alle belangrijke gegevens. Zoals reeds gezegd kan de gebruiker

kiezen of er zo een bestand al dan niet aangemaakt wordt en kan hij of zij ook zelf de naam van dit

bestand kiezen. In de makeFile()-methode gebeurt het wegschrijven naar het bestand dat men

heeft opgegeven. Datum en uur van creatie, evenals de gebruikte statistische test en eventueel

ook de gebruikte correctie, natuurlijk ook de gekozen α, de ontologie met bijhorende curator en

de keuze of er getest is tegenover alle knopen in de graaf of alle genen in het genoom maken de

41

Page 51: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

hoofding uit van dit databestand. Zo krijgt de gebruiker een gedetailleerde informatie wanneer

het onderzoek is uitgevoerd en wat dat onderzoek juist inhield. In de hoofding worden ook nog

de genen weergegeven die tot de geselecteerde cluster behoren. Na de hoofding komt het gedeelte

met de gegevens over het gedane onderzoek. Dit gedeelte is zo gemaakt dat de verschillende

kolommen (termidentificatienummer, p-waarden, eventueel gecorrigeerde p-waarden, x, n, X, N

en de naam van de categorie) gescheiden worden door tabs, dit voor het vergemakkelijken van

eventueel parsen van dit bestand. Ook hier worden de p-waarden en de gecorrigeerde p-waarden

aan de wetenschappelijke notatie onderworpen.

42

Page 52: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Hoofdstuk 5

Handleiding BiNGO

In dit hoofdstuk wordt de handleiding beschreven voor BiNGO. Zo wordt er besproken welke han-

delingen er allemaal moeten toegepast worden en welke mogelijkheden welke gevolgen hebben.

Ook wordt hier beschreven hoe bepaalde bestanden er moeten of zullen uitzien en welke combi-

naties van opties het beste resultaat geven.

5.1 Het BiNGO-venster met zijn opties

Figuur 5.1: Het BiNGO-venster met zijn opties

43

Page 53: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

In bovenstaande figuur wordt het BiNGO-venster (zie sectie 4.2 op pagina 31 voor de imple-

mentatie) weergegeven. De onderdelen per nummer zijn:

1. Een dropdown box met daarin de mogelijke testen.

2. Een dropdown box met daarin de mogelijke correcties.

3. Een tekstveld voor het ingeven van de α.

4. Een dropdown box met daarin de opties in verband met het aantal weer te geven cate-

gorieen.

5. Een dropdown box met daarin de opties waartegen de geselecteerde cluster getest moet

worden.

6. Een knop om een “open file”-venster te openen om het annotatiebestand te selecteren.

7. Een tekstveld met het geselecteerde annotatiebestand.

8. Een knop om een “open file”-venster te openen om het ontologiebestand te selecteren.

9. Een tekstveld met het geselecteerde ontologiebestand.

10. Een hokje om aan te vinken of er een databestand moet worden aangemaakt.

11. Een knop om een “save file”-venster te openen om te kiezen waar het databestand bewaard

moet worden en onder welke naam.

12. Een tekstveld met de geselecteerde plaats en de gekozen naam voor het databestand.

13. Een hokje om aan te vinken of het SIF-bestand moet worden bewaard.

14. Een knop om een “save file”-venster te openen om te kiezen waar het SIF-bestand bewaard

moet worden en onder welke naam.

15. Een tekstveld met de geselecteerde plaats en de gekozen naam voor het SIF-bestand.

16. Een knop om het BiNGO-proces te initieren.

17. Het help-menu.

18. Het deel van het help-menu om de handleiding op te vragen.

19. Het deel van het help-menu om algemene informatie over het programma op te vragen.

44

Page 54: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

5.2 Richtlijnen voor de combinatie statistische testen en correc-

ties

Van de geımplementeerde statistische testen is de hypergeometrische test de beste omdat deze

exact is en wanneer het aantal genen in de graaf of het genoom klein is, wordt er nog een accuraat

resultaat gevonden. Wanneer men deze statistische test dan nog combineert met de Benjamini

& Hochberg correctie van de False Discovery Rate, beschikt men over een krachtige tool om

overrepresentatie van functionele klassen in een cluster genen na te gaan. De Benjamini &

Hochberg correctie van de FDR is immers minder conservatief en meer sensitief dan de Bonferroni

correctie van de Family-Wise Error Rate. Voor de significantiegrens α zijn de meest gangbare

waarden 0.01 en 0.05.

5.3 Het aantal categorieen

Wanneer men alle onderzochte categorieen (de optie ”All Categories”) naar de wortel van de

boom propageert, wordt dit al gauw een onoverzichtelijk geheel. Daarom is er in BiNGO

de mogelijkheid geımplementeerd om enkel de overgerepresenteerde categorieen naar boven te

propageren. Hierbij kan men dan nog kiezen tussen de optie of ze overgerepresenteerd zijn voor

(de optie ”Overrepresented Categories before Correction”) of na (de optie ”Overrepresented

Categories after Correction”) de toepassing van een correctie. Wanneer men de optie ”Overrep-

resented Categories after Correction” kiest, spreekt het voor zich dat er een correctie gekozen

moet zijn in de daarvoor bestemde combobox. Net zoals bij de testen en de correcties wordt de

keuze tussen de drie opties gemaakt via een combobox.

5.4 Testen tegenover genoom of graaf?

In BiNGO is ook de optie ingebouwd om te specificeren of men de geselecteerde cluster wil

testen tegenover de opgegeven annotatie (via het annotatiebestand) en dus eigenlijk tegenover

het gehele genoom (de optie ”Test Cluster versus Genome”), dan wel tegenover de graaf waaruit

men een aantal knopen geselecteerd heeft (de optie ”Test Cluster versus Graph”). Men gaat

dus na bij de keuze om te testen tegenover het genoom, tot welke categorie/categorieen van het

genoom de genen van de cluster het meeste kans maken te behoren. Bij het testen in de graaf,

is dit beperkt tot de categorieen van de genen van de graaf.

De mogelijkheid om te testen tegenover de graaf kan zeer verschillende resultaten opleveren in

vergelijking met het testen tegenover het genoom. Stel bijvoorbeeld dat een categorie van genen

veel voorkomt in het genoom. Wanneer men dan een gen van deze categorie in de cluster heeft

45

Page 55: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

en men test de cluster tegenover het genoom, dan zal er als resultaat gegeven worden dat deze

categorie significant is. Maar stel nu dat die bewuste categorie niet veel voorkomt in de gehele

graaf waarin de cluster geselecteerd is (ook al is de graaf een deel van het genoom). Wanneer

men dan de cluster test tegenover de graaf zal men vinden dat deze categorie niet significant is.

5.5 Het ontologiebestand en het annotatiebestand

In Cytoscape hebben de annotatie- en ontologiebestanden een vaste structuur1. In de vorige

versies van Cytoscape waren er twee soorten formaten, namelijk XML en gewoon platte tekst (flat

file, dus een tekstbestand zonder hierarchische structuur). In de huidige versie echter is platte

tekst norm geworden, de ontwikkelaars vonden dat XML te grote bestanden aflevert. Wegens

deze keuze van de ontwikkelaars wordt hier enkel het formaat met platte tekst besproken, hoewel

BiNGO ook de mogelijkheid voorziet om XML-bestanden in te laden.

Het ontologieformaat voor platte tekst

Om het ontologieformaat voor platte tekst in Cytoscape te introduceren, volgt hier een voorbeeld

ervan uit de GO ontologie:

(curator=GO) (type=all)

0003673 = Gene Ontology

0003674 = molecular function [partof: 0003673 ]

0008435 = anticoagulant [isa: 0003674 ]

0016172 = antifreeze [isa: 0003674 ]

0016173 = ice nucleation inhibitor [isa: 0016172 ]

0016209 = antioxidant [isa: 0003674 ]

0004362 = glutathione reductase (NADPH) [isa: 0015038 0015933 0016209 0016654 ]

0017019 = myosin phosphatase catalyst [partof: 0017018 ]

...

Dit formaat heeft enkele vereisten. De eerste lijn bevat twee tussen haakjes geplaatste assignaties

voor het opgeven van de curator en het type. In bovenstaand voorbeeld duidt (type=all) erop dat

alle drie de specifieke ontologieen (moleculaire functie, biologisch proces, cellulaire component)

in het ontologiebestand genest zijn.

Op de verplichte eerste lijn volgen er een of meerdere lijnen van de vorm:1http://db.systemsbiology.net:8080/cytoscape/tutorial/annotation/index.html

46

Page 56: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

nummer = naam [isa:—partof: nummer1 nummer2 ...]

’isa’ en ’partof’ beschrijven de relatie tussen de oudertermen en de kindtermen in de hierarchie

van de ontologie. De witspatie voor elk linkse vierkante haakje is niet noodzakelijk. Met nummer

wordt er het termidentificatienummer binnen de ontologie bedoeld.

Het annotatieformaat voor platte tekst

Om het annotatieformaat voor platte tekst in Cytoscape te introduceren volgt hier een voorbeeld

ervan uit de GO ontologie:

(species=Saccharomyces cerevisiae) (type=Biological Process) (curator=GO)

YMR056C = 0006854

YBR085W = 0006854

YJR155W = 0006081

...

Ook dit formaat heeft enkele vereisten. De eerste lijn bevat twee tussen haakjes geplaatste

assignaties voor het opgeven van de species, de curator en het type.

Op de verplichte eerste lijn volgen er een of meerdere lijnen van de vorm:

canonischeNaam = termidentificatienummer binnen de ontologie

Het selecteren van een dergelijk bestand

Om zo een dergelijk bestand te selecteren moet er op de daarvoor bestemde knop op het paneel

geklikt worden. Als event komt er dan een “open file”-venster op het scherm zodat de gebruiker

kan navigeren in zijn bestanden en zijn keuze kan maken. Wanneer dit gebeurd is ziet de

gebruiker het pad van zijn geselecteerd bestand in het tekstveld naast de knop.

5.6 Het SIF-bestand

Om het netwerk van het BiNGO-venster te creeren wordt er een SIF-bestand (”Simple Interac-

tion File”) opgebouwd. De gebruiker kan ervoor opteren dit bestand te bewaren. Men stelt dit

in door de passende checkbox aan te klikken en in het “open file”-venster dat men verkrijgt door

op de knop naast de checkbox te klikken, een gepaste lokatie en een toepasselijke naam te kiezen

voor dit bestand. Het SIF-bestand dat door BiNGO aangemaakt wordt kan er bijvoorbeeld als

47

Page 57: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

volgt uitzien:

7582 pp 9605

9309 pp 8652

9719 pp 6974

9308 pp 9309

8152 pp 6139

6997 pp 7001

Elke lijn in dit bestand stelt een boog voor in het netwerk, een boog tussen de twee met hun

termidentificatienummer opgegeven knopen.

5.7 Het databestand

Wanneer de gebruiker dit wenst kan hij of zij ervoor opteren om een databestand bij te houden

met informatie over het gedane onderzoek. Net zoals bij het SIF-bestand is er ook hier een hokje

om aan te vinken en kan op dezelfde wijze door de gebruiker een passende plaats en toepasselijke

naam voor het databestand gekozen worden. Een dergelijk bestand bestaat uit twee delen: een

hoofding en een corpus. Om de gedachten te vestigen volgend voorbeeld van (een deel van) een

databestand in BiNGO:

File created with BiNGO (c) on 27-apr-2004 at 19:07:22

ontology: process

curator: GO

Selected statistical test: Hypergeometric Test

Selected correction: Benjamini & Hochberg correction of the False Discovery Rate

Selected alpha: 0.05

Testing option: Test Cluster versus Genome

The selected cluster:

YDR309C YLR264W YJR060W YPL201C

YDL088C YLR116W YEL041W YNL216W

YBL026W YBR190W YDR070C YCL032W

YNL098C YNL047C YGR014W YHR135C

YNL236W YER065C

<corpus zie de tabel 5.1 op pagina 51>

48

Page 58: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Beginnend met de hoofding ziet men in het voorbeeld dat de datum en het uur van creatie in het

bestand opgenomen zijn. Ook de ontologie en zijn curator worden in het bestand neergeschreven.

Als informatie over de statistische analyse die er bij dit onderzoek is ondernomen, maken de naam

van statistische test, de correctie (indien van toepassing) en het significantieniveau α deel uit

van het databestand. Tevens opgenomen in de hoofding is welke optie er gekozen is in verband

met het kiezen tegenover wat de geselecteerde cluster getest is. Hier in het voorbeeld is dit dus

tegenover het gehele genoom. Om de hoofding af te ronden, worden de canonische namen van

de genen uit de geselecteerde cluster in het bestand opgenomen.

Het corpus bestaat zelf ook uit twee delen. De eerste lijn bevat de namen van de kolommen, de

naam van de soort van gegevens die in desbetreffende kolommen terug te vinden is. De volgende

lijnen bestaan dan logischerwijs uit de gegevens die bekomen zijn door het gedane onderzoek. De

kolommen zijn van elkaar gescheiden door tabulaties ten einde het parsen voor de onderzoeker

makkelijk te maken. Een voorbeeld van zo een corpus vindt u in tabel 5.1 op pagina 51.

5.8 De visualisatie

Het resultaat van de berekeningen wordt dan uiteindelijk aan de gebruiker visueel kenbaar

gemaakt door middel van een nieuw Cytoscape-venster met daarin een boom opgebouwd uit de

naarboven gepropageerde categorieen die men is tegengekomen bij het onderzoek. Het BiNGO-

venster met zijn opties uit sectie 5.1 op pagina 43 blijft bruikbaar zodat men niet telkens alle

gegevens terug in orde moet zetten om een kleine aanpassing in de opties te evalueren.

In deze boom met categorieen hebben de knopen als label de naam van de categorie (bijvoor-

beeld ”amino acid metabolism”). De knopen hebben ook verschillende attributen zoals het

termidentificatienummer, de p-waarde, eventueel de gecorrigeerde p-waarde, het aantal genen in

de graaf of het genoom (N ), het aantal genen uit N die tot die bepaalde categorie behoren (n),

het aantal genen in de cluster die geselecteerd is uit N (X ) en het aantal genen uit X die tot

die bepaalde categorie behoren (x ). Deze attributen kunnen in Cytoscape opgevraagd worden

op de volgende manier:

• Klik met de rechtermuisknop op de knoop waarvan men de attributen wil kennen.

• In het verkregen menu kan men klikken op ”Attribute Browser”

• Dit levert de attribuut-browser van Cytoscape op waarbij men de verschillende attributen

kan bestuderen.

Enkele van deze attributen worden gebruikt voor de grafische kenmerken van de boom. De kleur

wordt bepaald door de p-waarde of indien aanwezig door de gecorrigeerde p-waarde. Rood wil

49

Page 59: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

zeggen dat de categorie in kwestie overgerepresenteerd is en een gele kleur wil zeggen dat dit

niet zo is. De grootte van de knopen is afhankelijk van x : hoe groter x, hoe groter de knoop.

De gebruikte functie hiervoor heeft evenwel een maximum zodat buitensporig grote knopen niet

kunnen voorkomen. Voor de functie waarin x een variabele is zie sectie 4.5 op pagina 39.

Om de graaf in een boomstructuur te krijgen is er een extra plugin nodig. Voor deze hierarchische

lay-out hebben de makers van Cytoscape bij het pakket dat men kan downloaden van hun website

een plugin (met name ”HierarchicalLayout.jar”) geıncludeerd. Toen Cytoscape nog met Y-files

werkte zat deze lay-out standaard in het programma maar met de overschakeling naar GINY

hebben ze geopteerd om er een plugin van te maken.

50

Page 60: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Tab

el5.

1:C

orpu

sva

nhe

tda

tabe

stan

din

BiN

GO

Ter

mId

P-v

alue

corr

ecte

dP

-val

uex

Xn

NN

ame

6067

0.14

267e

-10.

4127

3e-1

129

510

107

etha

nolm

etab

olis

m

6520

0.41

348

0.49

989

129

184

1010

7am

ino

acid

met

abol

ism

1645

80.

2504

0e-1

0.57

463e

-12

2986

1010

7ge

nesi

lenc

ing

6793

0.38

179

0.46

856

129

166

1010

7ph

osph

orus

met

abol

ism

7154

0.44

034

0.51

509

129

200

1010

7ce

llco

mm

unic

atio

n

8652

0.27

013

0.36

467

129

109

1010

7am

ino

acid

bios

ynth

esis

6087

0.35

267e

-30.

1242

0e-2

229

1010

107

pyru

vate

dehy

drog

enas

eby

pass

7275

0.37

251

0.46

420

229

450

1010

7de

velo

pmen

t

4636

50.

6906

7e-8

0.50

860e

-75

2925

1010

7m

onos

acch

arid

eca

tabo

lism

4544

90.

2293

20.

3148

32

2931

610

107

regu

lati

onof

tran

scri

ptio

n

6950

0.29

376

0.37

180

229

376

1010

7re

spon

seto

stre

ss

9058

0.69

341e

-40.

2674

6e-3

1229

1227

1010

7bi

osyn

thes

is

9309

0.28

897

0.37

154

129

118

1010

7am

ine

bios

ynth

esis

4259

40.

3391

2e-1

0.72

290e

-11

2912

1010

7re

spon

seto

star

vati

on

...

...

...

...

...

...

...

...

51

Page 61: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Hoofdstuk 6

Clusteronderzoek met BiNGO

6.1 Inleiding

Dit hoofdstuk geeft een voorbeeld van de efficientie en het vermogen van BiNGO. Er wordt

namelijk een cluster onderzocht met de nieuw ontwikkelde plugin en de resultaten van dit on-

derzoek worden aan de werkelijkheid onderworpen. De cluster werd uit de graaf geselecteerd

die men ziet in figuur 6.1 op pagina 52. Dit is een graaf die verkregen is via het inladen van het

bestand galFiltered.sif (dat als sample data bij het hele Cytoscape-pakket zit) en door er

vervolgens de spring-embedded layout-optie uit het Cytoscape-menu op toe te passen.

Figuur 6.1: Screenshot: De graaf met test-data

Het voorbeeldbestand galFiltered.sif beschrijft een dataset van Ideker et al. [ITR+01] over

het galactose-metabolisme (een soort suiker) in de gist Saccharomyces cerevisiae. De auteurs

voerden talrijke experimenten uit om het galactose-metabolisme te verstoren en de respons te

meten. Naast eiwit-interactiedata bevat het netwerk ook informatie over transcriptiefactor-

52

Page 62: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

bindingsplaatsen. Daarnaast werden ook metabolische fluxen en expressie van genen gemoni-

tord. Het werk van Ideker et al. wordt algemeen beschouwd als een van de eerste geslaagde

toepassingen van het systeembiologie-concept (zoals beschreven in sectie 1.1.2 op pagina 2).

6.2 Bespreking van de geselecteerde cluster

In figuur 6.2 op pagina 53 ziet men de graaf uit sectie 6.1 op pagina 52 maar nu met de selectie

van de cluster. In figuur 6.3 op pagina 53 ziet men dan een close-up van de geselecteerde

cluster. De knopen zijn in een cirkelvormige lay-out geordend. Dit is enkel om een duidelijk

zicht te krijgen op de cluster. Er is geen verband tussen de eigenschappen van de knopen en de

cirkelvormige lay-out.

Figuur 6.2: Screenshot: De graaf met test-data met geselecteerde cluster

Figuur 6.3: Screenshot: De te onderzoeken cluster

53

Page 63: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

In tabel 6.1 op pagina 57 staan de genen met hun functies zoals ze op de site van mips1 (Mu-

nich Information center for Protein Sequences) in de Comprehensive Yeast Genome Database

(CYGD) gegeven zijn. CYGD is zoals de verklaring van de afkorting reeds laat vermoeden een

databank voor het gistgenoom en in die databank wordt voor elk gen in het genoom een reeks

gegevens bijgehouden waaronder ook de functie van het gen. Zo heeft bijvoorbeeld het gen

YBL021C als functie transcriptional activator. De knoop die als label een vraagteken heeft stelt

een gen voor waarvan men de betekenis niet kent en de functie niet achterhaalbaar is.

6.3 Screenshots van het onderzoek van de cluster met BiNGO

De cluster uit sectie 6.2 op pagina 53 wordt nu aan de verschillende opties van BiNGO on-

derworpen. Er is echter geopteerd bepaalde opties van BiNGO constant te houden tijdens de

verschillende onderzoeken. Zo is er voor α de gangbare waarde 0.05 gekozen. Voor de represen-

tatie van de graaf is er geopteerd om het aantal categorieen te beperken tot overgerepresenteerde

categorieen voor correctie. Als annotatiebestand is er geopteerd voor een bestand dat gekoppeld

kan worden aan het bestand voor de ontologie dat het biologisch proces inhoudt.

Het onderzoek van de cluster is gebeurd voor zowel de hypergeometrische test als de binomiale

test. Bij beide testen is er gebruik gemaakt van ofwel de Benjamini & Hochberg correctie van

de False Discovery Rate ofwel de Bonferroni correctie van de Family-Wise Error Rate. Ook is

er getest zonder multiple testing correctie. Voor elk van de combinaties van testen en correcties

is er dan nog eens getest tegenover het genoom en tegenover de graaf.

6.3.1 Screenshots van het testen tegenover het genoom

Hypergeometrische test

’Screenshot: Hypergeometrische test tegenover het hele genoom’ staat op pagina 58.

’Screenshot: Hypergeometrische test, Benjamini & Hochberg, genoom’ staat op pagina 59.

’Screenshot: Hypergeometrische test, Bonferroni, genoom’ staat op pagina 60.

Binomiale test

’Screenshot: Binomiale test tegenover het hele genoom’ staat op pagina 61.

’Screenshot: Binomiale test, Benjamini & Hochberg, genoom’ staat op pagina 62.

’Screenshot: Binomiale test, Bonferroni, genoom’ staat op pagina 63.1http://mips.gsf.de/genre/proj/yeast/index.jsp; mips

54

Page 64: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

6.3.2 Screenshots van het testen tegenover de graaf

Hypergeometrische test

’Screenshot: Hypergeometrische test tegenover de genen in de graaf’ staat op pagina 64.

’Screenshot: Hypergeometrische test, Benjamini & Hochberg, graaf’ staat op pagina 65.

’Screenshot: Hypergeometrische test, Bonferroni, graaf’ staat op pagina 66.

Binomiale test

’Screenshot: Binomiale test tegenover de genen in de graaf’ staat op pagina 67.

’Screenshot: Binomiale test, Benjamini & Hochberg, graaf’ staat op pagina 68.

’Screenshot: Binomiale test, Bonferroni, graaf’ staat op pagina 69.

6.4 Bespreking van het onderzoek van de geselecteerde cluster

Eerst en vooral kan er globaal opgemerkt worden dat de juiste categorieen voorkomen in de

grafen. De categorieen die te maken hebben met metabolisme en transcriptie komen in bijna

elk screenshot voor als roodgekleurde knopen en dit strookt met wat er staat in tabel 6.1 op

pagina 57. Tevens kan men zien dat er minder categorieen zijn in de screenshots waar er getest

is tegenover de graaf, zoals te verwachten was.

Als we de twee statistische testen vergelijken, dan valt het op dat voor de screenshots zonder

correctie de grafen identiek zijn. Maar met multiple testing correcties erbij wordt het toch

duidelijk dat de hypergeometrische test beter gekozen is dan de binomiale test bij het onder-

zoeken van deze cluster. Bij het toepassen van de Benjamini & Hochberg correctie van de False

Discovery Rate op de binomiale test tegenover de graaf wordt geen enkele categorie in verband

met transcriptie rood gekleurd, hoewel in tabel 6.1 op pagina 57 nochtans vele genen een functie

hebben die hiermee verband houden. Voor de verdere analyse van het onderzoek gaan we ons

dus toespitsen op de hypergeometrische test.

Bij de hypergeometrische test tegenover het genoom en zonder correctie worden alle bladeren

rood gekleurd. Wanneer men de Benjamini & Hochberg correctie van de False Discovery Rate

toepast krijgt men al wat minder rode knopen en krijgt men een mooi totaalbeeld van wat er

allemaal in de cluster zit. Bij het toepassen van de Bonferroni correctie van de Family-Wise

Error Rate krijgt men nog minder rode knopen en krijgt men een idee van wat er essentieel is

in de cluster.

55

Page 65: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Wanneer we nu tegenover de graaf testen dan bekomen we nog altijd dat alle bladeren rood

kleuren wanneer er geen correctie gebruikt wordt. Maar bij gebruik van de Benjamini &

Hochberg correctie van de False Discovery Rate wordt nu echter weergegeven wat essentieel

is in de cluster en bij gebruik van de Bonferroni correctie van de Family-Wise Error Rate wordt

geen enkele categorie in verband met transcriptie rood gekleurd. Zoals we reeds opgemerkt

hebben, zijn er zeker genen die als functie iets hebben dat in verband staat met transcriptie.

Hieruit kunnen we dus concluderen dat de beste resultaten bekomen worden door de combinatie

van de hypergeometrische test met de Benjamini & Hochberg correctie van de False Discovery

Rate, wat reeds in de handleiding in sectie 5.2 op pagina 45 werd gesuggereerd.

56

Page 66: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Tabel 6.1: Tabel met de genen en hun functies uit de geselecteerde cluster

Gen Functie

YBL021C transcriptional activator

YPL248C transcriptional activator of galactose-induced genes

YOR120W metabolism

YML051W negative regulator for the gene expression of the lac-

tose/galactose metabolic genes (transcription)

YBR020W transcriptional control

YGL035C involved in glucose-repression (transcriptional repressor)

YIL162W hydrolysis of terminal non-reducing beta-d-fructofuranoside

residues in beta-d-fructofuranosides (metabolism)

YLR377C key enzyme in gluconeogensis

YDR146C determines the mother-cell-specific transcription of the HO

endonuclease gene that is responsible for the initiation of

mating-type switching in yeast (transcriptional factor)

YDR009W Galactokinase

YBR019C converts UDP-glucose to UDP-galactose (metabolism)

YBR018C C4 epimerisation of galactose to glucose (metabolism)

YLR081W facilitated diffusion transporter required for both the

high-affinity galactokinase-dependent and low-affinity

galactokinase-independent galactose transport processes

(Cellular transport)

YOL051W auxiliary transcription activator for genes encoding

galactose-metabolizing enzymes

YKL109W CCAAT-binding factor subunit (transcriptional control)

YGL237C CCAAT-binding factor subunit (transcriptional control)

YJR048W cytochrome-c isoform 1 (energy - respiration)

57

Page 67: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.4: Screenshot: Hypergeometrische test tegenover het hele genoom

58

Page 68: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.5: Screenshot: Hypergeometrische test, Benjamini & Hochberg, genoom

59

Page 69: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.6: Screenshot: Hypergeometrische test, Bonferroni, genoom

60

Page 70: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.7: Screenshot: Binomiale test tegenover het hele genoom

61

Page 71: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.8: Screenshot: Binomiale test, Benjamini & Hochberg, genoom

62

Page 72: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.9: Screenshot: Binomiale test, Bonferroni, genoom

63

Page 73: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.10: Screenshot: Hypergeometrische test tegenover de genen in de graaf

64

Page 74: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.11: Screenshot: Hypergeometrische test, Benjamini & Hochberg, graaf

65

Page 75: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.12: Screenshot: Hypergeometrische test, Bonferroni, graaf

66

Page 76: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.13: Screenshot: Binomiale test tegenover de genen in de graaf

67

Page 77: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.14: Screenshot: Binomiale test, Benjamini & Hochberg, graaf

68

Page 78: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Figuur 6.15: Screenshot: Binomiale test, Bonferroni, graaf

69

Page 79: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Hoofdstuk 7

Besluit

BiNGO (Biological Network Gene Ontology) voldoet aan het doel van deze scriptie, namelijk

het schrijven van een programma met als functionaliteit het berekenen en visueel voorstellen van

overrepresentatie van functionele klassen in een cluster genen die de gebruiker selecteert in een

graaf. De software die voor deze scriptie ontwikkeld is, is opgevat als een plugin voor Cytoscape,

een bestaand pakket voor visualisatie van biologische netwerken. Deze scriptie is belangrijk voor

biologen bij het zoeken naar patronen en het evalueren van de functionele significantie van deze

patronen voor grote groepen van genen aangezien dit een tijdrovende bezigheid is zonder software

die de onderzoeker helpt bij het functioneel profileren van deze grote genen-sets. In dit hoofstuk

worden de conclusies en de toekomstperspectieven nog eens op een rij gezet.

7.1 Conclusies

Voor de functionaliteit die BiNGO vervult, bestonden reeds meerdere GO-tools. Deze vertoon-

den echter stuk voor stuk tekorten. BiNGO is gratis en platformonafhankelijk, bevat “Multi-level

analysis”, correctie voor multiple testing en de belangrijkste statistische tests. Dit zijn allemaal

eigenschappen waarvan er steevast minstens een ontbreekt in de andere GO-tools.

Maar wat BiNGO echt uniek maakt, is de integratie als plugin in Cytoscape. Cytoscape is

stilaan de standaard aan het worden voor visualisatie van biologische netwerken. Door gebruik

te maken van de kracht van de visualisatie in het moederprogramma kan er met de nieuw ont-

wikkelde plugin meer ontdekt worden door de onderzoeker. De interpretatie van het gedane

onderzoek is namelijk makkelijker wanneer er een goede visualisatie voorhanden is.

Voor de berekening van overrepresentatie van functionele klassen in een cluster genen zijn twee

statistische testen geımplementeerd: de hypergeometrische test en de binomiale test. Uit het on-

derzoek van de testcluster in hoofdstuk 6 op pagina 52 is gebleken wat er reeds theoretisch gezegd

70

Page 80: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

was over de correctheid van de testen, namelijk dat de hypergeometrische test betere resultaten

geeft dan de binomiale test. Tevens zijn er voor deze “multiple tests” correcties geımplementeerd:

de Bonferroni controle van de Family-Wise Error Rate en de Benjamini & Hochberg controle

van de False Discovery Rate. Ook hier werd in het onderzoek van de testcluster bevestigd wat

er reeds theoretisch gesteld was, namelijk dat de Benjamini & Hochberg controle van de False

Discovery Rate minder streng is dan de Bonferroni controle van de Family-Wise Error Rate en

dus gevoeliger is.

7.2 Distributie via website en cd-rom

Om de plugin en de versie van Cytoscape waarvoor het werkt te distribueren is er een website

gemaakt, namelijk http://www.psb.ugent.be/cbd/BiNGO/BiNGO.html. Bij deze scriptie zit er

tevens een cd-rom met daarop deze twee programma’s, maar ook nog tal van “extra’s”. De

bronbestanden van zowel BiNGO als Cytoscape v2.0 ALPHA1 zijn aanwezig op het schijfje,

net als de API met browsable source code van de plugin. Tevens zijn er hulpbestanden op het

schijfje gebrand: een ontologiebestand (go process080903.txt), een annotatiebestand (biological-

Process.txt) en een SIF-bestand (galFiltered.sif). Dat SIF-bestand is gebruikt voor het testen

van BiNGO aan de hand van een cluster genen. De resultaten van dit onderzoek staan ook op

de cd-rom. Zowel de originele screenshots als een handige webpagina waar men makkelijk de

verschillende resultaten kan vergelijken zijn ter beschikking. Ook de gratis Java-editor (JCre-

ator) waarmee het programma geschreven is en de thesistekst in pdf-formaat op de BiNGO-cd.

Tenslotte is er nog de README-file die de gebruiker wegwijs maakt aangaande de bestanden

op de cd-rom.

7.3 BiNGO in de toekomst

BiNGO is een project dat nooit af is. Zo kan er extra functionaliteit aan de plugin toegevoegd

worden of kan de huidige functionaliteit uitgebreid worden. In een scriptieonderwerp voor het

academiejaar 2004-2005 wordt gesuggereerd de mogelijkheid aan te bieden aan de onderzoeker

om algoritmen te gebruiken die clusters automatisch berekenen en selecteren naast de mogelijk-

heid die nu in BiNGO zit, namelijk het manueel selecteren van de cluster. Voor zeer ingewikkelde

netwerken waar clusters niet meer zomaar manueel kunnen geselecteerd worden zijn deze algo-

ritmen meer dan gewenst.

Hoewel de belangrijkste statistische methoden reeds geımplementeerd zijn, kan de huidige func-

tionaliteit inzake multiple testing en multiple testing corrections uitgebreid worden. Als extra

statistische test denk ik dan vooral aan de χ2-test.

71

Page 81: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Aangezien de ontwikkelaars van Cytoscape om de haverklap een nieuwe versie uitbrengen van

hun programma moet er ook blijvend aan BiNGO gewerkt worden om het compatibel te houden

met de laatste versie van het moederprogramma. Gezien het feit dat de ontwikkelaars van Cy-

toscape geen aandacht schenken aan de backwards-compatibility van plugins die voor andere

versies geschreven zijn, moet er dus voortdurend aan de software die voor deze scriptie ontwik-

keld is, gesleuteld worden. Nu is BiNGO compatibel met de versie Cytoscape v2.0 ALPHA1.

72

Page 82: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

Bibliography

[ABB+00] The Gene Ontology Consortium: M. Ashburner, C.A. Ball, J.A. Blake, D. Bot-

stein, H. Butler, J.M. Cherry, A.P. Davis, K. Dolinski, S.S. Dwight, J.T. Eppig,

M.A. Harris, D.P. Hill, L. Issel-Traver, A. Kasarskis, S. Lewis, J.C. Matese, J.E.

Richardson, M. Ringwald, G.M. Rubin, and G. Sherlock. Gene ontology: tool for

unification of biology. Nat Genet, 25:25–29, 2000.

[ABB+01] The Gene Ontology Consortium: M. Ashburner, C.A. Ball, J.A. Blake, D. Bot-

stein, H. Butler, J.M. Cherry, A.P. Davis, K. Dolinski, S.S. Dwight, J.T. Eppig,

M.A. Harris, D.P. Hill, L. Issel-Traver, A. Kasarskis, S. Lewis, J.C. Matese, J.E.

Richardson, M. Ringwald, G.M. Rubin, and G. Sherlock. Creating the gene onto-

logy resource: design and implementation. Genome Res, 11:1425–1433, 2001.

[ASDUD04] F. Al-Shahrour, R. Daz-Uriarte, and J. Dopazo. Fatigo: a web tool for finding

significant associations of gene ontology terms with groups of genes. Bioinformatics,

20:578–580, 2004.

[BDW+01] G.D. Bader, T. Donaldson, C. Wolting, B.F. Oellette, T. Pawson, and C.W. Hogue.

Bind - the biomolecular interaction network database. Nucleic Acids Res., 29:242–

245, 2001.

[BH95] Yoav Benjamini and Yosef Hochberg. Controlling the false discovery rate: A prac-

tical and powerfull aproach to multiple testing. Journal of the Royal Statistical

Society. Series B (Methodological), 57(1):289–300, 1995.

[BM98] V. Batagelj and A. Mrvar. Pajek - program for large network analysis. Connections,

21:47–57, 1998.

[Bon35] C. E. Bonferroni. Il calcolo delle assicurazioni su gruppi di teste. In Studi in Onore

del Professore Salvatore Ortu Carboni., 1935.

73

Page 83: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

[Bon36] C. E. Bonferroni. Teoria statistica delle classi e calcolo delle probabilita., volume 8.

Pubblicazioni del R Istituto Superiore di Scienze Economiche e Commerciali di

Firenze, 1936.

[CB02] G. Casella and Roger L. Berger. Statistical inference. Thomson Learning, 2002.

ISBN: 0534243126.

[DKM+03] Sorin Draghici, Purvesh Khatri, Rui P. Martins, G. Charles Ostermeier, and

Stephen A. Krawetz. Global functional profiling of gene expression. Genomics,

81:98–104, 2003.

[Ead84] P. Eades. A heuristic for graph drawing. Congressus Numerantium, 42:142–160,

1984.

[ESBB98] M.B. Eisen, P.T. Spellman, P.O. Brown, and D. Botstein. Cluster analysis and

display of genome-wide expression patterns. Proc. Natl. Acad. Sci., 95:14863–

14868, 1998.

[Fac01] V. Fack. Datastructuren en Algoritmen 1. Academia Press, P. Van Duyseplein 8,

9000 Gent, 2001.

[Fel68] W. Feller. An Introduction to Probability Theory and Its Applications., volume 1.

Wiley Text Books, 1968. ISBN: 0471257087.

[FvB93] L.D. Fisher and G. van Belle. Biostatistics: a methodology for health sciences. John

Wiley and Sons, New York, 1993. ISBN: 047116609X.

[GDS03] Yongchao Ge, Sandrine Dudoit, and Terence P. Speed. Resampling-based multi-

ple testing for microarray data analysis. Technical Report 633, Departement of

Statistics, University of California, Berkeley, January 2003.

[HDS+03] Douglas A. Hosack, Glynn Jr. Dennis, Brad T. Sherman, H. Clifford Lane, and

Richard A. Lempicki. Identifying biological themes within lists of genes with ease.

Genome Biology, 4:R70, September 2003.

[Hea00] T.R. Hughes et al. Functional discovery via a compendium of expression profiles.

Cell, 102:109–126, 2000.

[ITR+01] Trey Ideker, Vestein Thorsson, Jeffrey A. Ranish, Rowan Christmas, Jeremy Buh-

ler, Jimmy K. Eng, Roger Bumgarner, David R. Goodlett, Ruedi Aebersold, and

Leroy Hood. Integrated genomic and proteomic analyses of a systematically per-

turbed metabolic network. Science, 292:929–934, May 2001.

74

Page 84: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

[Kar01] P.D. Karp. Pathway databases: A case study in computational symbolic theories.

Science, 293:2040–2044, 2001.

[KDOK02] Purvesh Khatri, Sorin Draghici, G. Charles Ostermeier, and Stephen A. Krawetz.

Profiling gene expression utilizing onto-express. Genomics, 79(2):266–270, Febru-

ary 2002.

[KKF+81] J.W. Kennedy, G.W. Kaiser, L.D. Fisher, J.K. Fritz, J. Myers, W. andMudd,

and Ryan T. Clinical and angiographic predictors of operative mortality from the

collaborative study in coronary artery surgery (cass). Circulation, 63(4):793–802,

1981.

[PM01] K.D. Pruitt and D.R. Maglott. Refseq and locuslink: Ncbi gene-centered resources.

Nucleic Acids Res, 29(1):137–140, January 2001.

[SMO+03] Paul Shannon, Andrew Markiel, Owen Ozier, Nitin S. Baliga, Jonathan T. Wang,

Daniel Ramage, Nada Amin, Benno Schwikowski, and Trey Ideker. Cytoscape: A

software environment for integrated models of biomolecular interaction networks.

Genome Research, 13:2498–2504, 2003.

[TBET99] I.G. Tollis, G.D. Battista, P. Eades, and R. Tamassia. Graph drawing - Algorithms

for the visualization of graphs. Prentice Hall, Upper Saddle River, NJ, 1999.

[TDM+99] P. Tamayo, D. Dlonim, J. Mesirov, Q Zhu, S. Kitareewan, E. Dmitrovsky, E.S. Lan-

der, and T.R. Golub. Interpreting patterns of gene expression with self-organizing

maps: Methods and application to hematopoietic differentiation. Proc. Natl. Acad.

Sci., 96:2907–2912, 1999.

[THC+99] S. Tavazoie, J.D. Hughes, M.J. Campbell, R.J. Cho, and G.M. Church. Systematic

determination of genetic network architecture. Nat. Genet., 22:281–285, 1999.

[VVDVA03] P. Verbeeck, M. Van Dale, and S. Van Aelst. Wiskunde en statistiek: Cursus voor

de tweede kandidatuur geologie. pages 48–61, 2003.

[WCF+01] E. Wingender, X. Chen, E. Fricke, R. Geffers, R. Hehl, I. Liebich, M. Krull,

V. Matys, H. Michael, and R. Ohnauser et al. The transfac system on gene regu-

lation. Nucleic Acids Res., 29:281–283, 2001.

[WHD+02] Lani F. Wu, Timothy R. Hughes, Armaity P. Davierwala, Mark D. Robinson,

Roland Stoughton, and Steven J. Altschuler. Large-scale prediction of saccha-

romyces cerevisiae gene function using overlapping transcriptional clusters. Nature

Genetics, 31:255–265, July 2002.

75

Page 85: BiNGO: een Cytoscape-plugin voor functionele annotatie …lib.ugent.be/fulltxt/RUG01/000/821/574/RUG01-000821574_2010_0001... · Dankwoord Graag zou ik iedereen willen bedanken die

[XE01] I. Xenarios and D. Eisenberg. Protein interaction databases. Curr. Opin. Biotech-

nol., 19:375–378, 2001.

[ZFW+03] Barry R. Zeeberg, Weimin Feng, Geoffrey Wang, May D. Wang, Anthony T. Fojo,

Margot Sunshine, Sudarshan Narasimhan, David W. Kane, William C. Reinhold,

Samir Lababidi, Kimberly J. Bussey, Joseph Riss, J. Carl Barrett, and John N.

Weinstein. Gominer: a resource for biological interpretation of genomic and pro-

teomic data. Genome Biology, 4:R28, 2003.

[ZSKS04] Bing Zhang, Denise Schmoyer, Stefan Kirov, and Jay Snoddy. Gotree machine

(gotm): a web-based platform for interpreting sets of interesting genes using gene

ontology hierarchies. BMC Bioinformatics, 5:16, 2004.

76