 Software
 Open Access
 Published:
sybil – Efficient constraintbased modelling in R
BMC Systems Biology volume 7, Article number: 125 (2013)
Abstract
Background
Constraintbased analyses of metabolic networks are widely used to simulate the properties of genomescale metabolic networks. Publicly available implementations tend to be slow, impeding large scale analyses such as the genomewide computation of pairwise gene knockouts, or the automated search for model improvements. Furthermore, available implementations cannot easily be extended or adapted by users.
Results
Here, we present sybil, an open source software library for constraintbased analyses in R; R is a free, platformindependent environment for statistical computing and graphics that is widely used in bioinformatics. Among other functions, sybil currently provides efficient methods for fluxbalance analysis (FBA), MOMA, and ROOM that are about ten times faster than previous implementations when calculating the effect of wholegenome single gene deletions in silico on a complete E. coli metabolic model.
Conclusions
Due to the objectoriented architecture of sybil, users can easily build analysis pipelines in R or even implement their own constraintbased algorithms. Based on its highly efficient communication with different mathematical optimisation programs, sybil facilitates the exploration of highdimensional optimisation problems on small time scales. Sybil and all its dependencies are open source. Sybil and its documentation are available for download from the comprehensive R archive network (CRAN).
Background
Constraintbased analyses have become a widely used tool for the study of genomescale biochemical reaction networks[1]. The most prominent of these methods is fluxbalance analysis (FBA). Here, metabolite fluxes through biochemical reactions are constrained by the conservation of mass, by thermodynamics (reaction directionality), by the assumption of a steady state for internal metabolite concentrations, and by the availability of nutrients. These constraints are used as boundary conditions for a linear optimisation problem, in which a biologically motivated objective function — often the yield of biomass production — is maximised. The result is a distribution of metabolic fluxes across the network, comprising a metabolic phenotype (or functional state) of the network[2–4].
Apart from such constraintbased optimisation methods, several other tools that use different philosophies for metabolic modelling are available. One example is the computation of elementary flux modes to represent the feasible solution space of a metabolic network[5]. Another approach is structural kinetic modelling, i.e., the description of dynamical properties of metabolic networks in combination with experimental data[6].
Several tools for constraintbased optimisation analyses are currently available (reviewed in[7–9]). The most widely used software is the COBRA Toolbox[10] for MATLAB. While these tools provide implementations of FBA and other constraintbased methods, they are relatively slow when applied to large series of simulations (e. g., when calculating the biomass yield of all doublegene knockouts in a unicellular organism). Further, available implementations mostly require licenses for MATLAB, and are not flexible enough to allow users to easily design their own largescale analyses. For metabolic networks for which elementary modes[11] or extreme pathways[12, 13] can be calculated, such higherlevel descriptions of the solution space may provide fast alternatives to the constrainedbased algorithms implemented in sybil.
The R computer language has become the standard programming environment in many scientific fields that depend on numerical data analysis, in particular in the analysis of biological highthroughput data. However, R currently offers only very limited options for constraintbased analyses. The R package BiGGR[14] provides access to the BiGG database[15] and can perform fluxbalance analysis, visualising the results as graphs. The R package abcdeFBA[16] provides fluxbalance analysis and phenotypic phase plane analysis. However, both packages are limited in scope and lack flexibility.
With sybil, which shares some functionality with the COBRA Toolbox and the R packages described above, we aim to establish R as a major platform for constraintbased analyses of biological networks. Besides offering powerful analysis tools in a versatile and freely available environment, sybil aims to supersede previous implementations in terms of calculation speed, flexibility and extensibility.
Implementation
Sybil is implemented in the R programming language[17] as an object oriented library (Additional file1). The design of some of its functions was inspired by the COBRA Toolbox[10]. Once the sybil library is loaded into the R environment, the user can access a range of functions to read and manipulate metabolic network models, to perform different constraintbased calculations, and to visualise the results.
Sybil is programmed for both speed and memory efficiency; in our experience, about 1 GB of RAM should be sufficient for all types of analyses, even when performed on the largest complete single cell type metabolic models currently available.
Sybil provides a set of "highlevel" functions to access frequently used complex algorithms with a single function call (e. g., fluxVar() for flux variability calculations[18, 19], or geneDeletion() for prediction of gene deletion effects). Another way to use sybil is to directly use "lowlevel" functions (e. g., optimizeProb() or any of the APIfunctions from the linked optimiser software). Methods implemented in class sysBiolAlg provide a particularly comfortable way to execute constraintbased analyses involving optimisation steps (FBA and related algorithms): here, the class takes care of the optimisation software without user interference. Sybil’s architecture provides the user with a highly flexible and adjustable framework. Sybil is equally suited for offtheshelf constraintbased analyses, for building complex analysis pipelines, and for the development of new constraintbased analysis methods.
The implementation of sybil follows the object oriented programming paradigm. Figure1 shows the connection between the important classes implemented in sybil. Class modelorg contains sybil’s representation of a metabolic network.
A number of functions are available to manipulate metabolic network models, such as addReact() to add new reactions to the model, changeGPR() to alter the genereaction association rules, and changeUptake() and editEnvir() to change the modelled environments. Instances of class sysBiolAlg contain a pointer to the problem object, comprised of metabolic model, constraints, and analysis algorithm to be used. For applications that involve repetitive analyses, such as flux variability or genomewide knockout studies, the problem object used by the optimisation software is prepared only once as an instance of class sysBiolAlg. Modifications to the problem required in the course of the analysis are then applied at the level of class sysBiolAlg, so that the problem object must not be recreated for every optimisation. The results returned by the mathematical programming software are stored in instances of class optsol.
Results and discussion
Key features
Sybil provides several functions to perform constraintbased analyses of metabolic networks. Genetic perturbations can be simulated through FBA[2, 3], minimisation of metabolic adjustment (MOMA)[20], a linear version of the MOMA algorithm similar to[21], or regulatory on/off minimisation (ROOM)[22]. Additionally, sybil can perform flux variability (FVA)[18, 19], robustness[23], and phenotypic phase plane (PhPP)[24, 25] analyses (see Additional file2 for a comparison with other constraintbased analysis tools). The implementations are optimised for speed when running a large number of similar optimisations on the same model (e. g. genomewide gene deletion simulations).
Due to sybil’s object oriented implementation, users can easily add new functions. Class sysBiolAlg can be extended to implement additional algorithms, which are then available to highlevel functions in sybil without further user interaction. Like other toolboxes for constraintbased analyses, sybil communicates with external mathematical optimisation software (e. g., GLPK) to generate and solve various types of optimisation problems. This process is handled by class optObj, which provides a large set of methods to generate, modify, and solve mathematical programming problems and to access the results; the user does not need any deeper knowledge about the differences of the various solvers that can be used by sybil. However, if necessary, all parameters available within the solver software can be accessed directly in sybil.
In the future, we plan to further extend sybil, e. g. by adding methods that incorporate gene expression data into an FBA approach[26–29]. Two such addition are already implemented in the separate R packages sybilDynFBA[30], which uses dynamic FBA simulations to predict concentration changes of external metabolites as described in[31], and sybilEFBA[32] using gene expression data to improve FBA predictions. Another available addon to sybil is the R package RSeed[33], which analyses network topology to identify metabolites that must be acquired from the environment[34]. The R package sybilSBML (Additional file3) adds SBML support to sybil.
Calculation speed
The calculation speed of the optimisations depends on the mathematical optimisation software used. Typically, for large mathematical problems, IBM ILOG CPLEX is slightly faster than the two freely available solvers GLPK and COINOR Clp (see below). However, major differences in the running times of different constraintbased analysis tools stem mostly from the overheads produced by the communication between the main program and the solver. This overhead is minimised by sybil through purposebuilt fast interfaces to the CAPI of each package.
Most of the implemented algorithms require the generation of an optimisation problem based on the model, the constraints, and the desired algorithm (such as FBA or linear MOMA). During batch calculations, only small changes to the optimisation problem are required, e. g., changes of variable bounds in an in silico gene deletion experiment, or alteration of the objective function during flux variability analysis. To speed up iterations over many such small changes, the optimisation problem is formulated only once; all changes are then applied directly to the preformed optimisation problem of the mathematical optimisation software.
Figures2 and3 compare the running times of different implementations of typical algorithms used in constraintbased modelling; they also illustrate the impact of different mathematical optimisation programs on calculation speed. For all calculations, we used a complete model of E. coli metabolism, containing 2382 reactions and 1261 independent genes[35].
Figure2 shows the performance of different implementations of genomewide flux variability analysis (FVA)[18, 19] using GLPK as the mathematical optimisation program. For FVA, an optimal growth rate was estimated by FBA. Then, for all reactions in the model, we computed the minimal and maximal flux at this growth rate. The software tools fastFVA[36], COBRA Toolbox[10], and CellNetAnalyzer[37] implement FVA for the MATLAB environment; SBRT[38] and OptFlux[39] are Javabased implementations; FASIMU[40] is implemented in bash and awk; COBRApy[41] is a Python implementation; and abcdeFBA and sybil provide R implementations. All these software packages perform FVA with a single function call.
As can be seen in Figure2, fastFVA is the fastest implementation of the flux variability algorithm. The main algorithm is fully implemented in C++ and can be accessed from within MATLAB as an extension to the COBRA Toolbox. The C++ implementation results in a very fast running time, but makes the program inflexible; only flux variability analysis can be performed, and changes to the solver software parameters require modification of the source code. Sybil, the second fastest implementation, is — compared to other implementations — only slightly slower than fastFVA. Sybil’s optimisations make use of wrapper functions (in this case through the R package glpkAPI[42]), allowing access to the CAPI of the mathematical programming software from within R. This combines very short running times with flexible communication with the solver software. SBRT uses its own Java interface to GLPK (and IBM ILOG CPLEX), which is in function similar to the wrapper software used by sybil. In COBRApy, a separate Python module provides a connection to GLPK. The MATLAB packages COBRA Toolbox and CellNetAnalyzer make use of glpkmex[43], which provides highlevel function calls to build and solve mathematical programming problems in one step. This architecture results in longer running times, as the problem needs to be rebuilt for every step in flux variability analysis, even if only minor adjustments to the model are required. The R package abcdeFBA uses the R package Rglpk[44], which works similar to glpkmex. OptFlux and FASIMU use the command line interfaces of GLPK and IBM ILOG CPLEX (FASIMU) or COINOR Clp (OptFlux) and generate the necessary input files for every optimisation. FASIMU computes the optimisations one by one, resulting in the longest running time, while OptFlux can run — to some extent — optimisations simultaneously.
Figure3 shows the performance of genomewide in silico gene deletion experiments with the same complete model of E. coli metabolism used for the flux variability analyses. Regardless of the details of the experiment (gene vs. flux deletions; single vs. doublegene deletions; FBA vs. linear MOMA), sybil clearly outperforms other implementations in terms of computation speed; this is achieved through the efficient handling of optimisation problems that repeatedly need to be reoptimised, but do not change very much from one optimisation to the other. Sybil was successfully used as the constraintbased core of a machine learning method to reconcile model predictions with genomescale experimental doublegene knockout data[45]. In this study, we demonstrated the feasibility of automated metabolic model refinement by correcting misannotations in NAD biosynthesis in the metabolic model of yeast (iMM904,[46]).
Another fast tool is F2C2[47], a MATLAB tool for flux coupling analysis which computes all blocked and coupled reactions of the E. coli model in less than five minutes on our test system.
Examples
Reading model files
Sybil can read textbased representations of metabolic networks written in the 'Systems Biology Markup Language’ (SBML)[48], which is an extension of XML. A large range of models in this defacto standard format is available from the web pages of the Palsson group at UCSD[49]. Each of these models is the outcome of an elaborate modelbuilding process, which starts from database and literature searches and culminates in an iterative comparison of computational predictions and lab experiments. Details on how to reconstruct whole genome metabolic network models suitable for constraint based analyses are reviewed in[50, 51]. A reconstruction of the central energy metabolism of E. coli[23] is included as an example dataset (Additional file4). In order to read SBML files, the package sybilSBML (Additional file3) from CRAN, which is itself powered by LibSBML[52], is required.
Sybil can also read models written in a columnbased format, such as exported reaction lists of the BiGG database[15]. Example files for the central energy metabolism of E. coli are also included in this format (Additional file4). These can be read in using the command readTSVmod() (assuming Additional file4 is unpacked in the working directory of R):
The variable Ec_core now contains an in silico representation of the central energy metabolism of E. coli which can be used for further analysis. The definition of the columnbased format is described in the sybil package vignette (Additional file5).
Constraintbased analysis of metabolic networks
Genetic perturbations of metabolic networks can be simulated using the function geneDeletion(). The command
performs a single gene deletion analysis on the example dataset, using fluxbalance analysis to determine reductions in metabolite production, and employing the mathematical optimisation software GLPK for the optimisations. The parameter ’combinations’ indicates the number of genes to knockout simultaneously in each optimisation. Setting this parameter to 2 results in the simulation of all possible pairwise gene knockouts, setting it to 3 will compute all triplegene knockouts. Due to sybil’s streamlined communication with the solver software, which only transmits changes to the model rather than the full model for each deletion, this function helps to deal with the combinatorial explosion inherent in systematic multiplegene knockout experiments. The parameter ’algorithm’ indicates the algorithm used to determine the functional state of the metabolic network after gene deletion. It can be set to

