Paris/Cell auto 2

From 2007.igem.org

< Paris
Revision as of 20:32, 25 October 2007 by Spicher (Talk | contribs)




Contents

Introduction

The cellular automaton develop to compare diffusion of DAP and differentiation is very restrictive and unrealistic due to the lake of natural behavior of cells like growth, division, death ... As a matter of fact, a cellular automaton point of view does not allow to deal with dynamical population:

  • required automaton rules to push cells and to allow divisions, are hard to carry out;
  • the rigid structure of the grid prevent any topological modification of the population organization;
  • somatic cells that cannot divide keep on growing and become significantly bigger that germ bacteria, a missing notion in a cellular automaton.

With this second simulation we focus on this issue. We aim at studying the impact of the cells organization on the future of the population. In order to achieve this goal, we need a mechanistic model that will allow cell to divide and die. We propose to use a masses/springs model. Such model allow

  • division and death by adding or removing masses,
  • cell growth by increasing springs rest length,
  • to fill holes in the population (if there is some empty place in the population springs will push masses to fill it),
  • to prevent a dispersion of cells (springs cannot infinitely extends).

This mechanistic model has to be coupled with the biological one we previously have developed.

We first stress out the hypothesis of this simulation, we then detail the mechanistic and biological models, and finally, we simulate the system considering either a DAP controlled differentiation or a DAP independent differentiation.

Hypotheses

In this model we made four important hypotheses:

  • Even if the somatic cells feed germ ones by an indirect process (using an external diffusion in the environment and not a direct bridge communication between cells) we consider that DAP cannot diffuse very far from a somatic cell and then a somatic cell can only feed close (in fact neighbor in our model) germ cells. As a consequence, we choose to model a direct communication (equivalent to an indirect communication with a small DAP diffusion rate) by putting a black box on the underlying complex mechanisms of feeding. In other words, there is no distinction between extenal and internal DAP; exchange are done directly from cell to cell.
  • We consider that the population evolves in size. So we allow bacteria to die and divide. Of cours, with respect to initial system, somatic cells cannot divide. On the other, we assume in this model that germ cells cannot die. In fact, we are here interested in studying the growth of the system that compulsorily requires presence of germ cells.
  • This point is not really an assumption but an property of cells that was not taken into account in the previous models. We will consider that cells are growing in size. In fact, the size of a somatic cell is supposed to be bigger than standard germ size. This could disturb a lot the geometric organization of the population.
  • Finally the two following case will be considered:
  • First case: the differentiation is DAP dependent
  • Second case: the differentiation is done with a constant rate

Description of the Model

As we have already said, this model is divided into two:

  • the mechanistic model that is used to deal with the cells displacement (using mechanical constraints) and their neighborhood,
  • the biological model that make cells evolve, growth (by extended springs rest length), divide, die, differentiate and communicate.

Both are mainly independent (the only dependence appears with the growth where springs length are modified). So we will present them separately.

The Mechanical Model

Neighborhood

In the mechanistic part of the system, a cell is considered as a punctual mass localized in the 2D euclidean space. All the cells are sharing the mass (we choose 1 to simplify computation). Cells are also characterized by there velocity. Finally, in order to compute the spring rest length, each cell exhibits its radius. We represent them by a tuple (px,py,vx,vy,r) where px and py are the coordinate of the cell position, vx and vy are the coordinates of its velocity vector, and r represents its radius.

The neighborhood between cells is computed using a Delaunay triangulation. In our system, if the triangulation make two cells become neighbors, this means that a spring is considered between their corresponding mass. The rest length of this spring is then the sum of the radius component of the mass representation. Once again to simplify computation the force constant of the spring is 1.

This characterization of the cells as masses corresponds to the definition of type MecaBact in the program. Fields have been added to save the sum of the forces that act on a mass.

Dynamics

We compute the displacement of a mass during a small time step by a Euler approximation. At each time step, the forces applied on each mass are summed, and twice integrated to compute the velocity, then the displacement and finally the new position of the mass.

The dynamics have implemented using the transformation Meca.


The Biological Model

Structure

The biological cells are represented in the same way as in the previous cellular automaton. Each bacterium is either germ or somatic and is characterized by its DAP concentration. So we represent the different states of the automaton cell by tuple of values {DAP,Type}:

  • DAP is the internal DAP concentration in the bacterium,
  • Type represents if the bacterium is differentiated or not; it can take two values BactG and BactS.

The neighborhood is given by the mechanical model.

This characterization of the biological cells corresponds to the definition of type CellBact in the program.

Dynamics

The biological dynamics are really simple:

  • somatic cells produce DAP, grow and die
  • germ cell consume DAP, grow, divide and differentiate
  • DAP is diffusing between cells

