You are here: Home Repository Vleaf reaction-diffusion models Reaction-diffusion dependent coloring model

Reaction-diffusion dependent coloring model

by Michael A. Guravage last modified Sep 13, 2011 03:58 PM


Meinhardt reaction-diffusion dependent coloring

Detail Description:

Meinhardt proposed that leaf venation patterns can be formed by reactions between diffusing chemicals: 

{dY\over dt} = {dA-eY+{{Y^2}\over{1+fY^2}}}

{dA\over dt} = {{cA^2S}\over{H}}-{\mu A + D_A \nabla^2A + \rho_0Y}

{dH\over dt} = cA^2S - vH + D_u \nabla^2H + \rho_1Y

{dS\over dt} = c_0 - \gamma S - \varepsilon YS + D_s \nabla^2S

with 'Y' a cell differentiation factor, 'A' a self-reinforcing activator, 'H' an inhibitor, 'S' a substrate and all the other symbols constants. 

We will run these biochemical reactions in each of the cells by implementing a set of differential equations that assume mass-action kinetics.

To allow each cell to run the reaction-diffusion equations proposed my Meinhardt, implement them in the Mydiffusionmodel:CellDynamics class method:

void Mydiffusionmodel::CellDynamics(CellBase *c, double *dchem) {
         Y = c->Chemical(0),
         A = c->Chemical(1), 
         H = c->Chemical(2), 
         S = c->Chemical(3);
  dchem[0] = ( par->d * A - par->e * Y + Y*Y/(1 + par->f * Y*Y ) );
  dchem[1] = ( par->c * A*A*S/H - par->mu * A + par->rho0*Y );
  dchem[2] = ( par->c * A*A*S - par->nu*H + par->rho1*Y );
  dchem[3] = ( par->c0 - par->gamma*S - par->eps * Y * S );


To color the cells according to the values of the chemicals, insert the following code into the Mydiffusionmodel::SetCellColor class method:

void Mydiffusionmodel::SetCellColor(CellBase *c, QColor *color) { 
  double red=c->Chemical(1)/(1.+c->Chemical(1));
  double green=c->Chemical(0)/(1.+c->Chemical(0));
  double blue=c->Chemical(3)/(1.+c->Chemical(3));


For a complete description of the equations involved, and their corresponding implementation in C++ code, please refer to the section entitled 'Reaction-diffusion and cell differentiation' in 'Building simulation models of developing plant organs using Virtualleaf.'

The protocols are included with the VirtualLeaf framework. Each protocol occupies a unique revision in the mercurial source code repository, and is marked with a  mnemonic tag. Use mercurial's update command to move to the appropriate revision:

> cd virtualleaf
> hg update -r 'rd coloring'


The protocols are not included in the framework build process. To build and install our 'divide over arbitrary axis' model type:

> cd src/protocols
> make





Language: source code

Source: : rd coloring

There are currently no items in this folder.

Document Actions
« February 2020 »