• No results found

Een Unipept desktoptoepassing voor lokale analyse van metaproteomics data

N/A
N/A
Protected

Academic year: 2021

Share "Een Unipept desktoptoepassing voor lokale analyse van metaproteomics data"

Copied!
78
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

van metaproteomicsdata

Een Unipept desktoptoepassing voor lokale analyse

Academiejaar 2019-2020

Master of Science in de informatica

Masterproef ingediend tot het behalen van de academische graad van

Begeleider: Pieter Verschaffelt

Promotoren: prof. dr. Peter Dawyndt, Bart Mesuere

Studentennummer: 01406553

(2)
(3)

Een Unipept desktoptoepassing voor

lokale analyse van metaproteomicsdata

door

Philippe Van Thienen

Scriptie ingediend tot het behalen van de academische graad van

MASTEROF SCIENCE IN DE INFORMATICA

Academiejaar 2019-2020

Promotoren: prof. dr. Peter Dawyndt, dr. ir. Bart Mesuere Begeleider: Pieter Verschaffelt

Samenvatting

Unipept is een open-source webapplicatie voor de analyse van metaproteomicsdata. De huidige versie biedt een taxonomische en functionele analyse aan van de peptide-lijsten van metaproteomicsstalen, met behulp van een snelle peptide-naar-eiwitindex. Deze index wordt in het bijzonder opgebouwd uit de data van de UniProt kennis-bank, een generieke eiwitdatabank. Nieuwe technieken zoals proteogenomics maken het mogelijk om specifieke eiwitdatabanken op te bouwen voor een bepaalde omge-ving of gemeenschap van organismen. Deze specifieke eiwitdatabanken beloven de nauwkeurigheid van metaproteoomanalyses aanzienlijk te verhogen.

In deze masterproef stellen we een desktoptoepassing voor die de volledige analyse van metaproteomics stalen ondersteunt en het gebruik van specifieke databanken in de toekomst mogelijk maakt. Deze desktoptoepassing wordt gebouwd op het Elec-tron applicatieframework om op een snelle en effici¨ente manier functiepariteit met de Unipept webapplicatie te bereiken. De metaproteoomanalysecode wordt herwerkt om in de toekomst heterogene inputdataformaten te ondersteunen en de integratie van verschillende analyse pipelines mogelijk te maken.

Daarnaast wordt ondersteuning voor InterPro-annotaties toegevoegd aan de Unipept-databank. InterPro biedt een functionele classificatie aan van eiwitsequenties en wordt op grote schaal gebruikt binnen de wetenschappelijke gemeenschap. Hierdoor belooft InterPro een nuttige toevoeging te zijn aan de bestaande functionele analyse van metaproteoomstalen.

(4)

A Unipept desktop application for local analysis of metaproteomics data

Philippe Van Thienen

15th January 2020

Abstract

Unipept is an open source web application for metapro-teome data analysis. The latest version provides a tax-onomic and functional analysis of the peptide lists of metaproteome samples, using a fast peptide to protein index. This index is built from the UniProt knowledge-base, a generic protein database. Recent techniques such as proteogenomics allow researchers to build tar-geted protein databases which promise to significantly increase the accuracy of metaproteome sample analy-ses. This paper introduces a desktop application that supports the full Unipept metaproteome analysis of single metaproteome samples and allows for the use of targeted protein databases in the future.

1

Introduction

Unipept [4] is an open source web application1 for

metaproteome data analysis. The latest version pro-vides a taxonomic and functional analysis of the pep-tide lists of metaproteome samples. Analysis results are presented in interactive data visualizations that make it possible to easily locate and understand the most important data, even for very large and complex samples. In addition Unipept provides an application programming interface (API) [8] and command line in-terface (CLI) [7] which allow easy integration of the Unipept analysis pipeline in third-party applications (e.g. GalaxyP [6]).

To achieve a fast and accurate metaproteome analysis, Unipept makes use of a fast index, stored in the

Unipept database, that maps peptides to proteins. This index is built from the information found in the UniProt knowledgebase (UniProtKB) [2] that consists of functional and taxonomic information on proteins. This information is aggregated for all occurring tryptic peptides and stored in the database. By using this index Unipept is able to derive the organisms most likely present in a metaproteome sample as well as their functions.

Recent techniques such as proteogenomics [5] [9] al-low researchers to build targeted protein databases for specific environments or bacterial communities. These targeted databases allow for more accurate metapro-teome analyses with less false positives and negatives compared to generic protein databases. In addition, these databases are smaller, allowing analyses to be carried out more quickly.

The Unipept web application currently does not al-low the use of targeted protein databases due to server bandwidth, storage and processing limitations. To sup-port targeted protein databases these shortcomings ne-cessitate shifting the data processing to the client. To this end a desktop application is developed that sup-ports the Unipept metaproteome analysis and allows for the use of targeted protein databases in the future.

2

Methods

The Unipept desktop application is built on the open source Electron application framework2 3. This

(5)

work makes it possible to develop cross-platform desk-top applications with modern web technologies. This is achieved by combining Node.js and the Chromium ren-dering library. Node.js4 is a JavaScript runtime

envi-ronment that extends Chrome’s V8 JavaScript engine5

with a single-threaded non-blocking event loop and a low-level I/O-API. This effectively allows the local ex-ecution of JavaScript code, outside of a browser, with full non-blocking access to the local file system and

re-mote data sources. The Chromium rendering library6

is used to render local web pages. Electron provides prebuilt binaries for all modern platforms for easy dis-tribution. Furthermore, an automatic updater is pro-vided that is built upon Squirrel7, a cross-platform

ap-plication update framework.

Electron is currently one of the most popular Node.js-based application frameworks and powers many popu-lar desktop applications such as Microsoft’s Visual Stu-dio Code and Slack.

2.1 Low-effort feature parity

An important motivator for using the Electron appli-cation framework is that it allows for low-effort feature parity with the Unipept web application. To this end all Unipept metaproteome analysis application code is isolated in a single GitHub repository called

unipept-web-components8 and published as an npm package9.

Both applications use this package to include common components. This results in maximal code reuse be-tween both applications and should minimize develop-ment time in the future.

2.2 Code restructuring

During its migration to the unipept-web-components GitHub repository the Unipept metaproteome

analy-4https://nodejs.org 5https://v8.dev/ 6https://www.chromium.org/ 7https://github.com/Squirrel 8https://github.com/unipept/unipept-web-components/ 9https://www.npmjs.com/package/ unipept-web-components

sis code was revised and restructured to allow for the separate extension of input data formats and analyses. This was done to increase the overall code quality and to easily support data formats such as ISA-tab [10] [3] in the future. Furthermore, this restructuring should allow for the further analysis of metagenomic samples using the results from the Unipept Metagenomics Anal-ysis Pipeline (UMGAP)10.

3

Results

Figure 1 shows the Unipept desktop application with the results of a metaproteome sample analysis. In the resizable sidebar to the left users can manage metapro-teome samples. For each analysed sample a summary of the analysis can be requested as shown in figure 2. In particular, this summary shows a list of all unmatched peptides which can be further studied with the NCBI BLAST tool [1].

The Unipept desktop application fully supports the taxonomic and functional analysis of metaproteome samples currently supported in the Unipept web ap-plication. All analysis results can be downloaded as

images or CSV files. Comparison of metaproteome

samples is currently not supported.

Figure 3 shows the settings page of the application. On this page users can change platform specific settings as well as the API-endpoint used for the analysis. By changing this endpoint users can change the database used by the analysis. This feature is central in the future support of targeted protein databases.

4

Conclusion

In this extended abstract we presented a Unipept desk-top application, developed with the Electron applica-tion framework, that achieves low-effort feature parity with the Unipept web application and allows for the use of targeted protein databases in the future. Fur-thermore, the development of this application paves the

(6)

way for future support of heterogeneous data formats and the integration of different analysis pipelines.

Figure 1: Unipept desktop application showing the re-sult of a metaproteome sample analysis.

Figure 2: Summary of the analysis of a metaproteome sample in the Unipept desktop application.

Figure 3: Settings page of the Unipept desktop appli-cation.

References

[1] Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, and David J. Lipman. Basic local alignment search tool. Journal of Molecular Biology, 215(3):403 – 410, 1990.

[2] The UniProt Consortium. UniProt: a worldwide hub of protein knowledge. Nucleic Acids Research, 47(D1):D506–D515, 11 2018.

[3] Rocca-Serra et. al. Specification documentation: Isa-tab 1.0. http://doi.org/10.5281/zenodo. 161355, January 2009.

[4] Robbert Gurdeep Singh, Alessandro Tanca, An-tonio Palomba, Felix Van der Jeugt, Pieter Ver-schaffelt, Sergio Uzzau, Lennart Martens, Peter Dawyndt, and Bart Mesuere. Unipept 4.0: Func-tional analysis of metaproteome data. Journal of Proteome Research, 18(2):606–615, 2019.

[5] Jacob Jaffe, Howard Berg, and George Church. Proteogenomic mapping as a complementary

method to perform genome annotation.

Pro-teomics, 4:59–77, 01 2004.

(7)

Nelson L. Rhodus, Joel Rudney, and Timothy J. Griffin. Metaproteomic analysis using the galaxy

framework. PROTEOMICS, 15(20):3553–3565,

2015.

[7] Bart Mesuere, Felix Van der Jeugt, Toon Willems, Tom Naessens, Bart Devreese, Lennart Martens, and Peter Dawyndt. High-throughput metapro-teomics data analysis with unipept: A tutorial. Journal of Proteomics, 171:11 – 22, 2018. Tutori-als in Bioinformatics for Biological Science. [8] Bart Mesuere, Toon Willems, Felix Van der

Jeugt, Bart Devreese, Peter Vandamme, and Pe-ter Dawyndt. Unipept web services for