"fba": for fluxbalance analysis (this is the default value) as described in[2, 3],

"mtf": for fluxbalance analysis and additionally selecting the flux distribution resulting in the smallest absolute total flux,

"moma": for minimisation of metabolic adjustment as described in[20],

"lmoma": for a linear version of the MOMA algorithm similar to the version described in[21], or

"room": for regulatory on/off minimisation as described in[22].
The parameter 'solver’ selects the mathematical optimisation software used by the algorithms. It can be set to

"cplexAPI": for IBM ILOG CPLEX[54], via R package cplexAPI[55],

"lpSolveAPI": for lp_solve[58], via R package lpSolveAPI[59], or

"sybilGUROBI": for Gurobi[60], via R package sybilGUROBI.
All R packages are available on CRAN[61], with the exception of sybilGUROBI, which is available on request. The sybil package vignette (Additional file5) contains further examples of constraintbased metabolic network analyses, such as flux variability or robustness analyses, as well as graphical representation of results and instructions for the interaction with mathematical optimisation programs.
Conclusions
Sybil is designed to address large scale questions in reasonable time frames, making it possible to generate and run in silico experiments that result in highdimensional optimisation problems. New algorithms can be easily implemented using the sybil framework and can be distributed as addon packages to the systems biology community.
Availability and requirements
Project name: sybil
Project home page: http://CRAN.Rproject.org/package=sybil
Operating system(s): Platform independent
Programming language: R
Other requirements: A mathematical optimisation software (one of GLPK, IBM ILOG CPLEX, COINOR Clp, or lpSolve)
License: GNU GPL
Abbreviations
 FBA:

Fluxbalance analysis
 FVA:

Flux variability analysis
 MOMA:

Minimisation of metabolic adjustment
 ROOM:

Regulatory on/off minimisation
 SBML:

Systems biology markup language.
References
 1.
Kauffman KJ, Prakash P, Edwards JS: Advances in flux balance analysis. Curr Opin Biotechnol. 2003, 14 (5): 491496. 10.1016/j.copbio.2003.08.001.
 2.
Edwards JS, Covert M, Palsson BØ: Metabolic modelling of microbes: the fluxbalance approach. Environ Microbiol. 2002, 4 (3): 133140. 10.1046/j.14622920.2002.00282.x.
 3.
Orth JD, Thiele I, Palsson BØ: What is flux balance analysis?. Nat Biotechnol. 2010, 28 (3): 245248. 10.1038/nbt.1614.
 4.
Schuster S, Pfeiffer T, Fell DA: Is maximization of molar yield in metabolic networks favoured by evolution?. J Theor Biol. 2008, 252 (3): 497504. 10.1016/j.jtbi.2007.12.008.
 5.
Terzer M, Stelling J: Largescale computation of elementary flux modes with bit pattern trees. Bioinformatics. 2008, 24 (19): 22292235. 10.1093/bioinformatics/btn401.
 6.
