Serveur d'exploration Cyberinfrastructure

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button

Identifieur interne : 000483 ( Pmc/Corpus ); précédent : 000482; suivant : 000484

The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button

Auteurs : Morris A. Swertz ; Martijn Dijkstra ; Tomasz Adamusiak ; Joeri K. Van Der Velde ; Alexandros Kanterakis ; Erik T. Roos ; Joris Lops ; Gudmundur A. Thorisson ; Danny Arends ; George Byelas ; Juha Muilu ; Anthony J. Brookes ; Engbert O. De Brock ; Ritsert C. Jansen ; Helen Parkinson

Source :

RBID : PMC:3040526

Abstract

Background

There is a huge demand on bioinformaticians to provide their biologists with user friendly and scalable software infrastructures to capture, exchange, and exploit the unprecedented amounts of new *omics data. We here present MOLGENIS, a generic, open source, software toolkit to quickly produce the bespoke MOLecular GENetics Information Systems needed.

Methods

The MOLGENIS toolkit provides bioinformaticians with a simple language to model biological data structures and user interfaces. At the push of a button, MOLGENIS’ generator suite automatically translates these models into a feature-rich, ready-to-use web application including database, user interfaces, exchange formats, and scriptable interfaces. Each generator is a template of SQL, JAVA, R, or HTML code that would require much effort to write by hand. This ‘model-driven’ method ensures reuse of best practices and improves quality because the modeling language and generators are shared between all MOLGENIS applications, so that errors are found quickly and improvements are shared easily by a re-generation. A plug-in mechanism ensures that both the generator suite and generated product can be customized just as much as hand-written software.

Results

In recent years we have successfully evaluated the MOLGENIS toolkit for the rapid prototyping of many types of biomedical applications, including next-generation sequencing, GWAS, QTL, proteomics and biobanking. Writing 500 lines of model XML typically replaces 15,000 lines of hand-written programming code, which allows for quick adaptation if the information system is not yet to the biologist’s satisfaction. Each application generated with MOLGENIS comes with an optimized database back-end, user interfaces for biologists to manage and exploit their data, programming interfaces for bioinformaticians to script analysis tools in R, Java, SOAP, REST/JSON and RDF, a tab-delimited file format to ease upload and exchange of data, and detailed technical documentation. Existing databases can be quickly enhanced with MOLGENIS generated interfaces using the ‘ExtractModel’ procedure.

Conclusions

The MOLGENIS toolkit provides bioinformaticians with a simple model to quickly generate flexible web platforms for all possible genomic, molecular and phenotypic experiments with a richness of interfaces not provided by other tools. All the software and manuals are available free as LGPLv3 open source at http://www.molgenis.org.


Url:
DOI: 10.1186/1471-2105-11-S12-S12
PubMed: 21210979
PubMed Central: 3040526

Links to Exploration step