metapro-teomics analysis. Bioinformatics, 32(11):1746–

1748, 01 2016.

[9] Alexey Nesvizhskii. Proteogenomics: Concepts, applications and computational strategies. Nature methods, 11:1114–25, 10 2014.

[10] Susanna-Assunta Sansone, Philippe Rocca-Serra, Field Dawn, Eamonn Maguire, Christopher Tay-lor, Oliver Hofmann, Hong Fang, Steffen Neu-mann, Weida Tong, Linda Amaral-Zettler, Kim-berly Begley, Timothy Booth, Lydie Bougueleret, Gully Burns, Brad Chapman, Tim Clark, Lee-Ann Coleman, Jay Copeland, Sudeshna Das, and Win-ston Hide. Toward interoperable bioscience data. Nature genetics, 44:121–6, 02 2012.

(8)

Vulgariserende samenvatting

Alle organismen op aarde zijn opgebouwd uit cellen. Deze cellen bevatten het gene-tisch materiaal van een organisme in de vorm van DNA. Dit zijn complexe moleculen, opgebouwd uit 2 lange strengen van nucleotiden, die de opbouw en werking van een organisme bepalen. DNA komt in een organisme tot expressie als eiwit of prote¨ıne in een proces genaamd eiwitsynthese. Eiwitten voeren diverse functies uit binnen een or-ganisme en zijn opgebouwd uit een keten van aminozuren. De specifieke volgorde van aminozuren bepaalt de functie van een eiwit.

Het volledige DNA van een organisme bepaalt de verzameling van eiwitten die binnen een organisme tot expressie kunnen komen. Elk organisme heeft dus een kenmerkende verzameling van eiwitten. Zo kunnen de organismen die voorkomen in een bepaalde omgeving bepaald worden aan de hand van de eiwitten die in de omgeving tot expressie komen. De verzameling van alle eiwitten die tot expressie kunnen komen binnen een bepaalde omgeving of gemeenschap van organismen heet het metaproteoom. Metapro-teomics is de studie van het metaproteoom. Het proteoom is de verzameling van alle eiwitten die tot expressie kunnen komen in (een deel van) een organisme.

Unipept is een webapplicatie voor functionele en biodiversiteitsanalyse van metaprote-omics data. Om de analyses mogelijk te maken maakt Unipept gebruik van een eigen databank die in het bijzonder opgebouwd is uit een generieke eiwitdatabank genaamd UniProtKB. Het gebruik van generieke eiwitdatabanken heeft echter een negatieve in-vloed op de accuraatheid van de analyseresultaten. Om betere resultaten te bekomen kunnen specifieke eiwitdatabanken gebruikt worden die opgebouwd zijn voor de te onder-zoeken omgeving. Het is echter niet mogelijk om specifieke databanken te ondersteunen in de Unipept webapplicatie aangezien deze te groot zijn om verzonden te worden naar en verwerkt te worden door de server.

De doelstelling van deze masterproef is het ontwikkelen van een desktopapplicatie waar-mee we high-throughput metaproteomics data-analyse mogelijk kunnen maken. Daar-naast moet deze desktopapplicatie het mogelijk maken om specifieke databanken te gebruiken tijdens de analyse van stalen. Functiepariteit met de Unipept webapplica-tie moet bovendien ondersteund worden met minimale inspanning. Ten einde dit te verwezenlijken werd gebruikgemaakt van een applicatieframework genaamd Electron dat het mogelijk maakt om desktopapplicaties te ontwikkelen a.d.h.v. webtechnolo-gie¨en. Hierdoor wordt een groot deel van de applicatiecode gedeeld tussen de web- en

(9)

en analyses te bevorderen. In de originele code was er namelijk een te hoge koppeling tussen het gebruikte inputdataformaat en de analyses. Deze werden ontkoppeld a.d.h.v. een nieuw intermediair dataformaat. Daarnaast werden verscheidene aanpassingen ge-maakt om de kwaliteit van de code te verhogen.

Een bijkomende doelstelling van deze masterproef, die als eerste werd gerealiseerd ten einde de Unipept-codebase gewoon te worden, is het toevoegen van InterPro-annotaties aan de Unipept-databank en het beschikbaar stellen van deze annotaties via de Unipept web-API en CLI. De Unipept web-API laat externe applicaties toe om de functionaliteit van Unipept te integreren. De CLI is een wrapper rond de web-API die deze op een gebruiksvriendelijke manier beschikbaar stelt en de verwerking van grote hoeveelheden data vereenvoudigt.

Unipept ondersteunt momenteel een functionele analyse van metaproteoomstalen met behulp van de functionele annotaties uit twee ontologie¨en: de Gene Ontology en En-zym Commission Numbers. InterPro biedt een functionele classificatie aan van eiwitse-quenties en wordt op grote schaal gebruikt binnen de wetenschappelijke gemeenschap. Hierdoor belooft InterPro een nuttige toevoeging te zijn aan de bestaande functionele analyse van metaproteoomstalen.

(10)

Dankwoord

In de eerste plaats zou ik graag Pieter Verschaffelt, doctor Bart Mesuere en professor Peter Dawyndt bedanken voor de vlotte begeleiding en duidelijke feedback tijdens het verloop van deze masterproef. Ik ben hen enorm dankbaar voor de steun en het vertrou-wen in mij. Zonder de wekelijkse meetings zou deze masterproef niet zo vlot verlopen zijn. Ik zou in het bijzonder Pieter Verschaffelt willen bedanken voor de vlotte en toffe samenwerking tijdens het implementeren van de desktopapplicatie. Daarnaast zou ik graag mijn ouders en zus willen bedanken voor hun uitgebreide steun en geloof in mij tijdens de voorbije 5 jaar. Zij boden mij steeds een luisterend oor aan en hielpen mij de zaken te relativeren tijdens de meest stressvolle momenten. Ten slotte zou ik graag mijn trouwe viervoeters bedanken, mijn hond Eliot en kat Maya, voor de dagelijkse avondwandelingen en de schoot- en toetsenbordverwarming.

(11)

Deze pagina is niet beschikbaar omdat ze persoonsgegevens bevat.

Universiteitsbibliotheek Gent, 2021.

This page is not available because it contains personal information.

Ghent University, Library, 2021.

(12)

Inhoudsopgave

1 Situering 1

1.1 Biologische context . . . 1

1.1.1 Cellen en micro-organismen . . . 1

1.1.2 Taxonomie . . . 1

1.1.3 DNA, eiwitten en eiwitsynthese. . . 3

1.1.4 Metaproteomics . . . 4

1.1.5 Shotgun metaproteomics . . . 5

1.1.6 Metagenomics, transcriptomics en proteogenomics . . . 6

1.2 Unipept: functionele analyse van metaproteoomgegevens . . . 7

1.2.1 Webapplicatie . . . 7 1.2.2 Databank . . . 9 1.2.3 Toepassingen . . . 14 1.2.4 Web-API en CLI . . . 20 1.2.5 GitHub . . . 21 1.3 Doelstelling . . . 21

2 Functionele Analyse: InterPro 23 2.1 InterPro . . . 23

(13)

2.4 Web-API en CLI . . . 27 2.4.1 API-endpoint pept2interpro. . . 27 2.4.2 CLI . . . 29 3 Desktopapplicatie 30 3.1 Doelstelling . . . 31 3.2 Ontwikkelproces . . . 31 3.3 Technologie¨en . . . 31 3.3.1 Electron . . . 31 3.3.2 GitHub . . . 34 3.3.3 npm . . . 35 3.4 Migratie metaproteoomanalysecode . . . 44 3.4.1 Originele codestructuur . . . 44 3.4.2 Count Tables . . . 49 3.4.3 Finale codestructuur . . . 50 3.5 Opbouw desktopapplicatie . . . 54 3.6 Aanpassingen Unipept-webapplicatie . . . 59 3.7 Conclusie . . . 60 4 Toekomstig werk 61 4.1 InterPro . . . 61 4.2 Desktopapplicatie . . . 61

4.2.1 Gebruik van gerichte databanken . . . 61

4.2.2 Comparatieve analyse . . . 62

(14)

Hoofdstuk 1

Situering

1.1

Biologische context

1.1.1 Cellen en micro-organismen

1.1.1.1 Organismen

Onder organismen verstaan we alle levende wezens met een eigen metabolisme (stofwis-seling). Een voor de hand liggend voorbeeld van organismen zijn dieren en de mens. Ook planten, algen en bacteri¨en worden echter beschouwd als organismen.

Organismen die zo klein zijn dat ze niet met het blote oog waarneembaar zijn, heten micro-organismen. Deze organismen spelen een belangrijke rol in het tot stand houden van het leven op aarde. Naar schatting zouden er maar liefst 1 triljoen verschillende soorten micro-organismen bestaan op aarde. Meer dan 99 procent van deze soorten zijn echter onbekend [17]. Voorbeelden van micro-organismen zijn bacteri¨en en schimmels. Alle organismen op aarde zijn opgebouwd uit cellen. Meercellige organismen, bijv. dieren, zijn opgebouwd uit verschillende soorten cellen terwijl eencellige organismen, bijv. bacteri¨en, maar uit 1 cel bestaan.

1.1.2 Taxonomie

Taxonomie is een tak van de biologie die zich bezighoudt met het benoemen en classi-ficeren van organismen. Er bestaan verschillende classificatiesystemen of taxonomie¨en. Hierbij krijgt elke groep organismen die als een eenheid beschouwd worden een taxon die de groep benoemt. Elk taxon heeft daarnaast meestal een rang die het niveau beschrijft waarop een taxon zich bevindt (bijv. soort of geslacht).

(15)

1.1 visualiseert de fylogenetische levensboom.

