A number of computational tools have been developed by researchers working at the Centre for Mathematical Biology, some of which are described below.


Chaste (Cancer, Heart and Soft Tissue Environment) is a general purpose simulation package aimed at multi-scale, computationally demanding problems arising in biology and physiology. Current functionality includes tissue and cell level electrophysiology, discrete tissue modelling, and soft tissue modelling. The package is being developed by a team composed mainly of researchers based at the Centre for Mathematical Biology and at the Computational Biology Group at Oxford University Computing Laboratory. Development draws on expertise from software engineering, high performance computing, mathematical modelling and scientific computing. While Chaste is a generic extensible library, software development to date has focused on two distinct areas: continuum modelling of cardiac electrophysiology (Cardiac Chaste); and discrete modelling of cell populations (Systems Biology Chaste), with specific application to tissue homeostasis and carcinogenesis (Cancer Chaste). More information on Chaste is available at the official website, from which it can also be downloaded.


  • J.M. Pitt-Francis, P. Pathmanathan, M.O. Bernabeu, R. Bordas, J. Cooper, A.G. Fletcher, G.R. Mirams, P.J. Murray, J. Osborne, A. Walter, S.J. Chapman, A. Garny, I.M.M. van Leeuwen, P.K. Maini, B. Rodriguez, S.L. Waters, J.P. Whiteley, H.M. Byrne and D.J. Gavaghan (2009). Chaste: a test-driven approach to software development for biological modelling. Comp. Phys. Comm. 180:2452-2471. (eprints)


DifFUZZY is a fuzzy (soft) clustering technique developed to handle data sets that are "curved", elongated or those which contain clusters of different dispersion. DifFUZZY can be used to study high dimensional data sets, such as microarray and other high-throughput bioinformatics data. The algorithm has been implemented in Matlab and C++ and is available to download below. DifFUZZY consists of three main steps. It first identifies the core clusters (the data points that are closely packed together or interconnected when applying a small neighbourhood of each data point), then the undecided data points, and finally, it assigns membership values to the undecided points. These steps involve a suitably chosen diffusion process on the graph generated the from data points. Further details of this algorithm are given in the reference below.

Contact: Dr Ornella Cominetti (e-mail:


  • O. Cominetti, A. Matzavinos, S. Samarasinghe, D. Kulasiri, S. Liu, P.K. Maini and R. Erban  (2010). DifFUZZY: A fuzzy clustering algorithm for complex data sets. Int. J. of Comput. Intelligence in Bioinformatics and Systems Biology 1:402-417. (eprints)

STOCHSIMGPU: Parallel stochastic simulation for the Systems Biology Toolbox 2 for MATLAB

The importance of stochasticity in biological systems is becoming increasingly recognised and the computational cost of biologically realistic stochastic simulations urgently requires development of efficient software. We present a new software tool STOCHSIMGPU, which exploits graphics processing units (GPUs) for parallel stochastic simulations of biological/chemical reaction systems and show that significant gains in efficiency can be made. It is integrated into MATLAB and works with the Systems Biology Toolbox2 (SBTOOLBOX2) for MATLAB. The GPU-based parallel implementation of the Gillespie stochastic simulation algorithm (SSA), the logarithmic direct method (LDM), and the next reaction method (NRM) is approximately 85 times faster than the sequential implementation of the NRM on a central processing unit (CPU). Using our software does not require any changes to the user's models, since it acts as a direct replacement of the stochastic simulation software of the SBTOOLBOX2. The software is open source under the GPLv3 and is available to download here. The website also contains supplementary information.


  • G. Klingbeil, R. Erban, M. Giles and P. K. Maini (2011). STOCHSIMGPU: Parallel stochastic simulation for the Systems Biology Toolbox 2 for MATLAB. Bioinformatics 27:1170-1171. (eprints)

Bacterial motility analysis tool

The motile behaviour of bacteria underlies many important aspects of their actions, including pathogenicity, foraging efficiency, and the ability to form biofilms. Despite its importance, bacterial motility has only been studied in detail in a few model organisms, in simple conditions. However, recent developments in experimental methodology and mathematical modelling now permit a full investigation of this phenomenon. To address this issue, members of the CMB have developed a novel automated, non-parametric method has been developed for characterising the swimming patterns of flagellated bacteria. The method uses a hidden Markov model for the identification of reorientation phases in observed cell tracks, and has been shown to have a reduced error rate and less systematic bias than previous, heuristic parameter-based analysis methods in the literature. Our work to date has exploited the availability of a large dataset, obtained by our collaborators in the Armitage lab (Department of Biochemistry), comprising large numbers of tracks of the free-swimming bacteria Rhodobacter sphaeroides observed under a microscope. Key biological insights already gained include strong evidence that R. sphaeroides undergoes some form of active reorientation, in contrast to the mainstream belief that the process is passive. A software implementation of this method, together with sample experimental dataset, are freely available to download as a zipped folder from this page. The code is fully documented and written in Python to make it compatible with all major operating systems.  Details for how to install the software is given in the 'doc' subfolder, while a thoroughly documented example of how to run the code is provided in the file ''.


  • G. Rosser, A. G. Fletcher, P.K. Maini and R. E. Baker (2013). The effect of sampling rate on observed statistics in a correlated random walk. J. R. Soc. Interface 10:20130273. (eprints)