Girbig D, Selbig J, Grimbs S: A MATLAB toolbox for structural kinetic modeling. Bioinformatics. 2012, 28 (19): 25462547. 10.1093/bioinformatics/bts473.
 7.
Raman K, Chandra N: Flux balance analysis of biological systems: applications and challenges. Brief Bioinform. 2009, 10 (4): 435449. 10.1093/bib/bbp011.
 8.
Dandekar T, Fieselmann A, Majeed S, Ahmed Z: Software applications toward quantitative metabolic flux analysis and modeling. Brief Bioinform. 2012, doi:10.1093/bib/bbs065
 9.
Lakshmanan M, Koh G, Chung BKS, Lee DY: Software applications for flux balance analysis. Brief Bioinform. 2012, doi:10.1093/bib/bbs069
 10.
Schellenberger J, Que R, Fleming RMT, Thiele I, Orth JD, Feist AM, Zielinski DC, Bordbar A, Lewis NE, Rahmanian S, Kang J, Hyduke DR, Palsson BØ: Quantitative prediction of cellular metabolism with constraintbased models: the COBRA Toolbox v2.0. Nat Protoc. 2011, 6 (9): 12901307. 10.1038/nprot.2011.308.
 11.
Schuster S, Fell DA, Dandekar T: A general definition of metabolic pathways useful for systematic organization and analysis of complex metabolic networks. Nat Biotechnol. 2000, 18 (3): 326332. 10.1038/73786.
 12.
