Johann M. Rohwer - email@example.com - Stellenbosch University, ZA
Brett G. Olivier - firstname.lastname@example.org - Free University Amsterdam, NL
Jan-Hendrik S. Hofmeyr - email@example.com - Stellenbosch University, ZA
Computer modelling has become an integral tool in the analysis and understanding of the reaction networks that underlie cellular processes. The need to adapt modelling software to our specific needs prompted the development of PySCeS (http://pysces.sourceforge.net) , the Python Simulator for Cellular Systems, which we present here.
PySCeS is an extremely ﬂexible, user-extensible, open-source modelling tool. It is written in Python and makes extensive use of the highly successful IPython, NumPy, SciPy, Matplotlib stack. It has been developed to run on multiple platforms and is released under a BSD-style licence.
Models are initially described as PySCeS input ﬁles in a human readable model description language (MDL). We have implemented a MDL parser using David Beazley's PLY. Alternatively, PySCeS supports translation to and from the Systems Biology Markup Language (SBML) , an XML dialect which is the de facto standard for model exchange in systems biology.
Once a PySCeS model object has been instantiated with an input ﬁle, all model properties are represented by attributes. During the load process a stoichiometric analysis is automatically performed, thus generating the ordinary differential equations (ODEs) describing the system. After translation into ODEs the system can be analysed with a number of algorithms in terms of its time-dependent (LSODA, CVODE) and steady-state (HYBRD, NLEQ2, KINSOL) solutions. Multi-stationarity can be analysed with an interface to the PITCON algorithm. The stability of the system can be evaluated by automatic computation of the eigenvalues of the Jacobian matrix. Importantly, alternative solvers, which are not part of SciPy (e.g. NLEQ2) were incorporated into PySCeS with f2py.
PySCeS also allows higher level system properties to be analysed using Metabolic Control Analysis (MCA) , a theoretical framework for the study of the control and regulatory properties of a cellular reaction network at steady state. Symbolic matrix inversion, which is required for symbolic MCA, is provided by the SymCA add-on module, which makes use of an interface to Maxima to perform the symbolic computation.
As an example of how we use PySCeS in systems biology we will show how multiple-parameter rate characteristics can be used to investigate regulatory patterns in an example metabolic pathway and how regulatory metabolites can be computationally identiﬁed from a generalised supply-demand analysis . We will show how large-scale parameter scans can easily be parallelised with the IPython parallel interface.
In summary, the open, extensible platform offered by Python and SciPy provides an extremely powerful framework for building dedicated software packages for specialised scientific computing needs. High-level functions provide ease of use for everyday repetitive tasks, yet when needed, the user has the option to drill down, create custom code and interface new algorithms.
 Olivier, B. G., Rohwer, J. M. & Hofmeyr, J.-H. S. Modelling cellular systems with PySCeS. Bioinformatics 21, 560–561 (2005).
 Hucka, M. et al. The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models. Bioinformatics 19, 524–531 (2003).
 Kacser, H., Burns, J. A. & Fell, D. A. The control of ﬂux: 21 years on. Biochem. Soc. Trans. 23, 341–366 (1995).
 Rohwer, J. M. & Hofmeyr, J.-H. S. Identifying and characterising regulatory metabolites with generalised supply-demand analysis. J. Theor. Biol. 252, 546-554 (2008).