Figuur 1.1: Een visualisatie van een fylogenetische levensboom voor 191 soorten waarvan de genomen volledig gekend zijn. De gekleurde sectie van de cirkel bevat de namen van deze 191 soorten en is onderverdeeld in 3 regio’s: groen voor de soorten die behoren tot de archaea, rood voor de soorten die behoren tot de eukaryoten en blauw voor de soorten die behoren tot de bacteri¨en. De binnenkant van deze cirkel bevat de fylogenetische boom die begint bij het worteltaxon van de cellulaire organismen en zich vertakt op basis van de fylogenetische relaties tussen de organismen. [7] [16].

De LCA (Lowest Common Ancestor) van een verzameling taxa is de taxon in de fylo-genetische boom die voorouder is van alle taxa in de verzameling en zich het verst van de wortel bevindt. De afstamming van een taxon is de reeks taxa die zich op het pad bevinden van de worteltaxon van de fylogenetische boom naar de taxon.

1.1.2.1 Cellen

Cellen bevatten het genetisch materiaal van een organisme in de vorm van DNA. Ze worden onderverdeeld in twee verschillende types op basis van hun structuur: prokaryote en eukaryote cellen. Prokaryote cellen hebben een relatief eenvoudige opbouw zoals afgebeeld in figuur 1.2a. Eukaryote cellen zijn complexer en bevatten in het bijzonder een celkern zoals afgebeeld in figuur 1.2b.

(16)

(a) Doorsnede prokaryote cell. [19]. (b) Doorsnede eukaryote cell. [20]. Figuur 1.2: Een vergelijking tussen de opbouw van prokaryote en eukaryote cellen. beide type cellen op een verschillende plaats bevindt. In eukaryote cellen bevindt het DNA zich in de celkern, gescheiden van de rest van de cel door het kernmembraam. In prokaryote cellen bevindt het DNA zich los in het cytoplasma. Dit zorgt ervoor dat eiwitsynthese in beide type cellen niet precies op dezelfde manier plaatsvindt.

1.1.3 DNA, eiwitten en eiwitsynthese.

1.1.3.1 DNA

Zoals eerder vermeld, bevatten alle cellen genetisch materiaal in de vorm van DNA, een molecule opgebouwd uit 2 lange strengen van nucleotiden.

Nucleotiden zijn opgebouwd uit ´e´en tot drie fosfaatgroepen, een pentose (een suiker met vijf koolstofatomen) en een nucleobase (cytosine, guanine, adenine of thymine) zoals afgebeeld in figuur 1.3b. Wanneer DNA wordt voorgesteld worden de nucleotiden voorgesteld door de letters C (Cytosine), T (Thymine), G (Guanine) en A (Adenine) die staan voor de nucleobasen en elk type nucleotide uniek voorstellen. Figuur 1.3a toont een voorbeeld van een stukje DNA.

DNA in een cel bevindt zich in chromosomen. Een chromosoom kan gezien worden als een verpakte vorm van DNA. Alle cellen van een organisme, op enkele uitzonderingen na, bevatten dezelfde chromosomen. Het aantal chromosomen is per soort organisme echter verschillend, zo bevatten de cellen van een mens 46 chromosomen (2 × 23 paren) terwijl de cellen van een chimpansee 48 chromosomen (2 × 24 paren) bevatten. Wanneer het geheel van genetisch materiaal in een cel van een organisme wordt beschouwd spreekt men van het genoom van een organisme.

(17)

(a) (b)

Figuur 1.3: Schematische voorstelling van een DNA-fragment (a) [18] en de nucleotide adenine (b) [6].

selijke eiwitten. Een peptide is een klein deel van zo’n keten en bestaat meestal uit 2 tot 50 aminozuren.

Eiwitten voeren diverse functies uit binnen een organisme. Zo bestaan er eiwitten die verschillende structuren binnen een organisme in stand houden, het transport van stoffen binnen een organisme faciliteren, etc.

Het proces waarbij DNA wordt omgezet tot eiwitten wordt eiwitsynthese genoemd. Dit proces is in eukaryote en prokaryote cellen in grote lijnen hetzelfde.

1.1.3.3 Eiwitsynthese

RNA (Ribonucle¨ınezuur) is een molecuul dat sterk lijkt op DNA. Het is opgebouwd uit ´e´en lange streng van nucleotiden. In de plaats van de nucleotide thymine komt echter uracil voor in RNA.

Het eiwitsyntheseproces bestaat algemeen uit 2 fasen: de transcriptiefase en de trans-latiefase. Tijdens de transcriptiefase wordt DNA gesplitst en vertaald naar messenger RNA of mRNA. Ten slotte wordt in de translatiefase dit mRNA vertaald naar een eiwit aan de hand van ribosomen die codons (dit zijn triplets van nucleotiden in mRNA) naar aminozuren vertalen.

Aangezien DNA in eukaryote cellen zich in de celkern bevindt, moet mRNA eerst ge-transporteerd worden door het kernmembraam vooraleer het getransleerd kan worden. Dit is in prokaryote cellen niet nodig aangezien DNA zich daar in het cytoplasma be-vindt. Figuur 1.4 visualiseert het eiwitsyntheseproces in eukaryote cellen.

1.1.4 Metaproteomics

Proteomics is de studie van het proteoom: de verzameling van alle eiwitten die in een or-ganisme (of een deel van een oror-ganisme) tot expressie kunnen komen. Een voorbeeld van een proteomicsonderzoek is het ontdekken van nieuwe biomerkers die gebruikt kunnen

(18)

Figuur 1.4: Het veralgemeende eiwitsyntheseproces in eukaryote cellen. [28] worden om ziekten te diagnosticeren [29].

Metaproteomics is de studie van het metaproteoom: de verzameling van alle eiwitten die tot expressie kunnen komen in een bepaalde omgeving of gemeenschap. Een voorbeeld van een metaproteomicsonderzoek is de identificatie en analyse van micro-organismen die voorkomen in de stoelgang van de mens [30].

Metaproteomics laat het dus toe de biodiversiteit van een omgeving of gemeenschap te onderzoeken en de functionaliteit van de aanwezige microben te analyseren. Aan de andere kant kunnen onbekende microben gedetecteerd worden a.d.h.v. hun eiwitpro-ducten. High-throughput metaproteomics kan hierdoor een revolutie in de microbiologie teweeg brengen en ons inzicht in de diversiteit en ecologie van verscheidene omgevingen en gemeenschappen drastisch vergroten.

1.1.5 Shotgun metaproteomics

Om een metaproteomics onderzoek uit te voeren, moet het te onderzoeken metaprote-oom zo accuraat mogelijk bepaald kunnen worden. Een relatief nieuwe en veel gebruikte techniek is shotgun metaproteomics. Figuur 1.5 visualiseert deze techniek.

Eerst worden aan de hand van een protease de eiwitten van het te onderzoeken mon-ster opgesplitst in peptiden. Een protease is een enzym dat peptidebindingen tussen bepaalde aminozuren verbreekt. Een veelgebruikte protease is trypsine, dat een amino-zuurketen splitst na elk voorkomen van lysine (K) of arginine (R), tenzij een van beide aminozuren gevolgd wordt door proline (P). De hierdoor verkregen peptiden worden tryptische peptiden genoemd.

(19)

Figuur 1.5: Data-flow diagram voor shotgun metaproteomics. Gebaseerd op [14]

Vervolgens worden de samenstellingen van de verkregen peptiden ge¨ıdentificeerd aan de hand van een massaspectrometer. Een massaspectrometer ioniseert de moleculen in een monster, verdeelt de resulterende ionen en detecteert deze aan de hand van hun massa/ladingsverhouding (m/z). Deze m/z-waarden worden ten slotte uitgezet op een massaspectrum voor elke peptide.

Ten slotte worden de meest waarschijnlijke peptiden, en uiteindelijk eiwitten, ge¨ıdentificeerd die overeenkomen met deze massaspectra. Dit gebeurt meestal aan de hand van een ei-witdatabank. De eiwitten in de databank worden in silico verwerkt volgens de regels van het gebruikte protease. De theoretische massaspectra van de hierdoor verkregen pepti-den worpepti-den daarna gematcht aan de experimenteel verkregen massaspectra. Zo worpepti-den de meest waarschijnlijke peptiden en uiteindelijk eiwitten waarvan deze peptiden afkom-stig zijn bepaald. Aangezien een peptide in meerdere eiwitten kan voorkomen is deze matching niet eenduidig. Daarnaast hebben de aminozuren isoleucine (I) en leucine (L) dezelfde massa waardoor deze moeilijk te onderscheiden zijn in de massaspectra.

1.1.6 Metagenomics, transcriptomics en proteogenomics

Metagenomics is de studie van het metagenoom: de verzameling genomen van de or-ganismen in een bepaalde omgeving of gemeenschap. Aan de hand van metagenomics technieken kunnen metagenomen samengesteld worden en microben in een bepaalde

(20)

omgeving bestudeerd worden. Net als genomics is metagenomics gebaseerd op DNA se-quencing technieken. Een voorbeeld van een metagenomics onderzoek is het analyseren van het microbioom van de menselijke darm [3].

Transcriptomics is de studie van het transcriptoom: de verzameling RNA-transcripten (mRNA, tRNA en rRNA) die geproduceerd worden door het genoom in een specifieke cel of verzameling van cellen. Aan de hand van transcriptomics technieken kunnen genen ontdekt worden die anders tot expressie komen onder verschillende omstandigheden of in verschillende cellen, en kan het gedrag van deze genen bestudeerd worden.

Proteogenomics bevindt zich op het snijvlak van proteomics en genomics. Met behulp van genomics en transcriptomics data wordt een databank van eiwitsequenties opge-bouwd die ongewone peptiden kan helpen identificeren die niet in generieke eiwitdata-banken voorkomen. Deze gerichte dataeiwitdata-banken bevatten minder eiwitten en zorgen dus voor minder foutnegatieven. Daarnaast zijn deze databanken kleiner dan eiwitdataban-ken wat voor een snellere analyse zorgt.

