Computer modelling has become an integral tool in the analysis and understanding of the reaction networks that underlie cellular processes, which has lead to the development and rapid growth of the field of computational systems biology. The need to adapt modelling software to our specific needs prompted the development of PySCeS [1], the Python Simulator for Cellular Systems, which makes extensive use of the highly successful IPython, NumPy, SciPy, Matplotlib stack.
In this talk I shall illustrate the application of PySCeS and other Python-based tools in parallel computational tasks to solve large problems in computational systems biology. Three use cases will be discussed.
Performing large multi-dimensional parameter scans with PySCeS using its built-in parallel functionality, which makes use of the multiprocessing
module for single multi-core machines or IPython's ipcluster
framework on multi-machine clusters.
Showing how multiple-parameter rate characteristics can be used to investigate regulatory patterns in a metabolic pathway and how regulatory metabolites can be computationally identified from a generalised supply-demand analysis [2], again using the built-in parallel functionality of PySCeS.
Performing repeated runs of a partial differential equation (PDE)-based model of sugar metabolism in sugarcane, which is simulated with FiPy [3]. The model is subject to parameter sensitivity analysis using FAST [4] and Morris sampling [5], requiring multiple runs. The computation was performed on an ipcluster
with 110 engines, yielding data sets in excess of 5GB. Problems encountered with the storage, movement and analysis of such huge datasets, as well strategies for their solution will be discussed.
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, such as required in computational systems biology. The parallel functionalities provided by IPython in the ipcluster
framework allow relatively easy implementation and provide interfaces to your own Python code.
References