Paris/Cell auto 2

From 2007.igem.org

< Paris(Difference between revisions)
('''''We have 3 entities in our model''''')
 
(37 intermediate revisions not shown)
Line 1: Line 1:
-
{{Template:Paris_menu_modeling2}}
+
{{Template:Paris_menu_modeling}}
<br>
<br>
<br>
<br>
-
==Spatial simulation==
+
= Introduction =
-
We try with this work to characterize the diffusion of the DAP and the effect on the cells. We have a growing culture with germinal cells and somatic cells.<br>
+
-
We want to see if we can have different kinds of evolution for our cells.<br>
+
-
as we can see in the [[Paris/Cell_auto|simple automaton]] the diffusion mechanism and the effect on differentiation  can be fescribe more accuratly, so for the moment we just ignore the diffusion putting a black box on it and just focused on the total number of DAP entities.
+
-
=='''''We make some hypothesis:'''''==
+
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:
-
We work with a '''evolving population''' ( death for BactS and  division BactG).<br>
+
* required automaton rules to push cells and to allow divisions, are hard to carry out;
-
*Case 1 : The differentiation is '''DAP dependent''', it's append when the cell as enough DAP to evolve but not enough to divide.<br>
+
-
*Case 2 : The differentiation has a''' constant rate''', it will be the same rate for each division cycle
+
-
The '''DAP is made in bacteria S''', the production rate is the difference between the total production and self consummation<br>
+
-
We consider a global variable DAP (no internal/external DAP)<br>
+
-
The '''DAP is consumed in bacteria G''' <br><br><br>
+
-
All the cells grow
+
-
=='''''We have 3 bags and 1 entity in our model'''''==
+
* the rigid structure of the grid prevent any topological modification of the population organization;
-
*bag <br>
+
-
Bact it has a concentration internal of DAP and a radius. It's a cell in our automaton<br>
+
-
BactS is a Bact which produce DAP and can grow<br>
+
-
BactG is a Bact which consume DAP and can divide or differentiate <br><br><br>
+
-
*entity<br>
+
-
DAP Value of DAP
+
-
='''Case 1'''=
+
* somatic cells that cannot divide keep on growing and become significantly bigger that germ bacteria, a missing notion in a cellular automaton.
-
=='''''We produce this set of rules'''''==
+
With this second simulation we focus on this issue. We consider SMB as a [[Paris/mgs#Dynamical_Systems_with_a_Dynamical_Structure|dynamical system with a dynamical structure]] and 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
-
<br>
+
* division and death by adding or removing masses,
-
Mechanic forces<br>
+
-
* 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)<br>
+
-
For bactS<br>
+
-
*if random < Probability of death then
+
-
    BactS=null<br>
+
-
  else
+
-
  if random < probability to grow & size < max cell size then
+
-
    BactS=BactS+{new size=size+delta}
+
-
  else
+
-
    nothing<br>
+
-
*Produce DAP
+
-
<br>
+
-
For BactG<br>
+
-
*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
+
-
<br><br><br>
+
-
=='''''Initial state'''''==
+
* cell growth by increasing springs rest length,
-
<br>
+
-
4 BactS and a BactG in the middle
+
-
<br><br><br>
+
-
=='''''Parameters'''''==
+
* to fill holes in the population (if there is some empty place in the population springs will push masses to fill it),
-
<br>
+
-
We have 8 parameters and we can had noise for each of them.<br>
+
-
'''Mechanic'''<br>
+
-
*DT time step<br>
+
-
*K constant of the spring<br>
+
-
*Mu variation of position<br>
+
-
*R0_Gm minimal size of a BactG (after division)
+
-
*R0_G maximal size of a BactG (before division)
+
-
*R0_S maximal size of BactS
+
-
<br>
+
-
'''In Bact'''<br>
+
-
*Diff diffusion constant<br>
+
-
<br>
+
-
'''In BactS:'''<br>
+
-
*Diffp probability of differentiation<br>
+
-
*DEPOT production of DAP<br>
+
-
*DeathSP probability of death <br>
+
-
*CroitS probability of growth <br>
+
-
<br>
+
-
'''In BactG:'''<br>
+
-
*CONS Dap consumed<br>
+
-
*DivG probability of division<br>
+
-
*CroitG probability of growth<br>
+
-
<br><br><br>
+
-
=='''''Output'''''==
+
* to prevent a dispersion of cells (springs cannot infinitely extends).
-
<br>
+
-
The output is two videos showing the evolution of the organism<br>
+
-
<center>
+
This mechanistic model has to be coupled with the biological one we previously have developed.
-
<html>
+
-
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=2051019221671269340&hl=en" flashvars=""; > </embed>
+
-
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=2422231061053866723&hl=en=en =en" flashvars=""> </embed></html></center>
+
-
*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.<br>
+
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.
-
2 of them are not really interested the system doesn't evolve or collapse (all the bacteria become S type).<br>
+
-
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'''=
+
== Hypotheses ==
-
=='''''We produce this set of rules'''''==
+
In this model we made four important hypotheses:
-
<br>
+
* 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 external and internal DAP; exchange are done directly from cell to cell.
-
Mechanic forces<br>
+
-
* 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)<br>
+
-
For bactS<br>
+
-
*if random < Probability of death then
+
-
  BactS=null<br>
+
-
else
+
-
  if random < probability to grow & size < max cell size then
+
-
  BactS=BactS+{new size=size+delta}
+
-
  else
+
-
  nothing<br>
+
-
*Produce DAP
+
-
<br>
+
-
For BactG<br>
+
-
*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'}
+
-
<br><br><br>
+
-
=='''''Initial state'''''==
+
* We consider that the population evolves in size. So we allow bacteria to die and divide. Of course, 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.
-
<br>
+
-
6 BactS and a BactG in the middle for the first result
+
-
5 BactS and 2 BactG for the second result
+
-
<br><br><br>
+
-
=='''''Parameters'''''==
+
* 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.
-
<br>
+
-
We have 8 parameters and we can had noise for each of them.<br>
+
-
'''Mechanic'''<br>
+
-
*DT time step<br>
+
-
*K constant of the spring<br>
+
-
*Mu variation of position<br>
+
-
*R0_Gm minimal size of a BactG (after division)
+
-
*R0_G maximal size of a BactG (before division)
+
-
*R0_S maximal size of BactS
+
-
<br>
+
-
'''In Bact'''<br>
+
-
*Diff diffusion constant<br>
+
-
<br>
+
-
'''In BactS:'''<br>
+
-
*Diffp probability of differentiation<br>
+
-
*DEPOT production of DAP<br>
+
-
*DeathSP probability of death <br>
+
-
*CroitS probability of growth <br>
+
-
<br>
+
-
'''In BactG:'''<br>
+
-
*CONS Dap consumed<br>
+
-
*DivG probability of division<br>
+
-
*CroitG probability of growth<br>
+
-
<br><br><br>
+
-
=='''''Output'''''==
+
* Finally the two following case will be considered:
-
<br>
+
-
The output is two videos showing the evolution of the organism<br>
+
 +
:* 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 <code>(px,py,vx,vy,r)</code> where <code>px</code> and <code>py</code> are the coordinate of the cell position, <code>vx</code> and <code>vy</code> are the coordinates of its velocity vector, and <code>r</code> represents its radius.
 +
 +
The neighborhood between cells is computed using a [[Paris/mgs#Topological_Collections|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 <code>MecaBact</code> in the [[Paris/Sources#Cells_Spatial_Organization|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 considered forces are of two types: the restoring force exerted by the springs on each mass, and a friction force to prevent a divergent increase of the velocity and to ensure that the mechanical equilibrium will be reached.
 +
 +
The dynamics have implemented using the [[Paris/mgs#Transformations|transformation]] [[Paris/Sources#Cells_Spatial_Organization|<code>Meca</code>]].
 +
 +
== The Biological Model ==
 +
 +
=== Structure ===
 +
 +
The biological cells are represented in the same way as in the previous [[Paris/Cell_auto|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 <code>{DAP,Type}</code>:
 +
 +
* <code>DAP</code> is the internal DAP concentration in the bacterium,
 +
 +
* <code>Type</code> represents if the bacterium is differentiated or not; it can take two values <code>BactG</code> and <code>BactS</code>.
 +
 +
The neighborhood is given by the mechanical model.
 +
 +
This characterization of the biological cells corresponds to the definition of type <code>CellBact</code> in the [[Paris/Sources#Cells_Spatial_Organization|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 [[Paris/mgs#Transformations|transformation]] [[Paris/Sources#Cells_Spatial_Organization|<code>Evol</code>]]. 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 <code>(DAP,BactS,r)</code>:
 +
 +
  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 <code>(DAP,BactG,r)</code>, the evolution depends on the DAP dependent or independent differentiations model
 +
 +
:* Case 1 (DAP dependent)
 +
 +
  DAP <- DAP - (DAP consummation) - (Diffused DAP)
 +
  '''if''' (random < probability of differentiation) & (enough DAP) '''<- Here is the DAP dependence'''
 +
  '''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 independent)
 +
 +
  DAP <- DAP - (DAP consummation) - (Diffused DAP)
 +
  '''if''' (random < probability of differentiation) '''<- No DAP dependence'''
 +
  '''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
 +
 +
=== Coupling models ===
 +
 +
Finally, considering together the two models, a cell is represented by a tuple <code>(DAP,Type,px,py,vx,vy,r)</code>.
 +
 +
The dynamics are simply coupled by composing functions <code>Meca</code> and <code>Evol</code>. See function [[Paris/Sources#Cells_Spatial_Organization|<code>step</code>]].
 +
 +
=== Parameters ===
 +
 +
As it appears in the previous algorithms, a lot of parameters can be used to obtain different kind of evolutions. We introduce the reader to the 8 parameters:
 +
 +
* <code>DT</code>: the time step. The same time step is used in the integrations of the mechanical model and in the DAP diffusion of the biological model. An application of function <code>step</code> computes the evolution of system during after <code>DT</code>.
 +
 +
* <code>K</code> and <code>Mu</code> are respectively the spring constant (all the springs share the same constant) and the friction constant.
 +
 +
* <code>R0_Gm</code>, <code>R0_G</code> and <code>R0_S</code> are the different threshold defining the range of cells radius. They are respectively the minimal germ cell size (after division), the maximal germ cells size (before division), and the maximal somatic cells size.
 +
 +
* <code>Diff</code> characterized the DAP diffusion rate.
 +
 +
* <code>Diffp</code> is the probability of differentiation.
 +
 +
* <code>DEPOT</code> is the constant DAP production of somatic cells per unit of time.
 +
 +
* <code>CONS</code> is the constant DAP consummation of germ cells per unit of time.
 +
 +
* <code>DeathSP</code> is the probability of death of somatic cells.
 +
 +
* <code>DivGP</code> is the probability of division of germ cells.
 +
 +
* <code>CroitS</code> and <code>CroitG</code> are respectively probability of growth of somatic and germ cells.
 +
 +
= Results [[Image:MGS-inside.png|50px]]=
 +
 +
Thanks to [[Paris/mgs|MGS]] and [http://mgs.ibisc.univ-evry.fr/ImoView05/index.html ImoView] (a software dedicated to the 3D visualization of MGS programs outputs. The input of ImoView are written in a symbolic high-level scene description languages.) we are able to generate the following animations.
 +
<center>
 +
<html>
 +
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=2051019221671269340&hl=en" flashvars=""; > </embed>
 +
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=2422231061053866723&hl=en=en =en" flashvars=""> </embed>
 +
</html>
 +
</center>
<center>
<center>
<html>
<html>
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=-193608487106391911&hl=en" flashvars=""; > </embed>
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=-193608487106391911&hl=en" flashvars=""; > </embed>
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=4619339118096511087&hl=en" flashvars=""> </embed></html></center>
<embed style="width:350px; height:300px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=4619339118096511087&hl=en" flashvars=""> </embed></html></center>
-
*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.<br>
+
In these animation, red and green spheres respectively represent germ and somatic cells. The brightness variations of the germ cells indicates the evolution of DAP concentration: the darker the color is, the lower the concentration is.
-
2 of them are not really interested the system doesn't evolve or collapse (all the bacteria become S type).<br>
+
 
-
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.
+
On the first line, both animations are DAP '''dependent''' simulations, while the bottom line presents two animations of DAP '''independent''' simulations. Both models (with and without dependence) qualitatively exhibit the same global behavior. Only the speed of the population growth differs; the system seems to be more efficient when a DAP dependent differentiation is considered.
 +
 
 +
The columns show another property of the system that is predicted in the [[Paris/Continuous_model|phenomenological study]]: it exists an unstable equilibrium. On the left, the behavior corresponds to evolving organism that develops itself and colonizes the environment: that is the exponential growth of the population. On the right, parameters have been tuned to simulate a stable evolution like in a tissue or an organ. The fact that this fixed point is unstable is here verified: due to the stochastic choice done in the model, using the same set of parameters that produce right column, the population sometimes collapses in simulations, falling in the trivial fixed point.
 +
 
 +
=[[Paris/Sources#Cell auto 2|Sources]]=

Latest revision as of 13:19, 26 October 2007




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 consider SMB as a dynamical system with a dynamical structure and 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 external 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 course, 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 considered forces are of two types: the restoring force exerted by the springs on each mass, and a friction force to prevent a divergent increase of the velocity and to ensure that the mechanical equilibrium will be reached.

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 dependent)
 DAP <- DAP - (DAP consummation) - (Diffused DAP)
 if (random < probability of differentiation) & (enough DAP) <- Here is the DAP dependence
 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 independent)
 DAP <- DAP - (DAP consummation) - (Diffused DAP)
 if (random < probability of differentiation) <- No DAP dependence
 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

Coupling models

Finally, considering together the two models, a cell is represented by a tuple (DAP,Type,px,py,vx,vy,r).

The dynamics are simply coupled by composing functions Meca and Evol. See function step.

Parameters

As it appears in the previous algorithms, a lot of parameters can be used to obtain different kind of evolutions. We introduce the reader to the 8 parameters:

  • DT: the time step. The same time step is used in the integrations of the mechanical model and in the DAP diffusion of the biological model. An application of function step computes the evolution of system during after DT.
  • K and Mu are respectively the spring constant (all the springs share the same constant) and the friction constant.
  • R0_Gm, R0_G and R0_S are the different threshold defining the range of cells radius. They are respectively the minimal germ cell size (after division), the maximal germ cells size (before division), and the maximal somatic cells size.
  • Diff characterized the DAP diffusion rate.
  • Diffp is the probability of differentiation.
  • DEPOT is the constant DAP production of somatic cells per unit of time.
  • CONS is the constant DAP consummation of germ cells per unit of time.
  • DeathSP is the probability of death of somatic cells.
  • DivGP is the probability of division of germ cells.
  • CroitS and CroitG are respectively probability of growth of somatic and germ cells.

Results MGS-inside.png

Thanks to MGS and [http://mgs.ibisc.univ-evry.fr/ImoView05/index.html ImoView] (a software dedicated to the 3D visualization of MGS programs outputs. The input of ImoView are written in a symbolic high-level scene description languages.) we are able to generate the following animations.

In these animation, red and green spheres respectively represent germ and somatic cells. The brightness variations of the germ cells indicates the evolution of DAP concentration: the darker the color is, the lower the concentration is.

On the first line, both animations are DAP dependent simulations, while the bottom line presents two animations of DAP independent simulations. Both models (with and without dependence) qualitatively exhibit the same global behavior. Only the speed of the population growth differs; the system seems to be more efficient when a DAP dependent differentiation is considered.

The columns show another property of the system that is predicted in the phenomenological study: it exists an unstable equilibrium. On the left, the behavior corresponds to evolving organism that develops itself and colonizes the environment: that is the exponential growth of the population. On the right, parameters have been tuned to simulate a stable evolution like in a tissue or an organ. The fact that this fixed point is unstable is here verified: due to the stochastic choice done in the model, using the same set of parameters that produce right column, the population sometimes collapses in simulations, falling in the trivial fixed point.

Sources