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
Features
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).
Development
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
Binaries
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 (http://www.paraview.org).
Simulator
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 > example.data
which generates the system output in the file example.data. 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.
Optimizer
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.
Compilation
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
Documentation is generated via Doxygen (http://www.doxygen.org) 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.
Download
The latest version of the source code is freely available via a subversion server upon request (henrik.jonsson@…).