Version 14 (modified by henrik, 6 months ago) (diff)


Welcome to the Organism-Tissue Simulator software page

The Organism-Tissue Simulator is a C++ software for simulating biological systems. It mainly focuses on systems with multiple cells/compartments, and includes biochemical as well as mechanical and cell proliferation rules for numerically simulating the system dynamics.

The software is currently divided into two separate codes:

Organism : used for simulating cells with geometries that can be described by a fixed number of variables and parameters. Examples are cells described by Spheres, Capped cylinders for rod-shaped cells, and Budding (yeast) shapes. It also can be used for simulations on geometries extracted from confocal data, where it uses information on cell volumes cell-cell connections (walls) and their areas. Example papers using these different approaches are:

Jönsson et al (2006) PNAS

Cho, Jönsson et al (2006) PLoS Biology

Jönsson and Levchenko (2005) Multiscale Modeling and Simulation

Gruel et al (2016) Science Advances

Tissue : used for simulating vertex-based cell geometries including finite element mechanical models. A cell wall (cell in 2.5D) is defined by a list of vertices defining a polygon. Example papers using this software are:

Hamant, Heisler, Jönsson et al (2008) Science

Bozorg et al (2014) PLoS Comp Biol

Bhatia et al (2016) Current Biology


Some of the features of the Organism-Tissue software are:

  • It includes several numerical solvers for the ordinary differential equations, also with noise, and for stochastic simulations (Organism).
  • It includes a library of common biochemical, growth, division and mechanical rules.
  • Models are defined within a specific model file - no need for recompilation when models are changed.
  • The code is compartmentalised such that it should be easy for a programmer to define

additional user-specific reaction- division- etc. rules.

  • It is and has been used to simulate growing plant tissue, and yeast and

bacterial cell colonies.

  • It includes visualisation and analysis tools.
  • it includes an optimisation environment where data from multiple mutants can be used to define a cost function (only Organism).


The software is mainly developed at the Computational Biology & Biological Physics group at Lund University and the Computational Morphodynamics group at the Sainsbury Laboratory, University of Cambridge. Contact: henrik.jonsson@….

Developers (incomplete list): Henrik Jönsson, Patrik Sahlin, Pontus Melke, Pau Formosa-Jordan, Laura Brown, Pawel Krupinski, Behruz Bozorg


There are three main binaries. simulator which is simulating a single organism-tissue model. For the Organism code there is an optimizer binary which is used to optimise model parameters towards a data template, and newman which is used to visualise model output. For the Tissue code, the preferred viualisation tool is Paraview (


The simulator uses three input files:

  • model file: this file defines the model. Information of its format can be

found in the documentation of Organism::readModel() [for tissue it is Tissue::readModel()].

  • init file: this file holds the initial variable values. Information of

its structure can be found at the documentation for Organism::readInit().

  • solver parameter file: With this file parameters for the solver is

provided. Information of its structure can be found in BaseSolver::getSolver().

These three files are required to be included among the command line arguments and in correct order. In addition different flags to the simulator can be set, either on the command line or in a file $HOME/.organism. Information on these additional flags can be found in the documentation for the namespace myConfig.

A common command line execution of the simulator binary is then:

simulator example.model example.init example.rk5 >

which generates the system output in the file Note that the simulator binary is in the bin directory of the organism (or tissue) main directory. This needs to be in your PATH or you will need to specify the full path to the binary.


The optimizer uses three input files:

  • model file: this file defines the model. Information of its format can be

found in the documentation of Organism::readModel().

  • solver parameter file: In this file parameters for the solver is

provided. Information of its structure can be found in BaseSolver::getSolver().

  • optimizer parameter file: Information about the optimizer to be used is

given, including parameters to be optimized, template file(s) to be compared to, and cost function to be used. There is more documentation on the file content in the documentation for the class BaseOptimizer? and its sub-classes.


The code can be compiled by using make. A Makefile can be found in the 'src' directory (to compile: 'cd src; make' will generate the binaries in the bin directory) . The code is ANSI-compatible and has been tested to compile on Linux (default for the provided Makefile), Mac OS X and Windows (using Cygwin) platforms. It is dependent on boost and for plotting OpenGL.


Documentation is generated via Doxygen ( and a Makefile is found in the 'doc' directory. 'cd doc; make' will generate a html version in the doc/html directory and the introductory page is doc/html/index.html. PDF documentation can be generated by 'cd doc/latex; make' which generates doc/latex/refman.pdf. Other formats are also available via Doxygen.


The latest version of the source code is freely available via a subversion server upon request (henrik.jonsson@…).