Welcome to the Organism Simulator software

The Organism 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 rules for updating the system. It is assuming a deterministic system and uses an Ordinary Differential Equation approach.

Some of the features of the software are:

* It includes several numerical solvers for the ODEs.

* It has an optimization and analyze environment.

* It includes a library of common biochemical and mechanical rules.

* It is developed such that it should be easy for a programmer to define new reaction- division- etc. rules.

* It is and has been used to simulate growing plant tissue, and yeast and bacterial cell colonies.

The software is mainly developed at the Computational Biology & Biological Physics group at Lund University. Contact: henrik@….

Binaries

There are two main binaries. simulator which is simulating an organism model, and optimizer which is used to optimize model parameters.

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().

* 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:

$ORGANISM/bin/simulator example.model example.init example.rk5 > example.data

which generates the system output in the file example.data.

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 or scons. Both a Makefile and a SConstruct file can be found found in the $ORGANISM/src directory. The code is ANSI-compatible and has been tested to compile on Linux, Mac OSX and Windows (using Cygwin) platforms.