Papin JA, Price ND, Palsson BØ: Extreme pathway lengths and reaction participation in genomescale metabolic networks. Genome Res. 2002, 12 (12): 18891900. 10.1101/gr.327702.
 13.
Wiback SJ, Palsson BØ: Extreme pathway analysis of human red blood cell metabolism. Biophys J. 2002, 83 (2): 808818. 10.1016/S00063495(02)752107.
 14.
Gavai AK: BiGGR. [http://CRAN.Rproject.org/package=BiGGR],
 15.
Schellenberger J, Park JO, Conrad TM, Palsson BØ: BiGG: a Biochemical Genetic and Genomic knowledgebase of large scale metabolic reconstructions. BMC Bioinformatics. 2010, 11: 21310.1186/1471210511213.
 16.
Gangadharan A, Rohatgi N: abcdeFBA. [http://CRAN.Rproject.org/package=abcdeFBA],
 17.
R Development Core Team: R: A Language and Environment for Statistical Computing. 2012, Vienna: R Foundation for Statistical Computing, [http://www.Rproject.org]. [ISBN 3900051070],
 18.
Mahadevan R, Schilling CH: The effects of alternate optimal solutions in constraintbased genomescale metabolic models. Metab Eng. 2003, 5 (4): 264276. 10.1016/j.ymben.2003.09.002.
 19.
Reed JL, Palsson BØ: Genomescale in silico models of E. coli have multiple equivalent phenotypic states: assessment of correlated reaction subsets that comprise network states. Genome Res. 2004, 14 (9): 17971805. 10.1101/gr.2546004.
 20.
Segrè D, Vitkup D, Church GM: Analysis of optimality in natural and perturbed metabolic networks. Proc Natl Acad Sci U S A. 2002, 99 (23): 1511215117. 10.1073/pnas.232349399.
 21.
Becker SA, Feist AM, Mo ML, Hannum G, Palsson BØ, Herrgård MJ: Quantitative prediction of cellular metabolism with constraintbased models: the COBRA Toolbox. Nat Protoc. 2007, 2 (3): 727738. 10.1038/nprot.2007.99.
 22.
Shlomi T, Berkman O, Ruppin E: Regulatory on/off minimization of metabolic flux changes after genetic perturbations. Proc Natl Acad Sci U S A. 2005, 102 (21): 76957700. 10.1073/pnas.0406346102.
 23.
Palsson BØ: Systems Biology: Properties of Recontructed Networks. 2006, Cambridge: Cambridge University Press
 24.
Edwards JS, Ramakrishna R, Palsson BØ: Characterizing the metabolic phenotype: a phenotype phase plane analysis. Biotechnol Bioeng. 2002, 77: 2736. 10.1002/bit.10047.
 25.
Price ND, Reed JL, Palsson BØ: Genomescale models of microbial cells: evaluating the consequences of constraints. Nat Rev Microbiol. 2004, 2 (11): 886897. 10.1038/nrmicro1023.
 26.
Akesson M, Förster J, Nielsen J: Integration of gene expression data into genomescale metabolic models. Metab Eng. 2004, 6 (4): 285293. 10.1016/j.ymben.2003.12.002.
 27.
Colijn C, Brandes A, Zucker J, Lun DS, Weiner B, Farhat MR, Cheng TY, Moody DB, Murray M, Galagan JE: Interpreting expression data with metabolic flux models: predicting Mycobacterium tuberculosis mycolic acid production. PLoS Comput Biol. 2009, 5 (8): e100048910.1371/journal.pcbi.1000489.
 28.
van Berlo RJP, de Ridder D, Daran JM, DaranLapujade PAS, Teusink B, Reinders MJT: Predicting metabolic fluxes using gene expression differences as constraints. IEEE/ACM Trans Comput Biol Bioinform. 2011, 8: 206216.
 29.
Covert MW, Schilling CH, Palsson BØ: Regulation of gene expression in flux balance models of metabolism. J Theor Biol. 2001, 213: 7388. 10.1006/jtbi.2001.2405.
 30.
Amer Desouki A: sybilDynFBA. [http://CRAN.Rproject.org/package=sybilDynFBA],
 31.
Varma A, Palsson BØ: Stoichiometric flux balance models quantitatively predict growth and metabolic byproduct secretion in wildtype Escherichia coli W3110. Appl Environ Microbiol. 1994, 60 (10): 37243731.
 32.
Amer Desouki A: sybilEFBA. [http://CRAN.Rproject.org/package=sybilEFBA],
 33.
Fritzemeier CJ: RSeed. [http://CRAN.Rproject.org/package=RSeed],
 34.
Borenstein E, Kupiec M, Feldman MW, Ruppin E: Largescale reconstruction and phylogenetic analysis of metabolic environments. Proc Natl Acad Sci U S A. 2008, 105 (38): 1448214487. 10.1073/pnas.0806162105.
 35.
Feist AM, Henry CS, Reed JL, Krummenacker M, Joyce AR, Karp PD, Broadbelt LJ, Hatzimanikatis V, Palsson BØ: A genomescale metabolic reconstruction for Escherichia coli K12 MG1655 that accounts for 1260 ORFs and thermodynamic information. Mol Syst Biol. 2007, 3: 121
 36.
Gudmundsson S, Thiele I: Computationally efficient flux variability analysis. BMC Bioinformatics. 2010, 11: 48910.1186/1471210511489.
 37.
Klamt S, SaezRodriguez J, Gilles ED: Structural and functional analysis of cellular networks with CellNetAnalyzer. BMC Syst Biol. 2007, 1: 210.1186/1752050912.
 38.
Wright J, Wagner A: The systems biology research tool: evolvable opensource software. BMC Syst Biol. 2008, 2: 5510.1186/17520509255.
 39.
Rocha I, Maia P, Evangelista P, Vilaça P, Soares S, Pinto JP, Nielsen J, Patil KR, Ferreira EC, Rocha M: OptFlux: an opensource software platform for in silico metabolic engineering. BMC Syst Biol. 2010, 4: 4510.1186/17520509445.
 40.
Hoppe A, Hoffmann S, Gerasch A, Gille C, Holzhütter HG: FASIMU: flexible software for fluxbalance computation series in large metabolic networks. BMC Bioinformatics. 2011, 12: 2810.1186/147121051228.
 41.
Ebrahim A, Lerman JA, Palsson BØ, Hyduke DR: COBRApy: constraintsbased reconstruction and analysis for python. BMC Syst Biol. 2013, 7: 7410.1186/17520509774.
 42.
GeliusDietrich G: glpkAPI. [http://CRAN.Rproject.org/package=glpkAPI],
 43.
Giorgetti N: glpkmex. [http://glpkmex.sourceforge.net],
 44.
Hornik K, Theussl S: Rglpk. [http://CRAN.Rproject.org/package=Rglpk],
 45.
Szappanos B, Kovács K, Szamecz B, Honti F, Costanzo M, Baryshnikova A, GeliusDietrich G, Lercher MJ, Jelasity M, Myers CL, Andrews BJ, Boone C, Oliver SG, Pál C, Papp B: An integrated approach to characterize genetic interaction networks in yeast metabolism. Nat Genet. 2011, 43 (7): 656662. 10.1038/ng.846.
 46.
Mo ML, Palsson BØ, Herrgård MJ: Connecting extracellular metabolomic measurements to intracellular flux states in yeast. BMC Syst Biol. 2009, 3: 3710.1186/17520509337.
 47.
Larhlimi A, David L, Selbig J, Bockmayr A: F2C2: a fast tool for the computation of flux coupling in genomescale metabolic networks. BMC Bioinformatics. 2012, 13: 5710.1186/147121051357.
 48.
Hucka M, Finney A, Sauro HM, Bolouri H, Doyle JC, Kitano H, Arkin AP, Bornstein BJ, Bray D, CornishBowden A, Cuellar AA, Dronov S, Gilles ED, Ginkel M, Gor V, Goryanin II, Hedley WJ, Hodgman TC, Hofmeyr JH, Hunter PJ, Juty NS, Kasberger JL, Kremling A, Kummer U, Le Novère N, Loew LM, Lucio D, Mendes P, Minch E, Mjolsness ED, et al: The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models. Bioinformatics. 2003, 19 (4): 524531. 10.1093/bioinformatics/btg015.
 49.
In Silico Organisms  Systems Biology Research Group. [http://gcrg.ucsd.edu/Downloads],
 50.
Feist AM, Herrgård MJ, Thiele I, Reed JL, Palsson BØ: Reconstruction of biochemical networks in microorganisms. Nat Rev Microbiol. 2009, 7 (2): 12943.
 51.
Oberhardt MA, Palsson BØ, Papin JA: Applications of genomescale metabolic reconstructions. Mol Syst Biol. 2009, 5: 320
 52.
Bornstein BJ, Keating SM, Jouraku A, Hucka M: LibSBML: an API library for SBML. Bioinformatics. 2008, 24 (6): 880881. 10.1093/bioinformatics/btn051.
 53.
Makhorin A: GNU Linear Programming Kit (GLPK). [http://www.gnu.org/software/glpk/],
 54.
IBM ILOG CPLEX. [https://www.ibm.com/developerworks/university/academicinitiative/],
 55.
GeliusDietrich G: cplexAPI. [http://CRAN.Rproject.org/package=cplexAPI],
 56.
COIN OR Clp. [https://projects.coinor.org/Clp],
 57.
GeliusDietrich G: clpAPI. [http://CRAN.Rproject.org/package=clpAPI],
 58.
lp_solve. [http://lpsolve.sourceforge.net/5.5/index.htm],
 59.
Konis K: lpSolveAPI. [http://CRAN.Rproject.org/package=lpSolveAPI],
 60.
Gurobi. [http://www.gurobi.com],
 61.
Comprehensive R Archive Network (CRAN). [http://cran.rproject.org],
Acknowledgements
We are grateful to Balázs Papp and Balázs Szappanos for helpful discussions and intensive testing. We also thank Csaba Pál, Markus Herrgård, Benjamin Braasch, Marc Andre Daxer, Milan Majtanik, and Rajen Piernikarczyk for helpful discussions.
Author information
Additional information
Competing interests
The authors declare that they have no competing interests.
Authors’ contributions
GGD developed the R packages sybil, sybilSBML, glpkAPI, clpAPI and cplexAPI, implemented the algorithms, conceived the handling of the mathematical programming software, and wrote the manuscript. AAD developed sybil addon packages sybilDynFBA and sybilEFBA and tested and applied sybil and made suggestions for improvements and additions. CJF developed sybil addon package RSeed and tested and applied sybil and made suggestions for improvements and additions. MJL initated the project, suggested improvements and additions to sybil, and contributed to the writing of the manuscript. All authors read and approved the final manuscript.
Electronic supplementary material
Authors’ original submitted files for images
Below are the links to the authors’ original submitted files for images.
Rights and permissions
About this article
Received
Accepted
Published
DOI
Keywords
 Constraintbased modelling
 Fluxbalance analysis
 FBA
 MOMA
 ROOM
 GNU R