Proteogenomics kan de resultaten van metaproteomicsonderzoeken verbeteren door ge-richte eiwitdatabanken voor de te onderzoeken omgeving of gemeenschap op te bouwen. Deze databanken kunnen bijvoorbeeld gebruikt worden in de identificatiestap van shot-gun (meta)proteomics, maar ook in de analyse van metaproteomen. Proteogenomics is een belangrijke motivator voor het ontwikkelen van de Unipept-desktopapplicatie (zie hoofdstuk 3).

1.2

Unipept: functionele analyse van

metaproteoomgege-vens

Unipept (https://unipept.ugent.be)[13] is een webapplicatie voor functionele en bio-diversiteitsanalyse van metaproteomics data. De applicatie is volledig open source onder de MIT licentie en wordt ontwikkeld in de vakgroep toegepaste wiskunde, informatica en statistiek van de Universiteit Gent.

Wat volgt is een beschrijving van de gebruikte technologie¨en voor de Unipept webappli-catie, de opbouw en inhoud van de Unipept databank en de toepassingen die aangeboden worden door Unipept.

1.2.1 Webapplicatie

De webapplicatie van Unipept bestaat uit een Ruby on Rails backend en een JavaScript frontend die deels gebruik maakt van het Vue.js framework. TypeScript wordt gebruikt om onder meer statische typering te ondersteunen. Ondersteuning voor Typescript en Vue.js werd recent toegevoegd door Verschaffelt Pieter [13].

(21)

1.2.1.1 Ruby on Rails

Ruby on Rails is een server-side webapplicatie framework dat vrij beschikbaar is onder

de MIT licentie 1. Een gedetailleerde beschrijving van dit framework is niet nodig om

de inhoud van deze masterproef te begrijpen en wordt daarom achterwege gelaten. Dit framework dient voornamelijk als een abstractie van de Unipept databank en implemen-teert hiervoor een web-API. Daarnaast genereert dit framework dynamische webpagina’s voor de web server.

1.2.1.2 Vue.js

Vue.js is JavaScript framework dat gebruik maakt van het MVVM (Model–View–ViewModel)

paradigma en vrij beschikbaar is onder de MIT licentie 2. Het stroomlijnt de weergave

van dynamische HTML op basis van data, gebruikersinteracties en logica.

De gebruikersinterface wordt opgebouwd als een boom van kleine, op zichzelf staande, en herbruikbare componenten. Elke component bevat de bijhorende HTML, JavaScript en CSS die nodig is om de component weer te geven. Dit zorgt voor een duidelijke scheiding van zaken en laat krachtige programmeerconstructies toe die de ontwikkeling van gebruikersinterfaces vergemakkelijken en versnellen.

Vuex Vue.js laat enkel een beperkte kind-ouder-communicatie toe tussen

componen-ten. Dit kan voor problemen zorgen wanneer gegevens gedeeld moeten worden tussen meerdere componenten die niet direct gerelateerd zijn. Vuex is een Vue.js bibliotheek

die het Flux ontwikkelpatroon, origineel uitgevonden door Facebook, implementeert3 4.

Flux is een patroon ontworpen om de gegevensstroom in een applicatie beter te beheren. Vuex slaat de gedeelde applicatietoestand op in een globale Vuex store. Deze store bevat, naast data, mutaties, acties en getters. Mutaties kunnen de data in de Vuex store direct aanpassen en zijn altijd synchroon. Acties kunnen asynchroon zijn en implementeren de businesslogica van de applicatie door ´e´en of meerdere mutaties op te roepen. Getters halen de data op in de store.

Vue.js componenten maken gebruik van de getters en acties van een Vuex store om data op te halen en aan te passen. Dit zorgt voor een duidelijke scheiding tussen het weergeven en het beheren van gegevens. Door het centraliseren van de gedeelde applica-tietoestand wordt het delen van deze gegevens tussen componenten gemakkelijk. Figuur 1.6 visualiseert de werking van Vuex.

1https://rubyonrails.org/ 2https://vuejs.org/

3https://facebook.github.io/flux/ 4https://vuex.vuejs.org/

(22)

Figuur 1.6: De werking van Vuex (https://vuex.vuejs.org/vuex.png).

1.2.1.3 Typescript

Typescript is een programmeertaal die vrij beschikbaar is onder de Apache-2.0 licentie

en voornamelijk wordt ontwikkeld door Microsoft5. Het is een superset van JavaScript

die in het bijzonder een statisch typesysteem toevoegt.

Aangezien TypeScript een superset is van JavaScript kan gewone JavaScript code zonder problemen gebruikt worden in TypeScript code. Om TypeScript uit te voeren wordt een TypeScript programma getranspiled naar JavaScript.

1.2.2 Databank

Unipept gebruikt verschillende databronnen om een databank op te bouwen die de analyses ondersteunt. Wat volgt is een beschrijving van deze databronnen, hoe deze gerelateerd zijn en hoe de databank wordt opgebouwd.

(23)

1.2.2.1 UniProt

UniProt, de Universal Protein Resource, wordt ontwikkelt door het UniProt Consor-tium. Het doel van het UniProt Consortium is het ontwikkelen en onderhouden van een uitgebreide, hoogwaardige en vrij toegankelijke bron van eiwitsequenties met bijhorende functionele informatie [8]. UniProt bestaat uit 4 componenten met als hoofdcomponent UniProtKB.

UniProtKB De UniProt Knowledgebase bevat functionele informatie over eiwitten

met bijhorende annotaties6. Het is opgebouwd uit manueel gecontroleerde en

geanno-teerde data (UniProtKB/Swiss-Prot) en automatisch gegenereerde data (UniProtKB/TrEMBL). Momenteel bevat UniProtKB informatie over meer dan 180 miljoen eiwitten.

Elke entry in de UniProtKB bevat op zijn minst een uniek accession nummer, een eiwit-naam of eiwitbeschrijving met bijhorende aminozuurketen, en taxonomische informatie. Bijhorende annotaties bevatten onder meer cross-references naar Gene Ontology termen, Enzym Commission nummers en NCBI taxa. Deze annotaties zijn echter niet altijd voor elk eiwit aanwezig.

1.2.2.2 Gene Ontology Resource

De Gene Ontology Resource wordt ontwikkeld door het Gene Ontology Consortium met als doel het ontwikkelen van een kennisdatabank die de rollen van genen en genproducten (waaronder eiwitten) in elk organisme nauwkeurig en gestructureerd definieert [12]. Dit verwezenlijkt het Gene Ontology Consortium aan de hand van een formele ontologie [4] met bijhorende annotaties die de kennis van het biologische domein beschrijft op 3 niveaus: de moleculaire functies van genproducten, de cellulaire componenten waarin deze genproducten hun functie uitvoeren en de biologische processen waarvoor deze genproducten nodig zijn.

Gene Ontology De Gene Ontology definieert GO-termen die elk over minstens een

unieke identifier, een naam, een beschrijving en niveau (moleculaire functie, cellulaire

component of biologisch proces) beschikken 7. Daarnaast definieert de ontologie ook

relaties tussen deze termen 8. Alle GO-termen (behalve de wortel-GO-termen) hebben

minstens ´e´en subtype-relatie met een andere term. Zo vormen verschillende GO-termen samen een DAG (Directed Acyclic Graph) van relaties. Figuur 1.7 toont een voorbeeld van een DAG die de relaties binnen een verzameling GO-termen visualiseert.

1.2.2.3 Enzym Commission Numbers

De EC-nummers, opgesteld door de International Commission on Enzymes [2] en be-heerd door de International Union of Biochemistry and Molecular Biology (NC-IUBMB)

6https://www.uniprot.org/help/uniprotkb

7http://geneontology.org/docs/GO-term-elements 8http://geneontology.org/docs/ontology-relations/

(24)

Figuur 1.7: Een DAG van een verzameling GO-termen.

[1], vormen een numeriek classificatiesysteem voor enzymen. Een enzyme is een eiwit dat als katalysator fungeert bij bepaalde chemische reacties. Het versnelt of brengt chemische reacties in organismen op gang.

Elk EC-nummer bestaat minstens uit een naam voor het enzym en een identifier be-staande uit 4 getallen (bijv. EC:2.1.1.25 ). De getallen in de identifier specifi¨eren een steeds fijner wordende classificatie van het enzym. Zo vormen alle EC-nummers een boom van 4 niveaus.

1.2.2.4 NCBI Taxonomy

De NCBI taxonomiedatabank (https://www.ncbi.nlm.nih.gov/taxonomy)[27] bevat een fylogenetische taxonomie van de organismen in de GenBank databank. GenBank (https://www.ncbi.nlm.nih.gov/genbank/)[5] is een DNA sequentiedatabank die an-notaties bevat voor alle publiek beschikbare DNA sequenties. De NCBI taxonomiedata-bank wordt beheerd door het National Center for Biotechnology Information (NCBI).

(25)

Figuur 1.8: Data-flow diagram van Unipept-databank.

1.2.2.5 Opbouw van de Unipept-databank

Figuur 1.8 visualiseert de flow die de data uit de hierboven beschreven data-bronnen volgt tot de Unipept-databank. Allereerst worden de eiwitten uit de Uni-ProtKB opgehaald en verwerkt. De basisinformatie van elk eiwit en de bijhorende cross-references naar functionele en taxonomische annotaties worden rechtstreeks in de Unipept-databank ingeladen.

Elk eiwit wordt in silico verwerkt volgens de regels van de protease trypsine (subproces 1.1 in figuur 1.8) wat resulteert in een lijst van tryptische peptiden met bijhorende func-tionele en taxonomische annotaties. Voor elke tryptische peptide worden de funcfunc-tionele annotaties geaggregeerd door de eiwitfrequentietabel op te bouwen van de annotaties (GO-termen en EC-nummers) en annotatietypes (GO, EC en beide). De taxonomische annotaties worden geaggregeerd door de LCA (zie paragraaf 1.1.2) te berekenen van de taxa die behoren tot de eiwitten die de tryptische peptide bevatten. De resulterende eiwitfrequentietabel en LCA voor elke peptide worden ten slotte ingeladen in de Unipept databank.

Unipept geeft onderzoekers de mogelijkheid om isoleucine (I) en leucine (L) gelijk te stellen in de analyses. Dit is nodig wanneer het eiwitidentificatieproces geen verschil kan maken tussen deze 2 aminozuren, zoals bij shotgun metaproteomics het geval is (zie paragraaf 1.1.5). Aangezien het niet haalbaar is om voor elke peptide het aantal

(26)

combinaties van I en L te berekenen (dit is exponentieel in het aantal posities in de peptide met een I of L) worden de eiwitten, na het gelijkstellen van I en L, een tweede maal verwerkt. Deze resultaten worden naast de originele resultaten opgeslagen in de Unipept-databank om de analyses te versnellen.

Ten slotte wordt de basisinformatie van de functionele en taxonomische annotaties op-gehaald en rechstreeks ingeladen in de Unipept-databank.

1.2.2.6 Constructieproces

Om de Unipept databank op te bouwen, zoals beschreven in paragraaf 1.2.2.5, wordt gebruikgemaakt van een makefile die TSV-bestanden (Tab Seperated Values) genereert met de resultaatgegevens die vervolgens rechtstreeks in de Unipept databank ingeladen worden. Het volledige constructieproces verloopt zoals gevisualiseerd in figuur 1.9.

(27)

door een Bash configuratiescript configure. Dit configuratiescript vraagt de gebruiker om de waarden van de variabelen en vult deze vervolgens in waar nodig.

Vervolgens wordt de resulterende Makefile uitgevoerd. Deze Makefile genereert gecom-primeerde TSV-bestanden met de data voor de Unipept-databank. Dit doet de Makefile aan de hand van de ingevulde data-ophaalscripts die functionele annotaties ophalen en omzetten naar het TSV-formaat, en verschillende Linux commando’s en Java code die taxonomische annotaties en eiwitdata ophalen en verwerken.

Ten slotte wordt de resultaatdata in de gecomprimeerde TSV-bestanden rechtstreeks ingeladen in de tabellen van de Unipept databank.

1.2.3 Toepassingen

Unipept ondersteunt momenteel 4 toepassingen die gebruikmaken van de Unipept-databank om analyses uit te voeren. Wat volgt is een beschrijving van deze toepassingen met in het bijzonder een gedetailleerde beschrijving van de metaproteoomanalyse die no-dig is om de masterproef ten volle te begrijpen.

1.2.3.1 Tryptic Peptide Analysis

De Tryptic Peptide Analysis maakt het mogelijk om tryptische peptiden te analyseren [23]. Hiervoor worden de eiwitten van de Unipept-databank die de tryptische peptide bevatten en de geaggregeerde functionele annotaties van de tryptische peptide opge-haald.

De eiwitten worden opgesomd in een lijst die de basisinformatie van de eiwitten bevat. Daarnaast worden de taxa van de eiwitten voorgesteld in een stamboom en stamboomta-bel. Ten slotte worden de geaggregeerde functionele annotaties van de trypische peptide voorgesteld in GO-term- en EC-nummer-eiwitfrequentietabellen.

De stamboom is de boom die verkregen wordt door de afstammingen van de taxa van de gevonden eiwitten samen te voegen. De stamboomtabel geeft simpelweg de afstam-mingen van de taxa weer in een tabel. Figuur 1.10 visualiseert de stamboom voor de tryptische peptide AAAAA.

De GO-term-eiwitfrequentietabel groepeert de geaggregeerde GO-termen op niveau (mo-leculaire functie, cellulaire component of biologisch proces) en sorteert binnen elk niveau de termen op eiwitfrequentie. Voor elk niveau wordt een DAG weergegeven van de re-laties tussen de GO-termen. Figuur 1.11 visualiseert de eiwitfrequentietabel voor de GO-termen van de peptide AAAAA die het niveau ”cellulaire component”hebben. De EC-nummer-eiwitfrequentietabel geeft de gesorteerde EC-nummers op eiwitfrequen-tie weer. Daarnaast worden deze EC-nummers gevisualiseerd in een boom van 4 niveaus. Figuur 1.12 geeft de EC-nummer eiwitfrequentietabel en boom weer voor de peptide AAAAA.

(28)

Figuur 1.10: Stamboom voor de tryptische peptide AAAAA.

(29)

Figuur 1.12: EC-nummer-eiwitfrequentietabel en boom voor de EC-nummers van de peptide AAAAA.

(30)

1.2.3.2 Metaproteome Analysis

De Metaproteome Analysis-toepassing maakt het mogelijk om de resultaten van metapro-teomics experimenten te analyseren. De toepassing verwacht de resultaten van een metaproteomics experiment als een lijst van peptiden.

Alvorens de analyse uit te voeren worden de peptiden voorverwerkt op basis van een zoekconfiguratie ingesteld door de gebruiker. Indien nodig worden de aminozuren Iso-leucine (I) en Leucine (L) gelijkgesteld, worden duplicate peptiden verwijderd en/of worden de peptiden in silico verwerkt volgens de regels van de protease trypsine. De extra verwerking door trypsine kan soms nodig zijn aangezien de in vitro verwerking splitsingen kan overslaan. Figuur 1.13 toont de gebruikersinterface voor het inladen en opslaan van metaproteomics datasets, en het instellen van de zoekconfiguratie.

Figuur 1.13: De gebruikersinterface voor het inladen en opslaan van metaproteomics datasets, en het instellen van de zoekconfiguratie.

(31)

(a) Sunburst diagram (b) treeview

(c) treemap (d) hi¨erarchisch overzicht

Figuur 1.14: Visualisaties van de fylogenetische stamboom van een verzameling peptiden.

Na de voorverwerking worden de geaggregeerde taxonomische en functionele annotaties voor elke peptide opgehaald uit de Unipept-databank. De taxonomische annotaties, dit zijn de LCA-taxa, van alle peptiden worden geaggregeerd in een fylogenetische stam-boom. Deze stamboom wordt opgebouwd door de afstammingen van de LCA-taxa samen te voegen. Voor elke LCA-taxon worden de overeenkomstige peptiden en de peptidefrequentie bijgehouden.

De fylogenetische stamboom wordt weergegeven op 4 verschillende manieren: een sun-burst diagram, een treemap, een treeview en een hi¨erarchisch overzicht [21]. Figuur 1.14 geeft deze visualisaties weer voor een voorbeelddataset. De gebruiker kan in het sun-burst diagram, de treemap of de treeview een taxon selecteren om de metaproteomics dataset te verkennen. Dit filtert de metaproteomics dataset op de geselecteerde taxon, waarop de visualisaties zich vervolgens aanpassen.

De functionele annotaties van alle peptiden worden geaggregeerd in GO-term en EC-nummer peptidefrequentietabellen. Deze worden weergegeven zoals de eiwitfrequentieta-bellen in de Tryptic Peptide Analysis-toepassing. De aantallen zijn hier echter peptiden in de plaats van eiwitten. Daarnaast ondersteunt de metaproteoomanalyse het filteren van de peptidefrequenties op basis van een minimaal percentage van geannoteerde

(32)

ei-(a) GO-term peptidefrequentietabel. (b) EC-nummer peptidefrequentietabel. Figuur 1.15: Peptidefrequentietabellen voor een voorbeeld metaproteomics dataset met geselecteerde annotaties.

witten. Dit betekent dat de tabel enkel het aantal peptiden per functionele annotatie weergeeft die voor de gegeven functionele annotatie aan de minimum voorwaarde vol-doen. Het percentage wordt voor een gegeven peptide en functionele annotatie berekend als de relatieve frequentie van het aantal eiwitten die de peptide bevatten en geannoteerd zijn met de functionele annotatie.

Voor elke functionele annotatie kan bovendien een stamboom opgevraagd worden van de LCA taxa van de overeenkomstige peptiden. Figuur 1.15 geeft de peptidefrequentie-tabellen weer voor een voorbeelddataset.

(33)

(a) Vergelijking van selecte EC-nummers en GO-termen binnen 1 metaproteomics dataset.

(b) Vergelijking van selecte NCBI taxa tussen 2 metaproteomics datasets.

Figuur 1.16

Ten slotte biedt de metaproteoomanalyse de mogelijkheid aan om 2 annotatietypes binnen een metaproteomics dataset, of alle geselecteerde metaproteomics datasets per annotatietype, te vergelijken a.d.h.v. een heatmap. De gebruiker kan voor elk anno-tatietype de annotaties selecteren die vergeleken moeten worden. Figuur 1.16 toont de resulterende heatmaps voor beide mogelijkheden.

1.2.3.3 Unique Peptide Finder

De Unique Peptide Finder laat toe het unieke (tryptische) peptidoom te vinden voor een gegeven taxon [24]. Dit is de verzameling (tryptische) peptiden die niet in een eiwit voorkomen met een taxon verschillend van de gegeven taxon.

1.2.3.4 Peptidome Clustering

Peptidome Clustering laat het toe een verzameling proteomen te clustering op basis van hun (tryptische) peptidomen. Hierbij wordt gebruikgemaakt van de hi¨erarchische clustermethode UPGMA. De gelijkenis tussen twee (tryptische) peptidomen is het aantal (tryptische) peptiden die de peptidomen gemeenschappelijk hebben.

1.2.4 Web-API en CLI

Unipept biedt de analyseworkflows van de applicaties aan via een web-API [25]. Dit laat externe applicaties toe om de functionaliteit van Unipept te integreren. Alle data wordt teruggegeven in JSON-formaat.

De functionaliteit van de web-API wordt ook aangeboden via een CLI geschreven in Ruby [22]. Deze CLI is een wrapper rond de web-API en stelt deze op een gebruiks-vriendelijke manier beschikbaar. Daarnaast vereenvoudigt de CLI de verwerking van grote hoeveelheden data ten opzichte van de webapplicatie.

(34)

1.2.5 GitHub

De broncode van Unipept wordt vrij aangeboden onder de MIT licentie op GitHub 9,

een platform gebouwd rond het versiebeheersysteem Git10. Figuur 1.17 visualiseert de

Unipept-repositories op GitHub en hun onderlinge afhankelijkheden.

Figuur 1.17: De Unipept-repositories en hun onderlinge afhankelijkheden. De Unipept repository bevat de code voor de Ruby-on-Rails back-end en de webappli-catiecode van de 4 ondersteunde toepassingen. Deze code maakt gebruik van de reposi-tories Unipept-heatmap en Unipept-visualizations die veralgemeende webapplicatiecode bevatten voor de visualisaties.

De make-database repository bevat de code voor de opbouw van de Unipept databank beschreven in paragraaf 1.2.2.6. Deze maakt gebruik van de umgap repository die de Unipept Metagenomics Analysis Pipeline bevat.

De Unipept-cli repository bevat de Ruby code die de CLI implementeert beschreven in paragraaf 1.2.4.

1.3

Doelstelling

De doelstelling van deze masterproef is het bouwen van een desktopapplicatie als onder-steuning voor high-throughput metaproteomics data-analyse, die het gebruik van lokale databanken mogelijk maakt en low-effort feature parity met de webapplicatie onder-steunt.

Een bijkomende doelstelling die als eerste werd gerealiseerd is het toevoegen van InterPro annotaties aan de Unipept databank en het beschikbaar stellen van deze annotaties via de web-API en CLI. Deze doelstelling werd toegevoegd aan deze masterproef als

(35)

Hoofdstuk 2 beschrijft hoe de bijkomende doelstelling werd gerealiseerd. Hoofdstuk 3 beschrijft hoe de desktopapplicatie werd ge¨ımplementeerd en hoe aan de hoofddoelstel-ling van de masterproef werd voldaan.

(36)

Hoofdstuk 2

Functionele Analyse: InterPro

2.1

InterPro

De InterPro-databank (http://www.ebi.ac.uk/interpro)[26], ontwikkeld en onder-houden door EMBL-EBI, biedt een functionele classificatie van eiwitsequenties aan door ze zowel in te delen in families, als door domeinen en sites te voorspellen. Hiervoor worden predictive models, wat InterPro eiwitsignaturen noemt, gecombineerd uit 14

da-tabanken die deel uitmaken van het InterPro Consortium 1. Door verschillende types

eiwitsignaturen van verschillende databanken te combineren in ´e´en doorzoekbare bron biedt InterPro een zeer krachtige analysetool voor eiwitsequenties aan. Figuur 2.1 visu-aliseert de opbouw van InterPro.

(37)

binnen de wetenschappelijke gemeenschap en wordt de databank erkend als ´e´en van de belangrijkste bronnen voor eiwitanalyse [9]. Bovenstaande redenen verantwoorden de keuze om InterPro-annotaties aan de Unipept-databank toe te voegen.

Wat volgt is een beschrijving van de InterPro-data en de verschillende signatuurtypes die gebruikt worden om deze data te genereren.

2.1.1 Data en entry-types

InterPro biedt functionele eiwitdata aan in de vorm van InterPro-entries die vrij be-schikbaar zijn via FTP. Elke InterPro-entry bevat minimaal een unieke code (ook wel het accession-nummer genoemd), een type (eiwitdomein, familie of site) en een naam. InterPro onderscheidt 8 verschillende entry-types die in 3 groepen gecategoriseerd kun-nen worden: eiwitfamilies, eiwitdomeikun-nen en eiwitsites.

Eiwitfamilies Een eiwitfamilie is een groep van eiwitten met een gemeenschappelijke

evolutionaire oorsprong. Eiwitten in een eiwitfamilie hebben gerelateerde functies en structurele gelijkenissen. Afhankelijk van de context spreekt men van super- en subfa-milies.

Eiwitdomeinen Eiwitdomeinen zijn functionele en/of structurele eenheden in

eiwit-ten. Deze zijn meestal verantwoordelijk voor een specifieke functie of interactie.

Eiwitsites Een eiwitsite is een groep van aminozuren die kenmerken verlenen aan de

eiwitten waarin ze voorkomen. Er bestaan verschillende soorten sites afhankelijk van hun functie: actieve, bindende, post-translationele aanpassing (PTM) en herhalende sites.

2.1.2 Signaturen

Om te voorspellen of een eiwit behoort tot een bepaalde familie, of een bepaald domein of bepaalde site bevat, maakt InterPro gebruik van eiwitsignaturen (predictive models) die eiwitten classificeren.

Deze eiwitsignaturen starten van een gemeenschappelijke basis: een multiple sequence alignment van eiwitten die een verzameling van eigenschappen delen, bijv. eiwitten van dezelfde familie. InterPro onderscheidt 4 verschillende types van eiwitsignaturen: patronen, profielen, fingerprints en hidden markov models (HMMs).

Patronen Dit zijn reguliere expressies die vaak voorkomende patronen in de alignering

modelleren. Ze worden gebruikt om eiwitsites te detecteren.

Profielen Dit zijn scoresystemen die elk aminozuur op elke positie in de alignering een

score geven a.d.h.v. de frequentie van het aminozuur op die gegeven positie. Profielen worden gebruikt om eiwitfamilies en domeinen te modelleren.

Fingerprints Een fingerprint is een opeenvolging van patronen in de alignering die

elk een gegeven afstand van elkaar voorkomen. Fingerprints worden gebruikt om eiwit-families te modelleren.

(38)

Hidden Markov Models HMMs modeleren de volledige multiple sequence alignment en maken het mogelijk een score te berekenen voor eiwitten op basis van hoe goed deze aligneren met de multiple sequence alignment. HMMs worden gebruikt voor de classificatie van eiwitten in families.

Door signaturen van de verschillende databronnen van het InterPro Consortium te com-bineren biedt InterPro een zeer krachtige eiwit-analysetool aan die inspeelt op de sterke punten van deze databronnen en de impact van de zwakke punten minimaliseert.

2.2

Aanpassingen aan de opbouw van de databank

De opbouw van de Unipept-databank werd aangepast om InterPro-annotaties te inte-greren. Figuur 2.2 visualiseert het aangepaste data-flow diagram van figuur 1.8. De aangepaste elementen zijn aangeduid in het rood.

Figuur 2.2: Data-flow diagram van Unipept-databank na integratie van InterPro-annotaties.

(39)

proces 1.2).

Ten slotte wordt de basisinformatie van elke InterPro-entry rechtstreeks ingeladen in de Unipept-databank.

2.3

Aanpassingen aan het constructieproces van de

data-bank

Figuur 2.3 visualiseert het aangepaste constructieproces van de Unipept-databank na de integratie van InterPro-annotaties. De aangepaste elementen zijn aangeduid in het rood.

Figuur 2.3: Data-flow diagram voor het constructieproces van de Unipept-databank na integratie van InterPro-annotaties.

Het nieuwe intermediaire Bash data-ophaalscript createInterProEntries.sh.in bevat code die de basisinformatie van de InterPro-entries ophaalt en omzet naar TSV-formaat. Dit script wordt net zoals de andere data-ophaalscripts ingevuld door het configuratiescript configure en vervolgens gebruikt door de Makefile om de InterPro-entries op te halen.

(40)

De Java-code die instaat voor het ophalen en verwerken van de UniProt-eiwitten houdt nu ook rekening met InterPro-annotaties. De InterPro-annotaties worden net zoals de andere functionele annotaties geaggregeerd in een eiwitfrequentietabel. Daarnaast worden de cross-references van de UniProt-eiwitten naar de InterPro-entries rechtstreeks omgezet naar een TSV-bestand.

Ten slotte worden de cross-references, InterPro-entries en geaggregeerde functionele an-notaties per peptide rechtstreeks ingeladen in de Unipept-databank.

2.4

Web-API en CLI

Om de geaggregeerde InterPro-annotaties beschikbaar te maken voor derden werd een nieuw API-endpoint pept2interpro toegevoegd aan de Unipept API. Daarnaast werd deze API-endpoint ook beschikbaar gemaakt via de CLI a.d.h.v. een nieuw subcommando. De bestaande API-endpoints pept2funct, die per peptide de eiwitfrequentietabel voor de functionele annotaties teruggeeft, en peptinfo, die naast de eiwitfrequentietabel ook het LCA-taxon teruggeeft per peptide, werden aangepast om ook de eiwitfrequenties van de InterPro-annotaties terug te geven.

Wat volgt is een beschrijving van het nieuwe API-endpoint pept2interpro en het nieuwe subcommando van de CLI. De aangepaste API-endpoints pept2funct en peptinfo werden enkel bijgewerkt om ook de resultaten van pept2interpro terug te geven en worden om die reden niet in detail beschreven.

2.4.1 API-endpoint pept2interpro.

Het nieuwe API-endpoint2 accepteert volgende parameters:

• input: accepteert een lijst van 1 of meer tryptische peptiden. pept2interpro geeft enkel de eiwitfrequentietabellen terug voor de peptiden in deze lijst.

• (optioneel) equate il: accepteert een booleaanse waarde. Wanneer deze parameter true is worden de aminozuren isoleucine (I) en leucine (L) als eenzelfde aminozuur beschouwd bij het berekenen van de resultaten.

• (optioneel) extra: accepteert een booleaanse waarde. Wanneer deze parameter true is worden naast het accession-nummer ook de naam en het type van elke InterPro-entry teruggegeven.

• (optioneel) domains: accepteert een booleaanse waarde. Wanneer deze parameter true is worden de InterPro-entries gesplitst in groepen volgens hun type.

(41)

parameters van de aanvraag dienen in de URL ge¨encodeerd te worden. Indien een correcte aanvraag wordt ingediend, wordt het resultaat teruggegeven in JSON.

Als voorbeeld wordt het JSON-resultaat van een HTTP POST- of GET-request naar http://api.Unipept.ugent.be/api/v1/pept2interpro.json?input[]=AAAAA&domains=

trueweergegeven in codefragment 2.1. Dit bevat de eiwitfrequentietabel voor de

InterPro-annotaties van de peptide ”AAAAA”, waarbij de InterPro-InterPro-annotaties gesplist zijn in groepen volgens hun type.

Codefragment 2.1: Voorbeeldresultaat van API-endpoint pept2interpro [ { ’ p e p t i d e ’: ’AAAAA’, ’ t o t a l p r o t e i n c o u n t ’: 1 7, ’ i p r ’: [ { ’ c o n s e r v e d s i t e ’: [ { ’ code ’: ’ IPR0 2 0 8 6 7’, ’ p r o t e i n c o u n t ’: 1 4 } ] }, { ’ H o m o l o g o u s s u p e r f a m i l y ’: [ { ’ code ’: ’ IPR0 3 6 2 9 1’, ’ p r o t e i n c o u n t ’: 1 4 }, { ’ code ’: ’ IPR0 3 8 7 0 9’, ’ p r o t e i n c o u n t ’: 1 }, { ’ code ’: ’ IPR0 2 9 0 5 3’, ’ p r o t e i n c o u n t ’: 1 } ] }, { ’ Domain ’: [ { ’ code ’: ’ IPR0 2 0 6 3 0’, ’ p r o t e i n c o u n t ’: 1 4 }, { ’ code ’: ’ IPR0 2 0 6 3 1’, ’ p r o t e i n c o u n t ’: 1 4 }, { ’ code ’: ’ IPR0 0 7 6 3 4’, ’ p r o t e i n c o u n t ’: 1 }, { ’ code ’: ’ IPR0 0 1 2 9 6’, ’ p r o t e i n c o u n t ’: 1 }, { ’ code ’: ’ IPR0 1 3 5 3 4’, ’ p r o t e i n c o u n t ’: 1 },

(42)

{ ’ code ’: ’ IPR0 0 7 0 4 6’, ’ p r o t e i n c o u n t ’: 1 } ] }, { ’ Family ’: [ { ’ code ’: ’ IPR0 0 0 6 7 2’, ’ p r o t e i n c o u n t ’: 1 4 }, { ’ code ’: ’ IPR0 0 0 3 9 4’, ’ p r o t e i n c o u n t ’: 1 4 }, { ’ code ’: ’ IPR0 0 3 1 8 1’, ’ p r o t e i n c o u n t ’: 1 }, { ’ code ’: ’ IPR0 1 1 8 3 5’, ’ p r o t e i n c o u n t ’: 1 }, { ’ code ’: ’ IPR0 0 3 1 8 2’, ’ p r o t e i n c o u n t ’: 1 } ] } ] } ] 2.4.2 CLI

Een nieuw subcommando pept2interpro3dat dezelfde functionaliteit biedt als het pept2interpro

API-endpoint werd toegevoegd. Dit subcommando kan naast JSON de resultaten ook als XML- of CSV-bestand teruggeven. Aangezien het resultaat hetzelfde is als voor het pept2interpro API-endpoint wordt hier geen voorbeeld gegeven.

(43)

Hoofdstuk 3

Desktopapplicatie

De Unipept-webapplicatie maakt gebruik van de Unipept-databank om metaproteoom-analyses uit te voeren. Deze databank bevat in het bijzonder geaggregeerde data van de eiwitten in UniProtKB, een generieke eiwitdatabank.

Het gebruik van een generieke eiwitdatabank is echter geen ideale werkwijze en heeft een nadelige invloed op de analysetijd en de identificatieratio van metaproteoomstalen. Aan de ene kant zal de generieke eiwitdatabank data van eiwitten bevatten die helemaal niet voorkomen in het metaproteoomstaal, wat kan zorgen voor foutpositieven. Aan de andere kant zal de generieke eiwitdatabank data van eiwitten die wel voorkomen in het metaproteoomstaal niet bevatten, wat zorgt voor foutnegatieven.

Idealiter wordt een gerichte eiwitdatabank gebruikt die specifiek opgebouwd werd voor de omgeving waaruit het metaproteoomstaal genomen werd. Gerichte eiwitdataban-ken minimaliseren het aantal foutpositieven en foutnegatieven. Daarnaast zijn gerichte eiwitdatabanken meestal ook kleiner dan een generieke eiwitdatabank waardoor de ana-lyse versnelt. Nieuwe technieken zoals proteogenomics maken het mogelijk om gerichte eiwitdatabanken op te bouwen voor metaproteoomexperimenten (zie paragraaf 1.1.6). Bovendien kunnen biologen bij het gebruik van de webapplicatie geen specifieke versies van databronnen gebruiken. Daardoor is het mogelijk dat tijdens een onderzoek de versie van een bepaalde databron, die gebruikt wordt om de Unipept-databank te construeren, verandert. Hierdoor veranderen de analyseresultaten van het onderzoek, wat niet altijd gewenst is.

Tenslotte is het niet mogelijk om het gebruik van gerichte eiwitdatabanken toe te laten in de webapplicatie. Deze databanken zijn namelijk te groot om verzonden en server-side verwerkt te worden.

Een desktopapplicatie lost bovenstaande problemen op door de data te verhuizen naar de client. Hierdoor kunnen lokale (gerichte) eiwitdatabanken, en databronnen met spe-cifieke versies, gebruikt worden om een spespe-cifieke databank op te bouwen die de analyses ondersteunt.

(44)

3.1

Doelstelling

Voor deze masterproef werd gekozen om een MVP (Minimal Viable Product) voor de desktopapplicatie te ontwikkelen die de volledige metaproteoomanalyse van de webap-plicatie ondersteunt. Deze desktopapwebap-plicatie dient het gebruik van lokale databanken mogelijk te maken en low-effort feature parity met de webapplicatie te ondersteunen. Daarnaast dient de lage adoptiedrempel van de webapplicatie behouden te worden.

3.2

Ontwikkelproces

Het ontwikkelingproces van het MVP verliep in 4 fasen:

1. Het selecteren van de technologie¨en die nodig zijn om een desktopapplicatie te ontwikkelen die aan de doelstellingen kan voldoen.

2. Het migreren en herstructureren van de metaproteoomanalysecode van de unipept-repository naar een nieuwe unipept-web-components-unipept-repository.

3. Het ontwikkelen van een desktopapplicatie die aan de doelstellingen voldoet, met behulp van de gekozen technologie¨en en de gedeelde metaproteoomanalysecode in de unipept-web-components-repository.

4. Het aanpassen van de webapplicatie zodat deze de gedeelde metaproteoomanaly-secode van de unipept-web-components-repository gebruikt.

Fase 1 was voltooid v´o´or het begin van deze masterproef. De uitvoering van fase 2

overlapte deels met de uitvoering van fase 3. Wat volgt is een motivatie voor de gebruikte technologie¨en en een beschrijving van de uitvoering van fasen 2, 3 en 4, in die volgorde. Ook al overlapten fasen 2 en 3 elkaar gedeeltelijk in de praktijk, toch worden deze afzonderlijk beschreven om de lezer een zo goed mogelijk inzicht te geven in de uitvoering van deze fasen.

3.3

Technologie¨

en

Om low-effort feature parity met de webapplicatie te bereiken is het hergebruik van de webapplicatiecode noodzakelijk. Ten einde dit te verwezenlijken werd voor het Electron framework gekozen.

(45)

3.3.1.1 Node.js

Om lokaal JavaScript uit te voeren maakt Electron gebruik van Node.js, een JavaScript

runtime environment die vrij beschikbaar is onder de MIT licentie 2. Node.js realiseert

de lokale uitvoering van JavaScript door gebruik te maken van V8, een JavaScript engine

die eveneens vrij beschikbaar is en wordt ontwikkeld door Google 3.

Node.js breidt V8 uit met een single-threaded non-blocking event loop en een low-level I/O-API. Dit zorgt ervoor dat de JavaScript applicatie, die wordt uitgevoerd in Node.js, op een non-blocking manier input- en outputtaken kan uitvoeren, zoals bijvoorbeeld het lezen en schrijven van bestanden of het versturen en ontvangen van data. Hierdoor is Node.js enorm populair geworden als server-side framework, maar kan het ook gebruikt worden voor desktopapplicaties.

3.3.1.2 Chromium

Om HTML en CSS weer te geven, maakt Electron gebruik van de rendering library

van Chromium, een vrij verkrijgbare browser die wordt ontwikkeld door Google 4. Dit

betekent dat niet alle functies die ondersteund worden door de Chromium browser ook ondersteund worden door Electron. Electron is dus geen wrapper rond de Chromium browser, wat een veel voorkomende misvatting is.

3.3.1.3 Architectuur

Een Electron applicatie bestaat uit een hoofdproces en ´e´en of meerdere renderprocessen. Het hoofdproces instantieert vensters genaamd BrowserWindow s die elk een renderpro-ces toegekend krijgen.

Het hoofdproces is voornamelijk verantwoordelijk voor het cre¨eren en beheren van Brow-serWindow s. Andere taken die behoren tot het hoofdproces zijn native GUI-taken, het cre¨eren en beheren van applicatie-events, etc.

De renderprocessen voeren de gebruikersinterfaces uit van de respectievelijke vensters en beheren deze. Communicatie tussen de renderprocessen en het hoofdproces is mogelijk a.d.h.v. IPC (InterProcess Communication). In alle processen is er volledig toegang tot de Node.js-APIs, en een subset van de Electron-APIs, afhankelijk van het procestype.

3.3.1.4 Electron APIs

Electron biedt APIs aan om de ontwikkeling van desktopapplicaties te bevorderen. Niet elke API kan echter gebruikt worden in beide hoofd- en renderprocessen. De Electron-documentatie specificeert deze scheiding.

2https://nodejs.org

3https://opensource.google/projects/v8 4https://www.chromium.org/

(46)

Voorbeelden van deze APIs zijn een API om sneltoetsen toe te voegen en een API voor het manipuleren van notificaties op het besturingssysteemniveau.

3.3.1.5 Andere eigenschappen

Electron is cross-platform en ondersteunt de meest recente versies van macOS, Windows en Linux. Aangezien Electron vrij beschikbaar is en in C/C++ geschreven is, kunnen binaries gebouwd worden voor andere platformen indien nodig.

Electron biedt een auto-updater aan die gebruik kan maken van een GitHub-repository, een Amazon S3 server of een andere host om de applicatie automatisch bij te werken. Een private updateserver kan opgezet worden indien nodig.

3.3.1.6 Vergelijking met soortgelijke frameworks

Er bestaan soortgelijke frameworks waarbij NW.js de meest vooraanstaande is5. Deze

frameworks zijn echter minder volwassen dan Electron. Daarnaast is Electron momenteel het populairste framework voor het bouwen van desktopapplicaties met behulp van webtechnologie¨en. Het wordt gebruikt door grote bedrijven zoals Microsoft, Atlassian en Slack om diverse applicaties te ontwikkelen. Bovendien is het mogelijk om in de toekomst van framework te veranderen aangezien enkel een heel klein deel van de applicatiecode uniek is voor het framework. Om deze redenen werd uiteindelijk voor Electron gekozen.

3.3.1.7 Conclusie

Electron maakt het mogelijk de Unipept-webapplicatiecode te hergebruiken om een vol-waardige desktopapplicatie te bouwen die a.d.h.v. Node.js alle mogelijkheden van een desktopapplicatie, zoals toegang tot het bestandsysteem, kan benutten. Aan de hand van Electron kan dus low-effort feature parity met de webapplicatie ondersteund wor-den. Daarnaast kan de lage adoptiedrempel van de webapplicatie behouden worden voor de desktopapplicatie aangezien Electron cross-platform is, een gebruiksvriendelijke applicatie-installatie ondersteunt en automatische applicatie-updates toelaat.

(47)

3.3.2 GitHub

Er werden twee nieuwe Unipept-repositories aangemaakt om de ontwikkeling van de desktopapplicatie te ondersteunen. Figuur 3.1 visualiseert de resulterende Unipept-repositories en hun onderlinge afhankelijkheden.

Figuur 3.1: De aangepaste Unipept-repositories en hun onderlinge afhankelijkheden.

unipept-web-components De nieuwe unipept-web-components-repository bevat de

gedeelde webapplicatiecode tussen de webapplicatie en de Electron-desktopapplicatie. Deze gedeelde code wordt in fase 2 (zie paragraaf 3.4) gemigreerd uit de unipept-repository.

unipept-desktop De nieuwe unipept-desktop-repository bevat code uniek voor de

Electron-desktopapplicatie. Dit omvat, maar is niet beperkt tot, code om de desktopap-plicatie te configureren en de gedeelde webcomponenten gedefinieerd in de unipept-web-components-repository te integreren. Paragraaf 3.5 beschrijft de opbouw van de Electron-desktopapplicatie in detail.

(48)

3.3.3 npm

De gedeelde webapplicatiecode, die zich in de unipept-web-components repository be-vindt, wordt beschikbaar gesteld a.d.h.v. een npm-package. npm (Node Package Mana-ger) is een JavaScript package manager en is de standaard package manager van Node.js

6. npm-packages kunnen gepubliceerd worden in de npm-registry, een online databank

van packages, die het ontdekken en gebruiken van packages vergemakkelijkt. De functi-onaliteit van npm wordt beschikbaar gesteld a.d.h.v. een CLI.

npm-package Een npm-package is een JavaScript-bestand of folder die beschreven

wordt door een package.json bestand. Dit bestand bevat op zijn minst een naam en een versienummer die het pakket eenduidig identificeren. A.d.h.v. de pakketnaam, optioneel het versienummer, en een npm-installatie kan elk JavaScript-project het pakket installeren en de JavaScript-modules gebruiken die erin zijn gedefinieerd.

Tijdens de ontwikkeling van de web- en desktopapplicatie wordt gebruikgemaakt van symbolische links om de webapplicatiecode van de unipept-web-components-repository rechtstreeks te importeren als npm-package. Daarnaast wordt de gedeelde webapplicatie-code, bij de publicatie van de web- of desktopapplicatie, ook als npm-package gereleased

(49)

Figuur 3.2: Klassendiagram van de originele metaproteoomanalysecode (zonder Vue.js-componenten).

(50)
(51)

Figuur 3.3: Klassendiagram van de herwerkte metaproteoomanalysecode (zonder Vue.js-componenten).

(52)
(53)

Figuur 3.4: Data-flo w diagram van de originele metaproteo omanaly se.

(54)
(55)

Figuur 3.6: Data-flo w diagram van de herw erkte metaproteo omanalyse.

(56)

Figuur 3.7: UML-sequentiediagram van het opstarten van de analyse van een metapro-teoomstaal (herwerkt).

(57)

3.4

Migratie metaproteoomanalysecode

Om low-effort feature parity met de webapplicatie te ondersteunen wordt de metapro-teoomanalysecode gemigreerd van de unipept-repository naar de nieuwe unipept-web-components-repository. Na de migratie dient deze code gedeeld te worden tussen de webapplicatie in de unipept-repository en de desktopapplicatie in de unipept-desktop-repository.

Op hoog niveau bestaat de metaproteoomanalysecode uit 2 delen: de Vue.js-componenten die de gebruikersinterface defini¨eren en de TypeScript-code die de analyse definieert. Fi-guur 3.8 visualiseert deze scheiding van zaken. De Vue.js-componenten maken gebruik van de TypeScript-klassen en interfaces om de metaproteoomanalyse uit te voeren. De TypeScript-code is volledig onafhankelijk van de Vue.js-componenten.

Figuur 3.8: De hoge niveau structuur van de metaproteoomanalysecode.

De browser van de gebruiker of de Chromium rendering library van Electron visualiseren de Vue.js-componenten. De bijbehorende JavaScript-code, en omgezette TypeScript-code, worden uitgevoerd door de respectievelijke JavaScript runtime environment, welke Node.js is in Electron.

Tijdens de migratie van de metaproteoomanalysecode werden verschillende problemen met de codestructuur van de TypeScript-code duidelijk. Wat volgt is een beschrijving van de originele codestructuur, de ontdekte problemen en de nieuwe codestructuur die deze problemen oplost. Aangezien de Vue.js-componenten enkel de gebruikersinterface implementeren waren geen ingrijpende aanpassen aan deze componenten nodig. Om deze reden worden deze achterwege gelaten in de hierop volgende beschrijving.

3.4.1 Originele codestructuur

Figuur 3.2 visualiseert het UML-klassendiagram van de originele metaproteoomana-lysecode. Wat volgt is een beschrijving van de klassen en interfaces, hun onderlinge afhankelijkheden en hoe deze samen de metaproteoomanalyse verwezenlijken.

Afbeelding

Figure 3: Settings page of the Unipept desktop appli- appli-cation.
Figuur 1.1: Een visualisatie van een fylogenetische levensboom voor 191 soorten waarvan de genomen volledig gekend zijn
Figuur 1.2: Een vergelijking tussen de opbouw van prokaryote en eukaryote cellen.
Figuur 1.3: Schematische voorstelling van een DNA-fragment (a) [18] en de nucleotide adenine (b) [6].
+7

Referenties

GERELATEERDE DOCUMENTEN

oplosbar® voodingaaouten «ij» woinig aanwaaiDo eiJfora voor sta^posii»« on «aangaan sijxt norwaal« Do ©iJfora voor ijaer on alraalniusi aijn gun «fei g laag» Vm «tiruktuur

Voor zover er wel werd geadviseerd door de ouders, werden de ambachtelijke beroepen het meest aangeraden (31%)« Het landarbeidersberoep werd veel min- der vaak aangeraden (11%).

toekomstige activiteiten in en rond Engbertsdijksvenen, die niet in dit beheerplan zijn beschreven, geldt dat eerst in kaart moet worden gebracht of deze activiteiten

• Reductie van het aantal punten in de vakken van RefWest: 1 i.p.v. Het argument voor deze keuze is dat uit de VMS analyses gebleken is dat ook in dit gebied de

In elastic structures that are prone to bifurcation buckling, a second equilibrium configuration, different from but infinitesimally close to the trivial fundamental solution,

To achieve this aim, the following objectives were set: to determine the factors that play a role in the pricing of accommodation establishments; to determine

In the case of street children compar ed to non-street children , th e y find themselves in an env ironment that has high risk factors (abuse by parents and guardians)

The decision is argued to move away from the fact that the LOSC Parties have ‘moved decisively away from the freedom (…) not to be subject in advance to dispute