Team:Czech Republic/Software
Software
Contents
Abstract
CeCe is a simulation environment capturing in one setting the key processes that influence cell-cell signal transmission. The underlying scene is a simple 2D world. Cells enter and exit this world through predefined channels of arbitrary shape. Each cell executes its own stochastic biochemical reactions and based on its state interacts with the rest of the population. As such, CeCe is easy to setup, intuitive to interpret, and fast to run.
Key Achievements
- Diffusion
- Streamlines
- Stochastic communication between cells
- Everything real time with customizable timestep
Motivation
Until now, intercellular interactions has been difficult to model. And because we also use microfluidics as a tool to confirm our designs, we made a decision to create an instrument which allows easy and completely boundless simulation of cell communication in any microfluidic environment. We decided to name the instrument CeCe, as abbreviation of Cell-Cell interaction.
Architecture
The simulator is designed to be highly modular. The core contains almost no functionality and missing functionality is provided by plugins. This design allows to extend simulator functionality by adding plugins written by someone else. Plugins are loaded on demand by simulation file so unnecessary functionality is not used.
Simulation is computed by stepping over independent iterations. Each iteration is defined by time step and all modules and objects (provided by plugins) are updated. Module is unit that is updated in each iteration and provides some global functionality (e.g. diffusion). Only one of same type is allowed to be in simulation. Objects are simulation entities that provides some local functionality (e.g. Yeast cells).
Objects within simulation are driven by physical engine ([http://box2d.org Box2D]) so interactions between objects looks almost realistic. Physical engine use different time step (engine is designed for games and mostly expect simulation step around 33ms) and use coefficient to convert units between those two systems. The reason why are those time step separated is the simulator require larger time step (seconds, minutes, ...) - cell growth is slow process that takes hours and have same time step doesn't make sense in meaning of simulation.
Visualization
The CeCe simulator has ability to visualize given simulation (OpenGL). Final scene visualization is done by combination of modules and objects visualization (if they provide it).
Demo
Modeling
Default simulator package contains several plugins that offer some additional functionality.
Diffusion
$$A = \frac{1}{4 \cdot \pi \cdot D \cdot dt}$$ $$C_i = A \cdot e^{\frac{d_i^2}{4 \cdot D \cdot dt}}$$
where \(D\) is diffusion rate, \(dt\) is time step and \(d_i\) is distance from source.
Streamlines - Lattice-Boltzman method
The simulator implements square lattice LBGK model (D2Q9) which is expressed as:
$$f_i\(x + \delta e_i, t + \delta\) - f_i\(x, t\) = - \frac{1}{\tau}\[f_i\(x, t\) - f$^(eq)_i$\(x, t\)\], i = 0, 1, ..., 8$$
Stochastic reactions - Gillespie algorithm
Download
Simulator binaries are available to download for following platforms:
Package contains simulator binary, examples, manual and tutorial (HTML).
Source code
The CeCe simulator source code is available on [http://github.com/GeorgievLab/CeCe GitHub].