PMC:3040526

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button</title>
<author>
<name sortKey="Swertz, Morris A" sort="Swertz, Morris A" uniqKey="Swertz M" first="Morris A" last="Swertz">Morris A. Swertz</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I3">EU-CASIMIR consortium. http://www.casimir.ac.uk</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I6">BBMRI-NL, Postzone S4-P, P.O. Box 9600, 2300 RC Leiden, The Netherlands http://www.bbmri.nl</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I7">Netherlands Bioinformatics Centre, Geert Grooteplein 28, 6525 GA Nijmegen, The Netherlands http://www.nbic.nl</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Dijkstra, Martijn" sort="Dijkstra, Martijn" uniqKey="Dijkstra M" first="Martijn" last="Dijkstra">Martijn Dijkstra</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I7">Netherlands Bioinformatics Centre, Geert Grooteplein 28, 6525 GA Nijmegen, The Netherlands http://www.nbic.nl</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Adamusiak, Tomasz" sort="Adamusiak, Tomasz" uniqKey="Adamusiak T" first="Tomasz" last="Adamusiak">Tomasz Adamusiak</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Van Der Velde, Joeri K" sort="Van Der Velde, Joeri K" uniqKey="Van Der Velde J" first="Joeri K" last="Van Der Velde">Joeri K. Van Der Velde</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Kanterakis, Alexandros" sort="Kanterakis, Alexandros" uniqKey="Kanterakis A" first="Alexandros" last="Kanterakis">Alexandros Kanterakis</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Roos, Erik T" sort="Roos, Erik T" uniqKey="Roos E" first="Erik T" last="Roos">Erik T. Roos</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Lops, Joris" sort="Lops, Joris" uniqKey="Lops J" first="Joris" last="Lops">Joris Lops</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Thorisson, Gudmundur A" sort="Thorisson, Gudmundur A" uniqKey="Thorisson G" first="Gudmundur A" last="Thorisson">Gudmundur A. Thorisson</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I10">Department of Genetics, University of Leicester, University Road, Leicester LE1 7RH, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Arends, Danny" sort="Arends, Danny" uniqKey="Arends D" first="Danny" last="Arends">Danny Arends</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Byelas, George" sort="Byelas, George" uniqKey="Byelas G" first="George" last="Byelas">George Byelas</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Muilu, Juha" sort="Muilu, Juha" uniqKey="Muilu J" first="Juha" last="Muilu">Juha Muilu</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I9">Institute for Molecular Medicine Finland, University of Helsinki, Haartmaninkatu 8, FIN-00290, Helsinki, Finland</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Brookes, Anthony J" sort="Brookes, Anthony J" uniqKey="Brookes A" first="Anthony J" last="Brookes">Anthony J. Brookes</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I10">Department of Genetics, University of Leicester, University Road, Leicester LE1 7RH, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="De Brock, Engbert O" sort="De Brock, Engbert O" uniqKey="De Brock E" first="Engbert O" last="De Brock">Engbert O. De Brock</name>
<affiliation>
<nlm:aff id="I11">Cluster Information Systems, Faculty of Economics and Business, University of Groningen, P.O. Box 800, 9700 AV Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Jansen, Ritsert C" sort="Jansen, Ritsert C" uniqKey="Jansen R" first="Ritsert C" last="Jansen">Ritsert C. Jansen</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Parkinson, Helen" sort="Parkinson, Helen" uniqKey="Parkinson H" first="Helen" last="Parkinson">Helen Parkinson</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I3">EU-CASIMIR consortium. http://www.casimir.ac.uk</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">21210979</idno>
<idno type="pmc">3040526</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3040526</idno>
<idno type="RBID">PMC:3040526</idno>
<idno type="doi">10.1186/1471-2105-11-S12-S12</idno>
<date when="2010">2010</date>
<idno type="wicri:Area/Pmc/Corpus">000483</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button</title>
<author>
<name sortKey="Swertz, Morris A" sort="Swertz, Morris A" uniqKey="Swertz M" first="Morris A" last="Swertz">Morris A. Swertz</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I3">EU-CASIMIR consortium. http://www.casimir.ac.uk</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I6">BBMRI-NL, Postzone S4-P, P.O. Box 9600, 2300 RC Leiden, The Netherlands http://www.bbmri.nl</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I7">Netherlands Bioinformatics Centre, Geert Grooteplein 28, 6525 GA Nijmegen, The Netherlands http://www.nbic.nl</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Dijkstra, Martijn" sort="Dijkstra, Martijn" uniqKey="Dijkstra M" first="Martijn" last="Dijkstra">Martijn Dijkstra</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I7">Netherlands Bioinformatics Centre, Geert Grooteplein 28, 6525 GA Nijmegen, The Netherlands http://www.nbic.nl</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Adamusiak, Tomasz" sort="Adamusiak, Tomasz" uniqKey="Adamusiak T" first="Tomasz" last="Adamusiak">Tomasz Adamusiak</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Van Der Velde, Joeri K" sort="Van Der Velde, Joeri K" uniqKey="Van Der Velde J" first="Joeri K" last="Van Der Velde">Joeri K. Van Der Velde</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Kanterakis, Alexandros" sort="Kanterakis, Alexandros" uniqKey="Kanterakis A" first="Alexandros" last="Kanterakis">Alexandros Kanterakis</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Roos, Erik T" sort="Roos, Erik T" uniqKey="Roos E" first="Erik T" last="Roos">Erik T. Roos</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Lops, Joris" sort="Lops, Joris" uniqKey="Lops J" first="Joris" last="Lops">Joris Lops</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Thorisson, Gudmundur A" sort="Thorisson, Gudmundur A" uniqKey="Thorisson G" first="Gudmundur A" last="Thorisson">Gudmundur A. Thorisson</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I10">Department of Genetics, University of Leicester, University Road, Leicester LE1 7RH, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Arends, Danny" sort="Arends, Danny" uniqKey="Arends D" first="Danny" last="Arends">Danny Arends</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Byelas, George" sort="Byelas, George" uniqKey="Byelas G" first="George" last="Byelas">George Byelas</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Muilu, Juha" sort="Muilu, Juha" uniqKey="Muilu J" first="Juha" last="Muilu">Juha Muilu</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I9">Institute for Molecular Medicine Finland, University of Helsinki, Haartmaninkatu 8, FIN-00290, Helsinki, Finland</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Brookes, Anthony J" sort="Brookes, Anthony J" uniqKey="Brookes A" first="Anthony J" last="Brookes">Anthony J. Brookes</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I10">Department of Genetics, University of Leicester, University Road, Leicester LE1 7RH, UK</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="De Brock, Engbert O" sort="De Brock, Engbert O" uniqKey="De Brock E" first="Engbert O" last="De Brock">Engbert O. De Brock</name>
<affiliation>
<nlm:aff id="I11">Cluster Information Systems, Faculty of Economics and Business, University of Groningen, P.O. Box 800, 9700 AV Groningen, The Netherlands</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Jansen, Ritsert C" sort="Jansen, Ritsert C" uniqKey="Jansen R" first="Ritsert C" last="Jansen">Ritsert C. Jansen</name>
<affiliation>
<nlm:aff id="I1">Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I4">EU-PANACEA consortium. http://www.panaceaproject.eu</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I5">EU-EUROTRANS cosortium. http://www.euratrans.eu</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Parkinson, Helen" sort="Parkinson, Helen" uniqKey="Parkinson H" first="Helen" last="Parkinson">Helen Parkinson</name>
<affiliation>
<nlm:aff id="I2">EU-GEN2PHEN consortium. http://www.gen2phen.org</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I3">EU-CASIMIR consortium. http://www.casimir.ac.uk</nlm:aff>
</affiliation>
<affiliation>
<nlm:aff id="I8">European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</nlm:aff>
</affiliation>
</author>
</analytic>
<series>
<title level="j">BMC Bioinformatics</title>
<idno type="eISSN">1471-2105</idno>
<imprint>
<date when="2010">2010</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<sec>
<title>Background</title>
<p>There is a huge demand on bioinformaticians to provide their biologists with user friendly and scalable software infrastructures to capture, exchange, and exploit the unprecedented amounts of new *omics data. We here present MOLGENIS, a generic, open source, software toolkit to quickly produce the bespoke MOLecular GENetics Information Systems needed.</p>
</sec>
<sec>
<title>Methods</title>
<p>The MOLGENIS toolkit provides bioinformaticians with a simple language to model biological data structures and user interfaces. At the push of a button, MOLGENIS’ generator suite automatically translates these models into a feature-rich, ready-to-use web application including database, user interfaces, exchange formats, and scriptable interfaces. Each generator is a template of SQL, JAVA, R, or HTML code that would require much effort to write by hand. This ‘model-driven’ method ensures reuse of best practices and improves quality because the modeling language and generators are shared between all MOLGENIS applications, so that errors are found quickly and improvements are shared easily by a re-generation. A plug-in mechanism ensures that both the generator suite and generated product can be customized just as much as hand-written software.</p>
</sec>
<sec>
<title>Results</title>
<p>In recent years we have successfully evaluated the MOLGENIS toolkit for the rapid prototyping of many types of biomedical applications, including next-generation sequencing, GWAS, QTL, proteomics and biobanking. Writing 500 lines of model XML typically replaces 15,000 lines of hand-written programming code, which allows for quick adaptation if the information system is not yet to the biologist’s satisfaction. Each application generated with MOLGENIS comes with an optimized database back-end, user interfaces for biologists to manage and exploit their data, programming interfaces for bioinformaticians to script analysis tools in R, Java, SOAP, REST/JSON and RDF, a tab-delimited file format to ease upload and exchange of data, and detailed technical documentation. Existing databases can be quickly enhanced with MOLGENIS generated interfaces using the ‘ExtractModel’ procedure.</p>
</sec>
<sec>
<title>Conclusions</title>
<p>The MOLGENIS toolkit provides bioinformaticians with a simple model to quickly generate flexible web platforms for all possible genomic, molecular and phenotypic experiments with a richness of interfaces not provided by other tools. All the software and manuals are available free as LGPLv3 open source at
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
.</p>
</sec>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Swertz, Ma" uniqKey="Swertz M">MA Swertz</name>
</author>
<author>
<name sortKey="Jansen, Rc" uniqKey="Jansen R">RC Jansen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stein, Ld" uniqKey="Stein L">LD Stein</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Thorisson, Ga" uniqKey="Thorisson G">GA Thorisson</name>
</author>
<author>
<name sortKey="Muilu, J" uniqKey="Muilu J">J Muilu</name>
</author>
<author>
<name sortKey="Brookes, Aj" uniqKey="Brookes A">AJ Brookes</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Oinn, T" uniqKey="Oinn T">T Oinn</name>
</author>
<author>
<name sortKey="Addis, M" uniqKey="Addis M">M Addis</name>
</author>
<author>
<name sortKey="Ferris, J" uniqKey="Ferris J">J Ferris</name>
</author>
<author>
<name sortKey="Marvin, D" uniqKey="Marvin D">D Marvin</name>
</author>
<author>
<name sortKey="Senger, M" uniqKey="Senger M">M Senger</name>
</author>
<author>
<name sortKey="Greenwood, M" uniqKey="Greenwood M">M Greenwood</name>
</author>
<author>
<name sortKey="Carver, T" uniqKey="Carver T">T Carver</name>
</author>
<author>
<name sortKey="Glover, K" uniqKey="Glover K">K Glover</name>
</author>
<author>
<name sortKey="Pocock, Mr" uniqKey="Pocock M">MR Pocock</name>
</author>
<author>
<name sortKey="Wipat, A" uniqKey="Wipat A">A Wipat</name>
</author>
<author>
<name sortKey="Li, P" uniqKey="Li P">P Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Goecks, J" uniqKey="Goecks J">J Goecks</name>
</author>
<author>
<name sortKey="Nekrutenko, A" uniqKey="Nekrutenko A">A Nekrutenko</name>
</author>
<author>
<name sortKey="Taylor, J" uniqKey="Taylor J">J Taylor</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Fogh, Rh" uniqKey="Fogh R">RH Fogh</name>
</author>
<author>
<name sortKey="Boucher, W" uniqKey="Boucher W">W Boucher</name>
</author>
<author>
<name sortKey="Vranken, Wf" uniqKey="Vranken W">WF Vranken</name>
</author>
<author>
<name sortKey="Pajon, A" uniqKey="Pajon A">A Pajon</name>
</author>
<author>
<name sortKey="Stevens, Tj" uniqKey="Stevens T">TJ Stevens</name>
</author>
<author>
<name sortKey="Bhat, Tn" uniqKey="Bhat T">TN Bhat</name>
</author>
<author>
<name sortKey="Westbrook, J" uniqKey="Westbrook J">J Westbrook</name>
</author>
<author>
<name sortKey="Ionides, Jmc" uniqKey="Ionides J">JMC Ionides</name>
</author>
<author>
<name sortKey="Laue, Ed" uniqKey="Laue E">ED Laue</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Swertz, Ma" uniqKey="Swertz M">MA Swertz</name>
</author>
<author>
<name sortKey="De Brock, Eo" uniqKey="De Brock E">EO de Brock</name>
</author>
<author>
<name sortKey="Van Hijum, Saft" uniqKey="Van Hijum S">SAFT van Hijum</name>
</author>
<author>
<name sortKey="De Jong, A" uniqKey="De Jong A">A de Jong</name>
</author>
<author>
<name sortKey="Buist, G" uniqKey="Buist G">G Buist</name>
</author>
<author>
<name sortKey="Baerends, Rjs" uniqKey="Baerends R">RJS Baerends</name>
</author>
<author>
<name sortKey="Kok, J" uniqKey="Kok J">J Kok</name>
</author>
<author>
<name sortKey="Kuipers, Op" uniqKey="Kuipers O">OP Kuipers</name>
</author>
<author>
<name sortKey="Jansen, Rc" uniqKey="Jansen R">RC Jansen</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Swertz, Ma" uniqKey="Swertz M">MA Swertz</name>
</author>
<author>
<name sortKey="Velde, Kj" uniqKey="Velde K">KJ Velde</name>
</author>
<author>
<name sortKey="Tesson, Bm" uniqKey="Tesson B">BM Tesson</name>
</author>
<author>
<name sortKey="Scheltema, Ra" uniqKey="Scheltema R">RA Scheltema</name>
</author>
<author>
<name sortKey="Arends, D" uniqKey="Arends D">D Arends</name>
</author>
<author>
<name sortKey="Vera, G" uniqKey="Vera G">G Vera</name>
</author>
<author>
<name sortKey="Alberts, R" uniqKey="Alberts R">R Alberts</name>
</author>
<author>
<name sortKey="Dijkstra, M" uniqKey="Dijkstra M">M Dijkstra</name>
</author>
<author>
<name sortKey="Schofield, P" uniqKey="Schofield P">P Schofield</name>
</author>
<author>
<name sortKey="Schughart, K" uniqKey="Schughart K">K Schughart</name>
</author>
<author>
<name sortKey="Hancock, Jm" uniqKey="Hancock J">JM Hancock</name>
</author>
<author>
<name sortKey="Smedley, D" uniqKey="Smedley D">D Smedley</name>
</author>
<author>
<name sortKey="Wolstencroft, K" uniqKey="Wolstencroft K">K Wolstencroft</name>
</author>
<author>
<name sortKey="Goble, C" uniqKey="Goble C">C Goble</name>
</author>
<author>
<name sortKey="De Brock, Eo" uniqKey="De Brock E">EO de Brock</name>
</author>
<author>
<name sortKey="Jones, Ar" uniqKey="Jones A">AR Jones</name>
</author>
<author>
<name sortKey="Parkinson, He" uniqKey="Parkinson H">HE Parkinson</name>
</author>
<author>
<name sortKey="Jansen, Rc" uniqKey="Jansen R">RC Jansen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Thorisson, Ga" uniqKey="Thorisson G">GA Thorisson</name>
</author>
<author>
<name sortKey="Lancaster, O" uniqKey="Lancaster O">O Lancaster</name>
</author>
<author>
<name sortKey="Free, Rc" uniqKey="Free R">RC Free</name>
</author>
<author>
<name sortKey="Hastings, Rk" uniqKey="Hastings R">RK Hastings</name>
</author>
<author>
<name sortKey="Sarmah, P" uniqKey="Sarmah P">P Sarmah</name>
</author>
<author>
<name sortKey="Dash, D" uniqKey="Dash D">D Dash</name>
</author>
<author>
<name sortKey="Brahmachari, Sk" uniqKey="Brahmachari S">SK Brahmachari</name>
</author>
<author>
<name sortKey="Brookes, Aj" uniqKey="Brookes A">AJ Brookes</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Leu, M" uniqKey="Leu M">M Leu</name>
</author>
<author>
<name sortKey="Humphreys, K" uniqKey="Humphreys K">K Humphreys</name>
</author>
<author>
<name sortKey="Surakka, I" uniqKey="Surakka I">I Surakka</name>
</author>
<author>
<name sortKey="Rehnberg, E" uniqKey="Rehnberg E">E Rehnberg</name>
</author>
<author>
<name sortKey="Muilu, J" uniqKey="Muilu J">J Muilu</name>
</author>
<author>
<name sortKey="Rosenstrom, P" uniqKey="Rosenstrom P">P Rosenstrom</name>
</author>
<author>
<name sortKey="Almgren, P" uniqKey="Almgren P">P Almgren</name>
</author>
<author>
<name sortKey="Jaaskelainen, J" uniqKey="Jaaskelainen J">J Jaaskelainen</name>
</author>
<author>
<name sortKey="Lifton, Rp" uniqKey="Lifton R">RP Lifton</name>
</author>
<author>
<name sortKey="Kyvik, Ko" uniqKey="Kyvik K">KO Kyvik</name>
</author>
<author>
<name sortKey="Kaprio, J" uniqKey="Kaprio J">J Kaprio</name>
</author>
<author>
<name sortKey="Pedersen, Nl" uniqKey="Pedersen N">NL Pedersen</name>
</author>
<author>
<name sortKey="Palotie, A" uniqKey="Palotie A">A Palotie</name>
</author>
<author>
<name sortKey="Hall, P" uniqKey="Hall P">P Hall</name>
</author>
<author>
<name sortKey="Gronberg, H" uniqKey="Gronberg H">H Gronberg</name>
</author>
<author>
<name sortKey="Groop, L" uniqKey="Groop L">L Groop</name>
</author>
<author>
<name sortKey="Peltonen, L" uniqKey="Peltonen L">L Peltonen</name>
</author>
<author>
<name sortKey="Palmgren, J" uniqKey="Palmgren J">J Palmgren</name>
</author>
<author>
<name sortKey="Ripatti, S" uniqKey="Ripatti S">S Ripatti</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Li, Y" uniqKey="Li Y">Y Li</name>
</author>
<author>
<name sortKey="Swertz, Ma" uniqKey="Swertz M">MA Swertz</name>
</author>
<author>
<name sortKey="Vera, G" uniqKey="Vera G">G Vera</name>
</author>
<author>
<name sortKey="Fu, J" uniqKey="Fu J">J Fu</name>
</author>
<author>
<name sortKey="Breitling, R" uniqKey="Breitling R">R Breitling</name>
</author>
<author>
<name sortKey="Jansen, Rc" uniqKey="Jansen R">RC Jansen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Smedley, D" uniqKey="Smedley D">D Smedley</name>
</author>
<author>
<name sortKey="Swertz, Ma" uniqKey="Swertz M">MA Swertz</name>
</author>
<author>
<name sortKey="Wolstencroft, K" uniqKey="Wolstencroft K">K Wolstencroft</name>
</author>
<author>
<name sortKey="Proctor, G" uniqKey="Proctor G">G Proctor</name>
</author>
<author>
<name sortKey="Zouberakis, M" uniqKey="Zouberakis M">M Zouberakis</name>
</author>
<author>
<name sortKey="Bard, J" uniqKey="Bard J">J Bard</name>
</author>
<author>
<name sortKey="Hancock, Jm" uniqKey="Hancock J">JM Hancock</name>
</author>
<author>
<name sortKey="Schofield, P" uniqKey="Schofield P">P Schofield</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Neighbors, J" uniqKey="Neighbors J">J Neighbors</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hunt, A" uniqKey="Hunt A">A Hunt</name>
</author>
<author>
<name sortKey="Thomas, D" uniqKey="Thomas D">D Thomas</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bentley, J" uniqKey="Bentley J">J Bentley</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Van Deursen, A" uniqKey="Van Deursen A">A van Deursen</name>
</author>
<author>
<name sortKey="Klint, P" uniqKey="Klint P">P Klint</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Greenfield, J" uniqKey="Greenfield J">J Greenfield</name>
</author>
<author>
<name sortKey="Short, K" uniqKey="Short K">K Short</name>
</author>
<author>
<name sortKey="Cook, S" uniqKey="Cook S">S Cook</name>
</author>
<author>
<name sortKey="Kent, S" uniqKey="Kent S">S Kent</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Brooks, F" uniqKey="Brooks F">F Brooks</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Fowler, M" uniqKey="Fowler M">M Fowler</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Smedley, D" uniqKey="Smedley D">D Smedley</name>
</author>
<author>
<name sortKey="Haider, S" uniqKey="Haider S">S Haider</name>
</author>
<author>
<name sortKey="Ballester, B" uniqKey="Ballester B">B Ballester</name>
</author>
<author>
<name sortKey="Holland, R" uniqKey="Holland R">R Holland</name>
</author>
<author>
<name sortKey="London, D" uniqKey="London D">D London</name>
</author>
<author>
<name sortKey="Thorisson, G" uniqKey="Thorisson G">G Thorisson</name>
</author>
<author>
<name sortKey="Kasprzyk, A" uniqKey="Kasprzyk A">A Kasprzyk</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lyne, R" uniqKey="Lyne R">R Lyne</name>
</author>
<author>
<name sortKey="Smith, R" uniqKey="Smith R">R Smith</name>
</author>
<author>
<name sortKey="Rutherford, K" uniqKey="Rutherford K">K Rutherford</name>
</author>
<author>
<name sortKey="Wakeling, M" uniqKey="Wakeling M">M Wakeling</name>
</author>
<author>
<name sortKey="Varley, A" uniqKey="Varley A">A Varley</name>
</author>
<author>
<name sortKey="Guillier, F" uniqKey="Guillier F">F Guillier</name>
</author>
<author>
<name sortKey="Janssens, H" uniqKey="Janssens H">H Janssens</name>
</author>
<author>
<name sortKey="Ji, W" uniqKey="Ji W">W Ji</name>
</author>
<author>
<name sortKey="Mclaren, P" uniqKey="Mclaren P">P McLaren</name>
</author>
<author>
<name sortKey="North, P" uniqKey="North P">P North</name>
</author>
<author>
<name sortKey="Rana, D" uniqKey="Rana D">D Rana</name>
</author>
<author>
<name sortKey="Riley, T" uniqKey="Riley T">T Riley</name>
</author>
<author>
<name sortKey="Sullivan, J" uniqKey="Sullivan J">J Sullivan</name>
</author>
<author>
<name sortKey="Watkins, X" uniqKey="Watkins X">X Watkins</name>
</author>
<author>
<name sortKey="Woodbridge, M" uniqKey="Woodbridge M">M Woodbridge</name>
</author>
<author>
<name sortKey="Lilley, K" uniqKey="Lilley K">K Lilley</name>
</author>
<author>
<name sortKey="Russell, S" uniqKey="Russell S">S Russell</name>
</author>
<author>
<name sortKey="Ashburner, M" uniqKey="Ashburner M">M Ashburner</name>
</author>
<author>
<name sortKey="Mizuguchi, K" uniqKey="Mizuguchi K">K Mizuguchi</name>
</author>
<author>
<name sortKey="Micklem, G" uniqKey="Micklem G">G Micklem</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Jameson, D" uniqKey="Jameson D">D Jameson</name>
</author>
<author>
<name sortKey="Garwood, K" uniqKey="Garwood K">K Garwood</name>
</author>
<author>
<name sortKey="Garwood, C" uniqKey="Garwood C">C Garwood</name>
</author>
<author>
<name sortKey="Booth, T" uniqKey="Booth T">T Booth</name>
</author>
<author>
<name sortKey="Alper, P" uniqKey="Alper P">P Alper</name>
</author>
<author>
<name sortKey="Oliver, Sg" uniqKey="Oliver S">SG Oliver</name>
</author>
<author>
<name sortKey="Paton, Nw" uniqKey="Paton N">NW Paton</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="O Connor, Bd" uniqKey="O Connor B">BD O'Connor</name>
</author>
<author>
<name sortKey="Day, A" uniqKey="Day A">A Day</name>
</author>
<author>
<name sortKey="Cain, S" uniqKey="Cain S">S Cain</name>
</author>
<author>
<name sortKey="Arnaiz, O" uniqKey="Arnaiz O">O Arnaiz</name>
</author>
<author>
<name sortKey="Sperling, L" uniqKey="Sperling L">L Sperling</name>
</author>
<author>
<name sortKey="Stein, Ld" uniqKey="Stein L">LD Stein</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">BMC Bioinformatics</journal-id>
<journal-title-group>
<journal-title>BMC Bioinformatics</journal-title>
</journal-title-group>
<issn pub-type="epub">1471-2105</issn>
<publisher>
<publisher-name>BioMed Central</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">21210979</article-id>
<article-id pub-id-type="pmc">3040526</article-id>
<article-id pub-id-type="publisher-id">1471-2105-11-S12-S12</article-id>
<article-id pub-id-type="doi">10.1186/1471-2105-11-S12-S12</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Proceedings</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes" id="A1">
<name>
<surname>Swertz</surname>
<given-names>Morris A</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I3">3</xref>
<xref ref-type="aff" rid="I4">4</xref>
<xref ref-type="aff" rid="I5">5</xref>
<xref ref-type="aff" rid="I6">6</xref>
<xref ref-type="aff" rid="I7">7</xref>
<xref ref-type="aff" rid="I8">8</xref>
<email>m.a.swertz@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A2">
<name>
<surname>Dijkstra</surname>
<given-names>Martijn</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<xref ref-type="aff" rid="I7">7</xref>
<email>m.dijkstra@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A3">
<name>
<surname>Adamusiak</surname>
<given-names>Tomasz</given-names>
</name>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I8">8</xref>
<email>tomasz@ebi.ac.uk</email>
</contrib>
<contrib contrib-type="author" id="A4">
<name>
<surname>van der Velde</surname>
<given-names>Joeri K</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<xref ref-type="aff" rid="I4">4</xref>
<xref ref-type="aff" rid="I5">5</xref>
<email>k.j.van.der.velde@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A5">
<name>
<surname>Kanterakis</surname>
<given-names>Alexandros</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>alexandros.kanterakis@gmail.com</email>
</contrib>
<contrib contrib-type="author" id="A6">
<name>
<surname>Roos</surname>
<given-names>Erik T</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>t.e.roos@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A7">
<name>
<surname>Lops</surname>
<given-names>Joris</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>j.lops@medgen.umcg.nl</email>
</contrib>
<contrib contrib-type="author" id="A8">
<name>
<surname>Thorisson</surname>
<given-names>Gudmundur A</given-names>
</name>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I10">10</xref>
<email>gthorisson@gmail.com</email>
</contrib>
<contrib contrib-type="author" id="A9">
<name>
<surname>Arends</surname>
<given-names>Danny</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>danny.arends@gmail.com</email>
</contrib>
<contrib contrib-type="author" id="A10">
<name>
<surname>Byelas</surname>
<given-names>George</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<email>h.v.byelas@gmail.com</email>
</contrib>
<contrib contrib-type="author" id="A11">
<name>
<surname>Muilu</surname>
<given-names>Juha</given-names>
</name>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I9">9</xref>
<email>juha.muilu@helsinki.fi</email>
</contrib>
<contrib contrib-type="author" id="A12">
<name>
<surname>Brookes</surname>
<given-names>Anthony J</given-names>
</name>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I10">10</xref>
<email>ajb97@leicester.ac.uk</email>
</contrib>
<contrib contrib-type="author" id="A13">
<name>
<surname>de Brock</surname>
<given-names>Engbert O</given-names>
</name>
<xref ref-type="aff" rid="I11">11</xref>
<email>e.o.de.brock@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A14">
<name>
<surname>Jansen</surname>
<given-names>Ritsert C</given-names>
</name>
<xref ref-type="aff" rid="I1">1</xref>
<xref ref-type="aff" rid="I4">4</xref>
<xref ref-type="aff" rid="I5">5</xref>
<email>r.c.jansen@rug.nl</email>
</contrib>
<contrib contrib-type="author" id="A15">
<name>
<surname>Parkinson</surname>
<given-names>Helen</given-names>
</name>
<xref ref-type="aff" rid="I2">2</xref>
<xref ref-type="aff" rid="I3">3</xref>
<xref ref-type="aff" rid="I8">8</xref>
<email>parkinson@ebi.ac.uk</email>
</contrib>
</contrib-group>
<aff id="I1">
<label>1</label>
Genomics Coordination Center, Groningen Bioinformatics Center, University of Groningen & Dept. of Genetics, University Medical Center Groningen, P.O. Box 30001, 9700 RB Groningen, The Netherlands</aff>
<aff id="I2">
<label>2</label>
EU-GEN2PHEN consortium. http://www.gen2phen.org</aff>
<aff id="I3">
<label>3</label>
EU-CASIMIR consortium. http://www.casimir.ac.uk</aff>
<aff id="I4">
<label>4</label>
EU-PANACEA consortium. http://www.panaceaproject.eu</aff>
<aff id="I5">
<label>5</label>
EU-EUROTRANS cosortium. http://www.euratrans.eu</aff>
<aff id="I6">
<label>6</label>
BBMRI-NL, Postzone S4-P, P.O. Box 9600, 2300 RC Leiden, The Netherlands http://www.bbmri.nl</aff>
<aff id="I7">
<label>7</label>
Netherlands Bioinformatics Centre, Geert Grooteplein 28, 6525 GA Nijmegen, The Netherlands http://www.nbic.nl</aff>
<aff id="I8">
<label>8</label>
European Bioinformatics Institute, Wellcome Trust Genome Campus, Cambridge CB10 1SD, UK</aff>
<aff id="I9">
<label>9</label>
Institute for Molecular Medicine Finland, University of Helsinki, Haartmaninkatu 8, FIN-00290, Helsinki, Finland</aff>
<aff id="I10">
<label>10</label>
Department of Genetics, University of Leicester, University Road, Leicester LE1 7RH, UK</aff>
<aff id="I11">
<label>11</label>
Cluster Information Systems, Faculty of Economics and Business, University of Groningen, P.O. Box 800, 9700 AV Groningen, The Netherlands</aff>
<pub-date pub-type="collection">
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>21</day>
<month>12</month>
<year>2010</year>
</pub-date>
<volume>11</volume>
<issue>Suppl 12</issue>
<supplement>
<named-content content-type="supplement-title">Proceedings of the 11th Annual Bioinformatics Open Source Conference (BOSC) 2010</named-content>
<named-content content-type="supplement-editor">Kam D Dahlquist</named-content>
<ext-link ext-link-type="uri" xlink:href="http://www.biomedcentral.com/content/pdf/1471-2105-11-S12-info.pdf">http://www.biomedcentral.com/content/pdf/1471-2105-11-S12-info.pdf</ext-link>
</supplement>
<fpage>S12</fpage>
<lpage>S12</lpage>
<permissions>
<copyright-statement>Copyright ©2010 Swertz et al; licensee BioMed Central Ltd.</copyright-statement>
<copyright-year>2010</copyright-year>
<copyright-holder>Swertz et al; licensee BioMed Central Ltd.</copyright-holder>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/2.0">
<license-p>This is an open access article distributed under the terms of the Creative Commons Attribution License (
<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/2.0">http://creativecommons.org/licenses/by/2.0</ext-link>
), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri xlink:href="http://www.biomedcentral.com/1471-2105/11/S12/S12"></self-uri>
<abstract>
<sec>
<title>Background</title>
<p>There is a huge demand on bioinformaticians to provide their biologists with user friendly and scalable software infrastructures to capture, exchange, and exploit the unprecedented amounts of new *omics data. We here present MOLGENIS, a generic, open source, software toolkit to quickly produce the bespoke MOLecular GENetics Information Systems needed.</p>
</sec>
<sec>
<title>Methods</title>
<p>The MOLGENIS toolkit provides bioinformaticians with a simple language to model biological data structures and user interfaces. At the push of a button, MOLGENIS’ generator suite automatically translates these models into a feature-rich, ready-to-use web application including database, user interfaces, exchange formats, and scriptable interfaces. Each generator is a template of SQL, JAVA, R, or HTML code that would require much effort to write by hand. This ‘model-driven’ method ensures reuse of best practices and improves quality because the modeling language and generators are shared between all MOLGENIS applications, so that errors are found quickly and improvements are shared easily by a re-generation. A plug-in mechanism ensures that both the generator suite and generated product can be customized just as much as hand-written software.</p>
</sec>
<sec>
<title>Results</title>
<p>In recent years we have successfully evaluated the MOLGENIS toolkit for the rapid prototyping of many types of biomedical applications, including next-generation sequencing, GWAS, QTL, proteomics and biobanking. Writing 500 lines of model XML typically replaces 15,000 lines of hand-written programming code, which allows for quick adaptation if the information system is not yet to the biologist’s satisfaction. Each application generated with MOLGENIS comes with an optimized database back-end, user interfaces for biologists to manage and exploit their data, programming interfaces for bioinformaticians to script analysis tools in R, Java, SOAP, REST/JSON and RDF, a tab-delimited file format to ease upload and exchange of data, and detailed technical documentation. Existing databases can be quickly enhanced with MOLGENIS generated interfaces using the ‘ExtractModel’ procedure.</p>
</sec>
<sec>
<title>Conclusions</title>
<p>The MOLGENIS toolkit provides bioinformaticians with a simple model to quickly generate flexible web platforms for all possible genomic, molecular and phenotypic experiments with a richness of interfaces not provided by other tools. All the software and manuals are available free as LGPLv3 open source at
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
.</p>
</sec>
</abstract>
<conference>
<conf-date>9–10 July 2010</conf-date>
<conf-name>The 11th Annual Bioinformatics Open Source Conference (BOSC) 2010</conf-name>
<conf-loc>Boston, MA, USA</conf-loc>
</conference>
</article-meta>
</front>
<body>
<sec>
<title>Background</title>
<p>High-throughput technologies have boosted biological and medical research and the need for software infrastructures to manage and process the large datasets produced is widely accepted [
<xref ref-type="bibr" rid="B1">1</xref>
-
<xref ref-type="bibr" rid="B3">3</xref>
]. Bioinformaticians are under continuous pressure to both tackle the complexity and diversity of new biological systems and analytical methods and to translate these quickly into flexible informatics infrastructures, while keeping up with the unpredictable evolution of molecular biotechnologies and the increasing scale of experiments. While standardization of tools and data formats in open source projects like the Generic Model Organism Database, GMOD [
<xref ref-type="bibr" rid="B4">4</xref>
], and the Open Bioinformatics Foundation, OBF [
<xref ref-type="bibr" rid="B5">5</xref>
], have been indispensable in reducing the development efforts needed via reusable and easy to integrate components, new research must also be quickly accommodated, for which efficient software variation mechanisms are needed.</p>
<p>Figure
<xref ref-type="fig" rid="F1">1</xref>
outlines the ‘model-driven’ development method that several bioinformatics projects adopted in recent years to enable fast and flexible infrastructure development [
<xref ref-type="bibr" rid="B1">1</xref>
], for example Taverna and Galaxy for analysis workflows [
<xref ref-type="bibr" rid="B6">6</xref>
,
<xref ref-type="bibr" rid="B7">7</xref>
], CCPN for processing tools [
<xref ref-type="bibr" rid="B8">8</xref>
], and the early MOLGENIS for biological data management [
<xref ref-type="bibr" rid="B9">9</xref>
]. See our review [
<xref ref-type="bibr" rid="B1">1</xref>
] for a more complete overview. This method consists of three components: extensible ‘standard’ software that provides a vast array of reusable components; a high-level modeling language (domain-specific language, DSL) to specify biology-specific customizations to this software; and a software code generator to automatically translate (or execute) such custom models into all lower level program logic of the complete working software, saving all the effort needed to write the software by hand.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption>
<p>
<bold>Model-driven development.</bold>
Many minor and major changes have to be written in software code before a ‘standard’ software infrastructure accommodates a particular research. Using ‘model-driven’ development methods a bioinformatician only needs to model what is needed for his experiment using a therefore optimized domain specific language (DSL). Generators quickly produce all the software logic to compose a full software infrastructure that accommodates these needs. When experimental needs change, a bioinformatician can (re)run the same generator with an adapted model file to quickly produce another variant of software infrastructure. This vastly reduces ‘time-to-research’ and enables bioinformaticians to quickly develop a suite of software infrastructures, with each variant accommodating a specific research task, while still on track to reuse, integrate and share the best standard features with other labs and bioinformaticians.</p>
</caption>
<graphic xlink:href="1471-2105-11-S12-S12-1"></graphic>
</fig>
<p>In this paper we present the evolution of MOLGENIS into a generic, model-driven toolkit for the rapid generation of bespoke, data-intensive biosoftware applications [
<xref ref-type="bibr" rid="B10">10</xref>
]. We demonstrate step-by-step how bioinformaticians can use a domain-specific language to efficiently model the biological details of their particular biological system, and use MOLGENIS software generation tools to automatically generate a web application tailored to the experiments of their biologists, building on reusable components. Next, we evaluate the results of these methods in the development of a range of MOLGENIS applications [
<xref ref-type="bibr" rid="B9">9</xref>
,
<xref ref-type="bibr" rid="B11">11</xref>
-
<xref ref-type="bibr" rid="B15">15</xref>
], that is, software applications generated using the MOLGENIS toolkit. We found up to 30 times efficiency improvement compared to hand-writing software, while providing a richness of features practically unfeasible to produce by hand but not yet provided by related projects. We conclude by inviting the bioinformatics community to add more MOLGENIS models, components and generators to quickly generate all the software infrastructures biologists want to have.</p>
</sec>
<sec sec-type="methods">
<title>Methods</title>
<p>The MOLGENIS toolkit is based on the method of model-driven development which emerged in the 1990s from the computer industry. The key to success is the clear scope of the toolbox (i.e., what family of software applications should be produced with it) and separating which features should be fixed (e.g., reusable components common to all MOLGENIS applications) and which features should be variable (i.e. modeled and generated per MOLGENIS application instance), a process known as domain analysis [
<xref ref-type="bibr" rid="B16">16</xref>
]. Below we discuss MOLGENIS’ initial domain analysis, its modeling language, generators and reusable components.</p>
<sec>
<title>Domain analysis</title>
<p>Table
<xref ref-type="table" rid="T1">1</xref>
summarizes the initial set of features we required from MOLGENIS information systems when we started; it explains why these features are indeed required, and describes what parts of the features are common and variable over experiment databases. To obtain this picture, we analyzed 20 existing microarray databases next to many requirements interviews, see Table
<xref ref-type="table" rid="T1">1</xref>
in [
<xref ref-type="bibr" rid="B9">9</xref>
].</p>
<table-wrap id="T1" position="float">
<label>Table 1</label>
<caption>
<p>Common and variable features of MOLGENIS information systems.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left">MOLGENIS Features (F)</th>
<th align="left">Common parts (C) and Variable parts (V)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">
<bold>F1. Data</bold>
<break></break>
Store and find lab activities, datasets and biomaterials.</td>
<td align="left">C1. Logic to add, update, remove, find and count data entities in a database; read and write data files.
<break></break>
V1. Data structures that suit the research, e.g., samples in a clinical lab have a “tissue” while microbe samples do not.</td>
</tr>
<tr>
<td colspan="2">
<hr></hr>
</td>
</tr>
<tr>
<td align="left">
<bold>F2. Control</bold>
<break></break>
Manipulate lab entities such that they suit the research process.</td>
<td align="left">C2. Logic to select, navigate (first, previous, next, last), find (filter), and edit data entities (using the logic of C1).
<break></break>
V2. Control structures that suit the research, e.g., experiments are shown with a menu with sub-forms for Samples and Hybridizations.</td>
</tr>
<tr>
<td colspan="2">
<hr></hr>
</td>
</tr>
<tr>
<td align="left">
<bold>F3. View</bold>
<break></break>
View entities and control interactively (via the Internet).</td>
<td align="left">C3 Presentation of logic that shows F1 and F2 with usable layout and formatting.
<break></break>
V3. Presentation of structure of the specific entity (V1) and control structure (V2) of a system variant via the Internet (option to have this in company style).</td>
</tr>
<tr>
<td colspan="2">
<hr></hr>
</td>
</tr>
<tr>
<td align="left">
<bold>F4. Security</bold>
<break></break>
Ensure that the right people get access to the right results.</td>
<td align="left">C4. To manage users, roles and privileges and have authentication and authorization in place.
<break></break>
V4. To set Roles and Privileges to entities and controls, e.g., only spotters (role) are allowed to add arrays (privilege).</td>
</tr>
<tr>
<td colspan="2">
<hr></hr>
</td>
</tr>
<tr>
<td align="left">
<bold>F5. Extensibility</bold>
<break></break>
Allow addition of components for data processing and visualizations.</td>
<td align="left">C5. To have a plug-in mechanism to integrate external programs so that these programs can benefit from entity and control logic.
<break></break>
V5. To extend a system variant with logic beyond the family, e.g., analysis scripts, quantification file validation, complex data aggregation, and export to files.</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The second step was to implement the common and variable parts, which we started with a prototype. Here we applied the
<italic>
<underline>d</underline>
on’t
<underline>r</underline>
epeat
<underline>y</underline>
ourself</italic>
principle (DRY) [
<xref ref-type="bibr" rid="B17">17</xref>
]: every piece of design knowledge must have a single, unambiguous, authoritative representation. We therefore searched through the prototype software code. If we found
<italic>identical</italic>
pieces then we put them into the library of reusable components. If we found
<italic>very similar</italic>
pieces of software code, we put the common parts into a generator and the variation points into the modeling language. In each subsequent step we evolved the MOLGENIS generator, only incorporating new functionality when we
<italic>repeatedly</italic>
needed it.</p>
<p>During the next six years of using the MOLGENIS generator we added numerous functions and optimizations, such as filters for the data, viewing data as a ‘matrix’, downloading data as CSV files, enabling programming interaction via R and web services, and so on. The generators ensure that ‘old’ MOLGENIS application variants can benefit from these improvements: when a MOLGENIS instance is re-generated, these improvements are automatically integrated into the new version.</p>
</sec>
<sec>
<title>Modeling language</title>
<p>Figure
<xref ref-type="fig" rid="F2">2</xref>
shows how a custom MOLGENIS application can be defined in a single file. The file is written in MOLGENIS’ modeling language. This enables compact specification of
<italic>what</italic>
experiment database is needed, i.e., to declare how an experiment is organized in terms of data types and their relationships and how these data are to be shown on the screen. Figure
<xref ref-type="fig" rid="F2">2</xref>
shows the following features: Three data
<italic>entities</italic>
: ❶Experiment, Sample and Hybridization; the Experiment entity has six
<italic>fields</italic>
, including ID, Medium and Stress (because it needs to administrate microbe experiments). To minimize the modeling work we choose sensible defaults in the domain-specific language, a principle known as
<italic>convention over configuration</italic>
: each field has to be set to a value by the researcher unless specified to be nillable❷; field can be edited (updated) unless specified to be read only❸; each field is default of type ‘string’ (a variable character string of length 255) unless otherwise specified to e.g., ’decimal’❹; and fields can be defined as having a relation to fields in other entities via a cross-reference (xref)❺. The user interface consists of a
<italic>plugin</italic>
❻ that renders the MOLGENIS header and tool menu; one user interface
<italic>form</italic>
❼ to control Experiments, with a sub
<italic>menu</italic>
<italic>,</italic>
consisting of two
<italic>child forms</italic>
for Samples and Hybridizations. Child forms are automatically linked to the parent form based on cross references, e.g., the field ‘Experiment’ of ‘Sample’ references to the ‘ID’ of an ‘Experiment’❾. By default, forms show each entity as one-record-per-screen unless specified as a list❿. The modeling language includes advanced object-orientation features like inheritance, as well as extensive help to document your model (not shown).</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption>
<p>
<bold>Example model.</bold>
The detailed software needed for an experiment can be described in domain-specific language (DSL, left). The MOLGENIS generator reads the model and automatically produces the custom software infrastructure specified (right). The screenshot includes example data. See main text for a description of the numbers.</p>
</caption>
<graphic xlink:href="1471-2105-11-S12-S12-2"></graphic>
</fig>
<p>One can think of MOLGENIS’ modeling language as a ‘domain-specific language’ (DSL) that is optimized to efficiently express a particular problem, task or area [
<xref ref-type="bibr" rid="B18">18</xref>
,
<xref ref-type="bibr" rid="B19">19</xref>
], in this case to compose biosoftware infrastructures. The level of abstraction is raised, so no lengthy, technical or redundant details on
<italic>how</italic>
each feature should be implemented in general programming languages have to be given [
<xref ref-type="bibr" rid="B20">20</xref>
,
<xref ref-type="bibr" rid="B21">21</xref>
]. Examples of other domain-specific languages include R/Splus for statistics, MatLab for mathematics, SQL for databases, HTML for layouting, and now MOLGENIS’ modeling language for biological software infrastructures.</p>
<p>In most cases, knowledge of the DSL is all that is needed to produce a custom MOLGENIS application variant. The domain-specific language was implemented using XML so that model files can be edited using off-the-shelf XML editors. However, you may want to include hand-programmed components into a particular MOLGENIS instance. For example, for the eXtensible Genotype And Phenotype (XGAP) database application of MOLGENIS [
<xref ref-type="bibr" rid="B11">11</xref>
], we developed a ‘MatrixViewer’ that builds on the generated components, which saved us the work of writing the plug-in from scratch. This requires a model sentence that points to the ‘plug-in’ (allowing it to be seamlessly integrated) as well as hand-programming of the plug-in itself.</p>
</sec>
<sec>
<title>Reusable components</title>
<p>Each MOLGENIS application follows the widely accepted three-layered architecture design of web applications. Figure
<xref ref-type="fig" rid="F3">3</xref>
summarizes some of MOLGENIS’ reusable components and their variation mechanisms. MOLGENIS’ reusable components provide building blocks with a modular structure, which allows them to be assembled in diverse combinations, similar to prefabricated houses that are built from modular walls instead of bricks. Some building blocks are semi-finished and need to be ‘completed’ before use (which is automated in MOLGENIS via the generators and inheritance). We based the design of MOLGENIS on industry-proven design patterns from the ‘
<underline>p</underline>
atterns for
<underline>e</underline>
nterprise
<underline>a</underline>
pplication
<underline>a</underline>
rchitecture’ (PEAA), a catalog of proven solutions for software design problems that we used as a guideline [
<xref ref-type="bibr" rid="B22">22</xref>
]. The logic of the reusable components is implemented using Java (
<underline>http://java.sun.com</underline>
); the HTML layout for the user interface is encoded in Freemarker templates (
<underline>http://freemarker.sourceforge.net/</underline>
); and the database back-end using MySQL, PostgreSQL or HSQLDB.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption>
<p>
<bold>Reusable components.</bold>
(A) shows finished and semi-finished components that provide reusable features for displaying screens (FormView and MenuView), handling user requests (Form- and MenuController), and reading and writing to the database (DataMapper). (B) shows components of a completed software variant as described in Figure
<xref ref-type="fig" rid="F2">2</xref>
. Only the ‘differences’ needed to be added using systematic variation mechanisms (dotted lines) such as inheritance or parameterization.</p>
</caption>
<graphic xlink:href="1471-2105-11-S12-S12-3"></graphic>
</fig>
</sec>
<sec>
<title>Generators</title>
<p>The generators are compact specifications of
<italic>how</italic>
each database feature should be implemented. The MOLGENIS toolkit now has over 20 generators, but normal users will never need to take a look inside. However, for readers wanting to create their own generators, Figure
<xref ref-type="fig" rid="F4">4</xref>
provides an example of the simple, text-based, generators we use. Each generator consists of two files: a Freemarker template that describes the code to be generated (similar to that shown in Figure
<xref ref-type="fig" rid="F4">4a</xref>
) and a Java ‘Generator’ class that controls the generating process. A new generator can be developed as follows: first write some examples of the desired programs by hand, where possible using similar patterns (see Figure
<xref ref-type="fig" rid="F4">4b</xref>
) and mark which parts are variable between them. Then copy one of these examples into a
<italic>generator template</italic>
(text file) and replace all variable parts with ‘holes’ that are to be filled by the code generator based on parameters from DSL (see Figure
<xref ref-type="fig" rid="F4">4a</xref>
). At each generation, the template is then automatically copied and the ‘holes’ filled, based on parameters described in the domain-specific language, saving much laborious manual work.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption>
<p>
<bold>Example generator.</bold>
MOLGENIS generators are implemented as templates. This example shows the generator for a database component (A). This template is applied to each in the model to generate many complete DataMappers that would otherwise need to be written by hand. (B) shows an example of the generated source files, in this case for as described in Figure
<xref ref-type="fig" rid="F1">1</xref>
. The command
<bold>$Name(entity)</bold>
translates to the name of the entity (“Experiment”) and command
<bold>${csv($entity.Fields, x)}</bold>
means that command ‘
<bold>x</bold>
’ is applied to each field of the entity and returned as a comma separated string (csv).</p>
</caption>
<graphic xlink:href="1471-2105-11-S12-S12-4"></graphic>
</fig>
</sec>
</sec>
<sec>
<title>Results</title>
<p>To start generating your own MOLGENIS application, you can download a ready-to-use ‘workspace’ from
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
, which can be edited using the commonly used Eclipse integrated development environment (IDE) tool (
<ext-link ext-link-type="uri" xlink:href="http://www.eclipse.org">http://www.eclipse.org</ext-link>
). Extensive manuals are available to help install the Java, MySQL, Tomcat and Eclipse software needed and to learn how to walk through the Eclipse workspace to edit models and generate and run MOLGENIS instances; most new users can complete this part in about three hours. Below we summarize the output you can expect as well as recent experiences from using this toolbox. Detailed examples on how these features can be used to support actual microarray or genetical genomics experiments can be found in [
<xref ref-type="bibr" rid="B11">11</xref>
,
<xref ref-type="bibr" rid="B14">14</xref>
,
<xref ref-type="bibr" rid="B15">15</xref>
].</p>
<sec>
<title>Expected output</title>
<p>After completing a MOLGENIS model and running the generator as described above, you have a ready-to-use software application. Figure
<xref ref-type="fig" rid="F5">5</xref>
summarizes the features you get when running the generated result as a web application: a fully functional system where researchers can upload, manage, browse and query their biological data that conform to the model, optionally enhanced with analysis tools to explore and annotate (depending on the plug-ins).</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption>
<p>
<bold>Expected output.</bold>
Overview of a typical MOLGENIS application, in this case customized in EBI style. See main text for a description of the numbers.</p>
</caption>
<graphic xlink:href="1471-2105-11-S12-S12-5"></graphic>
</fig>
<p>An important feature is human readable and printable documentation of your model, including a graphical overview showing relationships in UML❶ which is of great use when still designing and discussing the model in a team. The next step is typically using the web user interface to populate and test your application with real data❷. To enable batch loading from a spreadsheet application such as Excel, the system comes with a tab-delimited import/export tool tailored for your data which you can use from the user interface as well as via a command-line tool; i.e., the headers of your Excel file have to match the fields you have defined in the model, ❸. In our experience, most computational biologists greatly appreciate the use of the R interface to load, analyze and re-store data from within the R statistical environment❹ with web services to connect to workflow tools❺. Finally, advanced programmers may want to customize the layout or integrate their own scripts into the user interface, that is, create plug-ins that are seamlessly integrated with the generated software❻. Typical examples here are the integration of R scripts that produce graphical overviews of the data, enabling them to be run by non-technical research colleagues. Alternatively, you can use SOAP, REST and RDF interfaces for integration with workflow tools like Taverna, or for use with commonly used JavaScript frameworks like jQuery to create ‘Web 2.0’ interactive websites. When satisfied with your MOLGENIS system, it can be shared as a simple JAR executable using an embedded web server, or as a WAR file that can be run on public web servers.</p>
</sec>
<sec>
<title>Applications</title>
<p>Since the earliest MOLGENIS application [
<xref ref-type="bibr" rid="B9">9</xref>
], we have successfully evaluated use of the MOLGENIS toolkit to build a wide range of biomedical applications [
<xref ref-type="bibr" rid="B11">11</xref>
-
<xref ref-type="bibr" rid="B15">15</xref>
], ranging from sequencing to proteomics, including:</p>
<p>• XGAP: an eXtensible Genotype And Phenotype platform [
<xref ref-type="bibr" rid="B11">11</xref>
] for systems genetics (GWAS, GWL) to store all kinds of *omics data ranging from genotype to transcript and protein data. XGAP comes with plug-ins to view large data matrices and run processing tools on a cluster. See
<ext-link ext-link-type="uri" xlink:href="http://www.xgap.org">http://www.xgap.org</ext-link>
</p>
<p>• Pheno-OM: to integrate any phenotype data from locus-specific annotations to rich biobank cohort reports with the help of the OntoCAT ontology toolkit to create semantic mappings between related data items [
<xref ref-type="bibr" rid="B23">23</xref>
]. See
<ext-link ext-link-type="uri" xlink:href="http://www.ebi.ac.uk/microarray-srv/pheno">http://www.ebi.ac.uk/microarray-srv/pheno</ext-link>
</p>
<p>• FINDIS: a mutation database for monogenic diseases belonging to the Finnish disease heritage. See
<ext-link ext-link-type="uri" xlink:href="http://www.findis.org/molgenis_findis/">http://www.findis.org/molgenis_findis/</ext-link>
</p>
<p>• HGVBaseG2P: the data management and curation interface complement for HGVbaseG2P, a central database of genotype to phenotype association studies [
<xref ref-type="bibr" rid="B12">12</xref>
]. See
<ext-link ext-link-type="uri" xlink:href="http://www.hgvbaseg2p.org">http://www.hgvbaseg2p.org</ext-link>
</p>
<p>• MAGETAB-OM: a microarray experiment data platform based on the MAGE-TAB data format standard to create a local microarray repository that is compatible with the public ArrayExpress and GEO repositories. See
<ext-link ext-link-type="uri" xlink:href="http://magetab-om.sourceforge.net/">http://magetab-om.sourceforge.net/</ext-link>
</p>
<p>• NordicDB: the database of high-density genome-wide SNP information from 5,000 controls originating from Finnish, Swedish and Danish studies [
<xref ref-type="bibr" rid="B13">13</xref>
]. See
<ext-link ext-link-type="uri" xlink:href="http://www.nordicdb.org">http://www.nordicdb.org</ext-link>
</p>
<p>• DesignGG: a web tool to optimally design such genetical genomics experiments [
<xref ref-type="bibr" rid="B14">14</xref>
]. See
<ext-link ext-link-type="uri" xlink:href="http://gbic.biol.rug.nl/designGG/">http://gbic.biol.rug.nl/designGG/</ext-link>
</p>
<p>More MOLGENIS applications can be found at
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
. Each of these MOLGENIS projects reported major benefits from the short cycle from model to running system to enable quick evaluation (500 lines of model XML replaces 15,000 lines of programming code) and use of the batch loading of data to evaluate how the newly built system works with real data. More often than not, MOLGENIS helped in finding inconsistencies in existing data that would otherwise have gone unnoticed, leading to experimental errors. In our experience, a typical MOLGENIS generator run gives you about 90% of the application that is desired ‘for free’, with the remaining 10% typically filled in using plug-ins that are written by hand. The MOLGENIS toolkit has also been used to extend or replace existing software applications: the ExtractModel tool allows you to generate a MOLGENIS application from an existing database, which can then be run side-by-side with code developed previously, providing the best of both generated and hand-written worlds.</p>
</sec>
<sec>
<title>Richness of features</title>
<p>MOLGENIS provides a richness of features not yet provided by other projects: BioMart [
<xref ref-type="bibr" rid="B10">10</xref>
,
<xref ref-type="bibr" rid="B24">24</xref>
] and InterMine [
<xref ref-type="bibr" rid="B25">25</xref>
] generate powerful query interfaces for existing data but are not suited for bespoke data management; Omixed [
<xref ref-type="bibr" rid="B26">26</xref>
] generates programmatic interfaces onto databases, including a security layer, but lacks user interfaces; PEDRO/Pierre [
<xref ref-type="bibr" rid="B27">27</xref>
] generates data entry and retrieval user interfaces but lacks programmatic interfaces; and general generators such as AndroMDA [
<xref ref-type="bibr" rid="B28">28</xref>
] and Ruby-on-Rails [
<xref ref-type="bibr" rid="B29">29</xref>
] require much more programming and configuration efforts compared to tools specific to the biological domain. Turnkey [
<xref ref-type="bibr" rid="B30">30</xref>
] seems to come close to MOLGENIS, having GUI and SOAP interfaces but lacks auto-generation of R interfaces and file exchange format.</p>
</sec>
</sec>
<sec>
<title>Conclusions</title>
<p>In a recent perspective paper [
<xref ref-type="bibr" rid="B1">1</xref>
] we evaluated the general benefits and pitfalls of model-driven development, such as the ability to develop infrastructure in short cycles to get the application right, ensuring developers and biologists are thinking along the same lines and increasing quality and functionality for all. We further evaluated applying this method to both microarray and genetical genomics experiments [
<xref ref-type="bibr" rid="B9">9</xref>
], [
<xref ref-type="bibr" rid="B11">11</xref>
].</p>
<p>Here we have presented MOLGENIS in detail and reported the results of using this method against a wider range of applications. We conclude that using model-driven methods enables bioinformaticians to build biological software infrastructures faster than before, with the additional benefit of much easier sharing of models, data and components. Much less time is spent on customizing and gluing together individual components. The result is of higher quality because fewer incidental errors creep into the applications as a consequence of the automated procedures; best practices are applied instead of reinvented. And you do not need heavy-weight technology to implement a model-driven generator: simple text-based templates suffice to create biological software generators.</p>
<p>As a next step we want to expand the MOLGENIS toolkit to also generate data processing tools, including user friendly interaction, building on other ‘model-driven bioinformatics’ projects in this area, such as Taverna [
<xref ref-type="bibr" rid="B6">6</xref>
] to model/execute analysis workflows and Galaxy [
<xref ref-type="bibr" rid="B7">7</xref>
] to generate user interfaces for processing tools. We hope that many bioinformaticians will enforce our open source efforts and share their best models, plug-ins and generators at
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
, so that, in time, every biologist may find a MOLGENIS variant that suits his/her needs.</p>
</sec>
<sec>
<title>Availability and requirements</title>
<p>Project name: MOLGENIS</p>
<p>Project homepage:
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
</p>
<p>Operating systems: Windows, Linux, Apple</p>
<p>Programming language: Java JRE 1.5 or higher</p>
<p>Other requirements: MySQL or Postgresql, Tomcat or other J2EE container</p>
<p>License: GNU Lesses General Public License version 3 (GNU LGPLv3)</p>
<p>Any restrictions to use by non-academics: No</p>
</sec>
<sec>
<title>Abbreviations</title>
<p>API: application programming interface; CPNN: collaborative computing project for NMR; CSV: comma separated values; DesignGG: experimental design of genetical genomics software; DRY: principle of don’t repeat yourself; DSL: domain specific language; EBI: European Bioinformatics Institute; FINDIS: finish disease database; GEN2PHEN: EU project to unify human and model organism genetic variation databases; GMOD: generic model organism database project; GUI: graphical user interface; GWAS: genome wide association study; GWL: genome wide linkage analysis; HGVBaseG2P: human genome variation database of genotype-to-phenotype information; HTML: hypertext markup language; IDE: integrated development environment; JAR: Java Software Archive; LGPL: lesser general public license; MAGE-TAB: microarray gene expression tab delimited file format; MOLGENIS: molecular genetics information systems toolkit; NordicDB: Nordic Control Cohort Database with harmonized SNP information from Denmark, Estonia, Finland and Sweden; OBF: Open Bioinformatics Foundation; OntoCAT: ontology common API toolkit; PEAA: patterns for enterprise application architecture; QTL: quantitative trait locus; RDF: resource description format; REST: representative state transfer web services; SNP: single nucleotide polymorphism; SOAP: simple object access protocol; SQL: structured query language; UML: uniform data modeling language; WAR: web application archive file; XML: extensible markup language; XGAP: extensible genotype and phenotype software platform.</p>
</sec>
<sec>
<title>Competing interests</title>
<p>The authors declare that they have no competing interests.</p>
</sec>
<sec>
<title>Authors' contributions</title>
<p>MAS and EOB conceived the method and designed and implemented the first MOLGENIS generator suite. MAS, MD, KJV, TER, AK, JL, DA, GB, GAT, JM, and TA participated in the development of the MOLGENIS toolkit and/or have been developing applications using MOLGENIS as a platform. RCJ, HP, GAT, and AJB have been feeding requirements to steer future development. MAS drafted the manuscript. All authors read and approved the final manuscript.</p>
</sec>
</body>
<back>
<sec>
<title>Acknowledgements</title>
<p>The authors thank Jackie Senior for editing this manuscript and PANACEA (funded by the European Commission FP7 contract 222936), NWO (Rubicon Grant 825.09.008), the Netherlands Bioinformatics Center (NBIC), BBMRI-NL (funded by the Netherlands Organization for Scientific Research, NWO), CASIMIR (funded by the European Commission under contract number LSHG-CT-2006-037811), GEN2PHEN (funded by the European Commission FP7-HEALTH contract 200754) and the EMBL for financial support.</p>
<p>This article has been published as part of
<italic>BMC Bioinformatics</italic>
Volume 11 Supplement 12, 2010: Proceedings of the 11th Annual Bioinformatics Open Source Conference (BOSC) 2010. The full contents of the supplement are available online at
<ext-link ext-link-type="uri" xlink:href="http://www.biomedcentral.com/1471-2105/11?issue=S12">http://www.biomedcentral.com/1471-2105/11?issue=S12</ext-link>
.</p>
</sec>
<ref-list>
<ref id="B1">
<mixed-citation publication-type="journal">
<name>
<surname>Swertz</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Jansen</surname>
<given-names>RC</given-names>
</name>
<article-title>Beyond standardization: dynamic software infrastructures for systems biology</article-title>
<source>Nat Rev Genet</source>
<year>2007</year>
<volume>8</volume>
<fpage>235</fpage>
<lpage>243</lpage>
<pub-id pub-id-type="doi">10.1038/nrg2048</pub-id>
<pub-id pub-id-type="pmid">17297480</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<name>
<surname>Stein</surname>
<given-names>LD</given-names>
</name>
<article-title>Towards a cyberinfrastructure for the biological sciences: progress, visions and challenges</article-title>
<source>Nat Rev Genet</source>
<year>2008</year>
<volume>9</volume>
<fpage>678</fpage>
<lpage>688</lpage>
<pub-id pub-id-type="doi">10.1038/nrg2414</pub-id>
<pub-id pub-id-type="pmid">18714290</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<name>
<surname>Thorisson</surname>
<given-names>GA</given-names>
</name>
<name>
<surname>Muilu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Brookes</surname>
<given-names>AJ</given-names>
</name>
<article-title>Genotype-phenotype databases: challenges and solutions for the post-genomic era</article-title>
<source>Nat Rev Genet</source>
<year>2009</year>
<volume>10</volume>
<fpage>9</fpage>
<lpage>18</lpage>
<pub-id pub-id-type="doi">10.1038/nrg2483</pub-id>
<pub-id pub-id-type="pmid">19065136</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="other">
<article-title>Generic Model Organism Database (GMOD)</article-title>
<ext-link ext-link-type="uri" xlink:href="http://gmod.org">http://gmod.org</ext-link>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="other">
<article-title>Open Bioinformatics Foundation (O|B|F)</article-title>
<ext-link ext-link-type="uri" xlink:href="http://www.open-bio.org">http://www.open-bio.org</ext-link>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<name>
<surname>Oinn</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Addis</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Ferris</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Marvin</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Senger</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Greenwood</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Carver</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Glover</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Pocock</surname>
<given-names>MR</given-names>
</name>
<name>
<surname>Wipat</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>P</given-names>
</name>
<article-title>Taverna: a tool for the composition and enactment of bioinformatics workflows</article-title>
<source>Bioinformatics</source>
<year>2004</year>
<volume>20</volume>
<fpage>3045</fpage>
<lpage>3054</lpage>
<pub-id pub-id-type="doi">10.1093/bioinformatics/bth361</pub-id>
<pub-id pub-id-type="pmid">15201187</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<name>
<surname>Goecks</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Nekrutenko</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Taylor</surname>
<given-names>J</given-names>
</name>
<article-title>Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences</article-title>
<source>Genome Biol</source>
<year>2010</year>
<volume>11</volume>
<fpage>R86</fpage>
<pub-id pub-id-type="pmid">20738864</pub-id>
<pub-id pub-id-type="doi">10.1186/gb-2010-11-8-r86</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<name>
<surname>Fogh</surname>
<given-names>RH</given-names>
</name>
<name>
<surname>Boucher</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Vranken</surname>
<given-names>WF</given-names>
</name>
<name>
<surname>Pajon</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Stevens</surname>
<given-names>TJ</given-names>
</name>
<name>
<surname>Bhat</surname>
<given-names>TN</given-names>
</name>
<name>
<surname>Westbrook</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Ionides</surname>
<given-names>JMC</given-names>
</name>
<name>
<surname>Laue</surname>
<given-names>ED</given-names>
</name>
<article-title>A framework for scientific data modeling and automated software development</article-title>
<source>Bioinformatics</source>
<year>2005</year>
<volume>21</volume>
<fpage>1678</fpage>
<lpage>1684</lpage>
<pub-id pub-id-type="doi">10.1093/bioinformatics/bti234</pub-id>
<pub-id pub-id-type="pmid">15613391</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<name>
<surname>Swertz</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>de Brock</surname>
<given-names>EO</given-names>
</name>
<name>
<surname>van Hijum</surname>
<given-names>SAFT</given-names>
</name>
<name>
<surname>de Jong</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Buist</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Baerends</surname>
<given-names>RJS</given-names>
</name>
<name>
<surname>Kok</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Kuipers</surname>
<given-names>OP</given-names>
</name>
<name>
<surname>Jansen</surname>
<given-names>RC</given-names>
</name>
<article-title>Molecular Genetics Information System (MOLGENIS): alternatives in developing local experimental genomics databases</article-title>
<source>Bioinformatics</source>
<year>2004</year>
<volume>20</volume>
<fpage>2075</fpage>
<lpage>2083</lpage>
<pub-id pub-id-type="doi">10.1093/bioinformatics/bth206</pub-id>
<pub-id pub-id-type="pmid">15059831</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="other">
<article-title>MOLGENIS: a open source software toolkit to rapidly generate bespoke biosoftware web applications</article-title>
<ext-link ext-link-type="uri" xlink:href="http://www.molgenis.org">http://www.molgenis.org</ext-link>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<name>
<surname>Swertz</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Velde</surname>
<given-names>KJ</given-names>
</name>
<name>
<surname>Tesson</surname>
<given-names>BM</given-names>
</name>
<name>
<surname>Scheltema</surname>
<given-names>RA</given-names>
</name>
<name>
<surname>Arends</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Vera</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Alberts</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Dijkstra</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Schofield</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Schughart</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Hancock</surname>
<given-names>JM</given-names>
</name>
<name>
<surname>Smedley</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Wolstencroft</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Goble</surname>
<given-names>C</given-names>
</name>
<name>
<surname>de Brock</surname>
<given-names>EO</given-names>
</name>
<name>
<surname>Jones</surname>
<given-names>AR</given-names>
</name>
<name>
<surname>Parkinson</surname>
<given-names>HE</given-names>
</name>
<name>
<surname>Jansen</surname>
<given-names>RC</given-names>
</name>
<article-title>XGAP: a uniform and extensible data model and software platform for genotype and phenotype experiments</article-title>
<source>Genome Biol</source>
<year>2010</year>
<volume>11</volume>
<fpage>R27</fpage>
<pub-id pub-id-type="pmid">20214801</pub-id>
<pub-id pub-id-type="doi">10.1186/1465-6906-11-S1-P27</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<name>
<surname>Thorisson</surname>
<given-names>GA</given-names>
</name>
<name>
<surname>Lancaster</surname>
<given-names>O</given-names>
</name>
<name>
<surname>Free</surname>
<given-names>RC</given-names>
</name>
<name>
<surname>Hastings</surname>
<given-names>RK</given-names>
</name>
<name>
<surname>Sarmah</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Dash</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Brahmachari</surname>
<given-names>SK</given-names>
</name>
<name>
<surname>Brookes</surname>
<given-names>AJ</given-names>
</name>
<article-title>HGVbaseG2P: a central genetic association database</article-title>
<source>Nucleic Acids Res</source>
<year>2009</year>
<volume>37</volume>
<fpage>D797</fpage>
<lpage>802</lpage>
<pub-id pub-id-type="pmid">18948288</pub-id>
<pub-id pub-id-type="doi">10.1093/nar/gkn748</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="other">
<name>
<surname>Leu</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Humphreys</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Surakka</surname>
<given-names>I</given-names>
</name>
<name>
<surname>Rehnberg</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Muilu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Rosenstrom</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Almgren</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Jaaskelainen</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Lifton</surname>
<given-names>RP</given-names>
</name>
<name>
<surname>Kyvik</surname>
<given-names>KO</given-names>
</name>
<name>
<surname>Kaprio</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Pedersen</surname>
<given-names>NL</given-names>
</name>
<name>
<surname>Palotie</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Hall</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Gronberg</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Groop</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Peltonen</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Palmgren</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Ripatti</surname>
<given-names>S</given-names>
</name>
<article-title>NordicDB: a Nordic pool and portal for genome-wide control data</article-title>
<source>Eur J Hum Genet</source>
<year>2010</year>
<pub-id pub-id-type="pmid">20664631</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<name>
<surname>Li</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Swertz</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Vera</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Breitling</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Jansen</surname>
<given-names>RC</given-names>
</name>
<article-title>designGG: an R-package and web tool for the optimal design of genetical genomics experiments</article-title>
<source>BMC Bioinformatics</source>
<year>2009</year>
<volume>10</volume>
<fpage>188</fpage>
<pub-id pub-id-type="pmid">19538731</pub-id>
<pub-id pub-id-type="doi">10.1186/1471-2105-10-188</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<name>
<surname>Smedley</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Swertz</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Wolstencroft</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Proctor</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Zouberakis</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Bard</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Hancock</surname>
<given-names>JM</given-names>
</name>
<name>
<surname>Schofield</surname>
<given-names>P</given-names>
</name>
<article-title>Solutions for data integration in functional genomics: a critical assessment and case study</article-title>
<source>Brief Bioinform</source>
<year>2008</year>
<volume>9</volume>
<fpage>532</fpage>
<lpage>544</lpage>
<pub-id pub-id-type="doi">10.1093/bib/bbn040</pub-id>
<pub-id pub-id-type="pmid">19112082</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="other">
<name>
<surname>Neighbors</surname>
<given-names>J</given-names>
</name>
<article-title>Software construction using components</article-title>
<source>Irvine: PhD Thesis, University of California</source>
<year>1981</year>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="book">
<name>
<surname>Hunt</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Thomas</surname>
<given-names>D</given-names>
</name>
<source>The pragmatic programmer: from Journeyman to Master</source>
<year>1999</year>
<publisher-name>Addison-Wesley</publisher-name>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<name>
<surname>Bentley</surname>
<given-names>J</given-names>
</name>
<article-title>Little languages</article-title>
<source>Communications of the ACM</source>
<year>1986</year>
<volume>29</volume>
<fpage>711</fpage>
<lpage>721</lpage>
<pub-id pub-id-type="doi">10.1145/6424.315691</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<name>
<surname>van Deursen</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Klint</surname>
<given-names>P</given-names>
</name>
<article-title>Little languages, little maintenance?</article-title>
<source>Journal of software maintenance</source>
<year>1998</year>
<volume>10</volume>
<fpage>17</fpage>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="book">
<name>
<surname>Greenfield</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Short</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Cook</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Kent</surname>
<given-names>S</given-names>
</name>
<source>Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools</source>
<year>2004</year>
<publisher-name>John Wiley & Sons</publisher-name>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="book">
<name>
<surname>Brooks</surname>
<given-names>F</given-names>
</name>
<source>The Mythical Man Month: Essays on Software Engineering, 20th anniversary edition</source>
<year>1995</year>
<publisher-name>Addison-Wesley</publisher-name>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="book">
<name>
<surname>Fowler</surname>
<given-names>M</given-names>
</name>
<source>Patterns of Enterprise Application Architecture</source>
<year>2002</year>
<publisher-name>Addison-Wesley</publisher-name>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="other">
<article-title>OntoCAT: ontology common API (application programming interface) toolkit</article-title>
<ext-link ext-link-type="uri" xlink:href="http://ontocat.sourceforge.net">http://ontocat.sourceforge.net</ext-link>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<name>
<surname>Smedley</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Haider</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Ballester</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Holland</surname>
<given-names>R</given-names>
</name>
<name>
<surname>London</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Thorisson</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Kasprzyk</surname>
<given-names>A</given-names>
</name>
<article-title>BioMart--biological queries made easy</article-title>
<source>BMC Genomics</source>
<year>2009</year>
<volume>10</volume>
<fpage>22</fpage>
<pub-id pub-id-type="pmid">19144180</pub-id>
<pub-id pub-id-type="doi">10.1186/1471-2164-10-22</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<name>
<surname>Lyne</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Smith</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Rutherford</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Wakeling</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Varley</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Guillier</surname>
<given-names>F</given-names>
</name>
<name>
<surname>Janssens</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>W</given-names>
</name>
<name>
<surname>McLaren</surname>
<given-names>P</given-names>
</name>
<name>
<surname>North</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Rana</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Sullivan</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Watkins</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Woodbridge</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Lilley</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Russell</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Ashburner</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Mizuguchi</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Micklem</surname>
<given-names>G</given-names>
</name>
<article-title>FlyMine: an integrated database for Drosophila and Anopheles genomics</article-title>
<source>Genome Biol</source>
<year>2007</year>
<volume>8</volume>
<fpage>R129</fpage>
<pub-id pub-id-type="pmid">17615057</pub-id>
<pub-id pub-id-type="doi">10.1186/gb-2007-8-7-r129</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="other">
<article-title>Omixed: customisable storage system for scientific data</article-title>
<ext-link ext-link-type="uri" xlink:href="http://www.omixed.org/">http://www.omixed.org/</ext-link>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<name>
<surname>Jameson</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Garwood</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Garwood</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Booth</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Alper</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Oliver</surname>
<given-names>SG</given-names>
</name>
<name>
<surname>Paton</surname>
<given-names>NW</given-names>
</name>
<article-title>Data capture in bioinformatics: requirements and experiences with Pedro</article-title>
<source>BMC Bioinformatics</source>
<year>2008</year>
<volume>9</volume>
<fpage>183</fpage>
<pub-id pub-id-type="pmid">18402673</pub-id>
<pub-id pub-id-type="doi">10.1186/1471-2105-9-183</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="other">
<article-title>AndroMDA: extensible generator framework that adheres to the Model Driven Architecture (MDA) paradigm</article-title>
<ext-link ext-link-type="uri" xlink:href="http://www.andromda.org/">http://www.andromda.org/</ext-link>
</mixed-citation>
</ref>
<ref id="B29">
<mixed-citation publication-type="other">
<article-title>Ruby on Rails: open source web framework in the Ruby language</article-title>
<ext-link ext-link-type="uri" xlink:href="http://www.rubyonrails.org">http://www.rubyonrails.org</ext-link>
</mixed-citation>
</ref>
<ref id="B30">
<mixed-citation publication-type="journal">
<name>
<surname>O'Connor</surname>
<given-names>BD</given-names>
</name>
<name>
<surname>Day</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Cain</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Arnaiz</surname>
<given-names>O</given-names>
</name>
<name>
<surname>Sperling</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Stein</surname>
<given-names>LD</given-names>
</name>
<article-title>GMODWeb: a web framework for the Generic Model Organism Database</article-title>
<source>Genome Biol</source>
<year>2008</year>
<volume>9</volume>
<fpage>R102</fpage>
<pub-id pub-id-type="pmid">18570664</pub-id>
<pub-id pub-id-type="doi">10.1186/gb-2008-9-6-r102</pub-id>
</mixed-citation>
</ref>
</ref-list>
</back>
</pmc>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/CyberinfraV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000483 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 000483 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    CyberinfraV1
   |flux=    Pmc
   |étape=   Corpus
   |type=    RBID
   |clé=     PMC:3040526
   |texte=   The MOLGENIS toolkit: rapid prototyping of biosoftware at the push of a button
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/RBID.i   -Sk "pubmed:21210979" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd   \
       | NlmPubMed2Wicri -a CyberinfraV1 

Wicri

This area was generated with Dilib version V0.6.25.
Data generation: Thu Oct 27 09:30:58 2016. Site generation: Sun Mar 10 23:08:40 2024