Team:Czech Republic/Software

Software

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

Error creating thumbnail: File missing
Simulation iteration scheme

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. More detailed overview how the simulator has been used in our project can be found on modeling page.

Diffusion

The diffusion plugin is used to simulate diffusion where regions with high concentration are spread to regions with low concentration.

$$A = \frac{1}{4 \cdot \pi \cdot D \cdot dt}$$ $$M_{ij} = A \cdot e^{\frac{d_{ij}^2}{4 \cdot D \cdot dt}}$$

where \(M\) is mapping matrix, \(D\) is diffusion rate, \(dt\) is time step and \(d_{ij}\) is cell distance from source cell. For each diffusion grid cell the \(M\) matrix is used to distribute cell signal between surrounding grid cells.

$$G_{xy+ij}^{n+1} = G_{xy}^{n} \cdot (1 - R_d \cdot dt) \cdot \bar{M_{ij}},\;i,\,j = 0, 1, 2$$

where \(G\) is diffusion grid, \(R_d\) is degradation rate and \(\bar{M_{ij}}\) is normalized \(M_{ij}\).

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].