These rules are specified in the transformation Evol. In this transformation two rules are defined the first one to deal with somatic cells evolution and the second one with germ cells evolution. These rules can be understood as follows:

  • For somatic cells (DAP,BactS,r):
 DAP <- DAP - (DAP production) - (Diffused DAP)
 if (random < probability of death)
 then
    kill the bacterium
 else
   if (random < probability to grow) & (r < maximum cell size)
   then
      r <- r + delta
  • For germ cells (DAP,BactG,r), the evolution depends on the DAP dependent or independent differentiations model
  • Case 1 (
 DAP <- DAP - (DAP consummation) - (Diffused DAP)
 if (enough DAP)
 then
   if (random < probability of differentiation)
   then
      Type <- BactS
 else
   if (r > maximum cell size)
   then
     if (random < probability to divide) & (DAP > minimal DAP required for division)
     then
       divide
   else
     if (random < probability to grow)
     then
       r <- r + delta
  • Case 2 (
  • DAP'=DAP - self consumed DAP - diffused DAP
*if random< probability of differentiation then
 BactG=BactS
else
 if size > max size then
  if probability to divide > random & DAP'> minimal needed to divide then
   BactG = 2 BactG with minimal size 
  else 
   if random < probability to grow then
    BactG = BactG + {new size= size + delta}
   else
    nothing
 else
  BactG = BactG + {DAP=DAP'}

Case 1

We produce this set of rules


Mechanic forces

  • We create a spring between the center of each Bact, then we compute the forces related to this spring and we update the position of the cells (adding noise to it)

For bactS

*if random < Probability of death then
   BactS=null
else if random < probability to grow & size < max cell size then BactS=BactS+{new size=size+delta} else nothing
*Produce DAP


For BactG

*DAP'=DAP - self consumed DAP - diffused DAP
*if  enough DAP then
  if random< probability of differentiation then
   BactG=BactS
  else
   BactG= BactG+{DAP'}
 else
  if size > max size then
   if probability to divide > random & DAP'> minimal needed to divide then
    BactG = 2 BactG with minimal size 
   else 
    BactG= BactG +{DAP=DAP'}
  else
   if random < probability to grow then
    BactG = BactG + {new size= size + delta}
   else
    nothing




Initial state


4 BactS and a BactG in the middle


Parameters


We have 8 parameters and we can had noise for each of them.
Mechanic

  • DT time step
  • K constant of the spring
  • Mu variation of position
  • R0_Gm minimal size of a BactG (after division)
  • R0_G maximal size of a BactG (before division)
  • R0_S maximal size of BactS


In Bact

  • Diff diffusion constant


In BactS:

  • Diffp probability of differentiation
  • DEPOT production of DAP
  • DeathSP probability of death
  • CroitS probability of growth


In BactG:

  • CONS Dap consumed
  • DivG probability of division
  • CroitG probability of growth




Output


We use imoview to generate those movies

The output is two videos showing the evolution of the organism

  • The first video show a first comportment
Red : BactG
Green : BactS
dark<->light Bact : low<->high DAP
The number of bacteria (G or S) increase with the time
  • The second video show a second comportment
Red BactG
Green BactS
dark<->light Bact : low<->high DAP
The number of cells is constant and maintains itself

After playing with the parameters we can isolate 4 kinds of comportment.
2 of them are not really interested the system doesn't evolve or collapse (all the bacteria become S type).
The other 2 comportment show that our system can lead to an evolving organism developing itself and colonizing the environment or it can stay stable like a tissue or an organ.

Case 2

We produce this set of rules


Mechanic forces

  • We create a spring between the center of each Bact, then we compute the forces related to this spring and we update the position of the cells (adding noise to it)

For bactS

*if random < Probability of death then
  BactS=null
else if random < probability to grow & size < max cell size then BactS=BactS+{new size=size+delta} else nothing
*Produce DAP


For BactG

*DAP'=DAP - self consumed DAP - diffused DAP
*if random< probability of differentiation then
 BactG=BactS
else
 if size > max size then
  if probability to divide > random & DAP'> minimal needed to divide then
   BactG = 2 BactG with minimal size 
  else 
   if random < probability to grow then
    BactG = BactG + {new size= size + delta}
   else
    nothing
 else
  BactG = BactG + {DAP=DAP'}




Initial state


6 BactS and a BactG in the middle for the first result 5 BactS and 2 BactG for the second result


Parameters


We have 8 parameters and we can had noise for each of them.
Mechanic

  • DT time step
  • K constant of the spring
  • Mu variation of position
  • R0_Gm minimal size of a BactG (after division)
  • R0_G maximal size of a BactG (before division)
  • R0_S maximal size of BactS


In Bact

  • Diff diffusion constant


In BactS:

  • Diffp probability of differentiation
  • DEPOT production of DAP
  • DeathSP probability of death
  • CroitS probability of growth


In BactG:

  • CONS Dap consumed
  • DivG probability of division
  • CroitG probability of growth




Output


We use imoview to generate those movies

The output is two videos showing the evolution of the organism

  • The first video show a first comportment
Red : BactG
Green : BactS
dark<->light Bact : low<->high DAP
The number of bacteria (G or S) increase with the time
  • The second video show a second comportment
Red BactG
Green BactS
dark<->light Bact : low<->high DAP
The number of cells is constant and maintains itself

After playing with the parameters we can isolate 4 kinds of comportment.
2 of them are not really interested the system doesn't evolve or collapse (all the bacteria become S type).
The other 2 comportment show that our system can lead to an evolving organism developing itself and colonizing the environment or it can stay stable like a tissue or an organ.

Sources