grow  Cellzilla2D Home 
Description
grow is the main simulation wrapper for Cellzilla.
grow[DTissue, start, stop, options] is initialization mode, to start a new simulation
grow[options] is continuation mode, to pick up an old simulation where it left off. A pop up menu will ask you to click on the output folder of the original simulation.
Needs["Cellzilla2D`"];
Return Value
The name of the folder that contains the results of the simulations.
The results of the simulation are written to a collection of output files. A summary is written to the screen (notebook) after each cell division.
A new folder is created for each simuation. Simulations are written to the folder "Cellzilla" within the users home directory (i.e. ~/Cellzilla/). If this folder does not already exist it is created.
A subfolder "Simulationstodaysdate" (i.e., ~/Cellzilla/Simulationsddmonyy/) is also created each calendar day that the grow is run, if it does not already exist.
For each new simulation, a unique subfolder is created to house the results (e.g. ~/Cellzilla/Simulationsddmmyy/testcaseddmonyyhhmm/) where "testcase" is the value of the option "testcase">testcase (default value: "Growzilla"). Here dd (0131), mon (JANDEC), yy (0099) are the integer day of month, 3 character month, and two character year; and hh (0023) and mm (0059) are the integer hour and minute at which the simulation is invoked.
Files may add up to several gigabytes during a simulation. Typical files include:
 Tissues after each cell division describing the cell geometry
 Cellerator reaction network for each tissue.
 Initial conditions for each tissue
 Numerical solutions corresponding to (1) > (3) until the next cell division is indicated.
 png snapshots at each cell division.
 Single notebooks consisting of lists of time spans; lists of run parameters; and cell lineages.
Simulations can be imported and visualized with SimAnimate
It is possible to begin a new simulation from scratch using the initial conditions and tissue output. This can be useful in case the system crashes for any reason such as memory overflow.
Options
Simulation Control
"walls"→False  Set to True to include separate compartments for cell walls in growth simulations. 
"Upwards"→False  If set to True the dynamics are modified so that y' is always nonnegative. 
"MaxRadius"→Infinity  In a typical simulation the modeller may want to allow cells to "drop over the side" of the simulation when they get further away from some central area. This parameter sets the distance, measured from the "Origin" beyond which cells are removed from the simulation to save computation time and memory. 
"Origin"→{0,0}  Referred to by other parameters. 
Reactions
"Reactions"→{} 
List of Cellerator reactions to be indexed and repeated in each
cell, for example, "Reactions">{{A>B,k1},{B>A,k2}} expands to {{A[1][t]>B[1][t],k1},{A[2]>B[2][t],k1} ..., {B[1][t]>A[1][t],k2},{B[2][t]>A[2][t],k2},k2},...} The indices and the timedependence should NOT be specified in the list of reactions. However, if any rate constants depend on variables, the time dependence (in the rate constants only) MUST be specified, e.g., "Reactions">{...,{A>B,k*Q[t]]},...} expands to include {A[i][t]>B[i][t],k*Q[i][t]} for each cell. 

"WallReactions"→{}  List of Cellerator reactions to include in wall compartments.  
"Diffusion"→{}  List of diffusing species and permeabilities. For
unwalled tissues the format is "Diffusion">{{X,β_{1}}, {X,β_{1}}, ...} where each β is either a permeability constant or a pure function of three variables (cell number, cell number, edge number.) For Walled tissue, permeabilities into and out of the cell wall, as well as between wall components, are allowed to be different, and may be specified as "Diffusion">{{X,β_{out}, β_{in}, β_{wall}}, ...} 

"Intercellular"→{}  List of Cellerator GRN reactions that specify the affect of constituent X[i] (e.g., in cell i) directly on constituent Y[j] (in cell j) without any particular mechanism specified. The cells must be neighbors. Only implemented in unwalled tissue.  
"Pumps"→{} 
List of transport reactions (across cell boundary). Format is
"Pumps">{{V1, f1out, f1in},{V2, f2out,f2in},...} where each f is a function of three variables (cell number, cell number, wall number); the fout is the rate of transport out of the cell (with the first index) and the fin is the rate of transport into the cell. The rates of transport are as follows:


"BoundaryConditions"→{}  Value of constituents in compartment zero (a single compartment, cell 0, encloses the entire outer boundary), e.g., "BoundaryConditions">{A>0,B>1}. Used, e.g., for for diffusion.  
"IC"→{}  List of intial values for simulation in the form of Matheamtica rules, "IC">{A[1]>val, A[2]>val,...} 
Cell Division
"DivisionModel"  "Errera" or "Potential". Disparaged. Use in Cellzilla arrow cell⟶cell + cell instead. 
"DivisionThreshold"  Mean value of division thresholds. Disparaged. Use in Cellzilla arrow cell⟶cell + cell instead. 
"DivisionVariable"→cell  Cell division is triggered when the division variable reaches a threshold. Typically, the division variable is area. At cell birth, each cell is assigned a threshold which is distributed normally with mean "DivisionThreshold" and standard deviation "DivisionSigma". Disparaged. Use in Cellzilla arrow cell⟶cell + cell instead. 
"DivisionSigma"  Standard deviation of division thresholds. Disparaged. Use in Cellzilla arrow cell⟶cell + cell instead. 
"L1Anticlinal"→True  Force anticlinal division in L1. Ignored unless "upwards"→True 
"L2Anticlinal"→False  Force anticlinal division in L2. Ignored unless "upwards"→True Anticlinal division will be forced unless the ratio
of the eignevalues of the covariance of the vertices exceeds "L2AnticlinalRatio">GoldenRatio 
"MinAngleSpread"→135  In the potential model, the end points of the new cell wall are required to be separated by a central angle δθ as measured from the cell center. 
"Weights"  Ignored unless "DivisionModel"→"Potential" 
"IgnoreDivisionRadius" > Infinity  In a typical simulation the modeller may want to allow cells to "drop over the side" of the simulation when they get further away from some central area. This parameter sets the distance, measured from the "Origin" beyond which cell division is no longer performed, in order to save computational time and memory. 
"MaxDivisions" > Infinity  Alternate stopping criterion  the simulation will terminate when the requested number of divisions have been reached, even if the stopping time has not yet been reached. 
Growth Model
"Growing"→False;  Flag to turn growth model on/off. 
"mu"→μ  Disparaged; use in Cellzilla Arrow cell⟶cell instead. Variable name for a nonindexed spring constant. If this version is used the value of the parameter μ should be set in "parameters"→{μ→value, ...} 
"mu">{μ, f[i,j,k]}  Disparaged; use in Cellzilla Arrow cell⟶cell instead. Definition of indexed growth rate. First argument is variable
name; second argument is a pure function of three arguments. The
first two arguments are the two adjacent cell numbers, and the
third argument is the edge number. The value of μ should NOT be set in parameters. Example: "mu">{μ,(A[#1][t]+B[#2][t])&} 
"mumax"→1, "mumin"→0, "muMaxDegrees"→0 
Parameter values for anisotropic growth rate model. Values are
ignored unless "IsotropicGrowth">False. Formula is: ((μ_{max}μ_{min})Cos(θθ_{max})+μ_{min}) where θ_{max} is the value of muMaxdegrees, and the total is modulated (multiplied) by the formula for the indexed variable if mu is indexed. 
"IsotropicGrowth" → True  By default all springs grow at a fixed rate proportional to their extension beyond the resting length. The constant of proportionality is the value of the parameter "mu". This constant can also be indexed, and/or it can be allowed to be angle dependent (but only of IsotropicGrowth→True). If μ is also an indexed variable, the indexed formula will be modulated by the angledependent formula determined by mumax,mumin,muMaxDegrees. 
"muOuter">False  Special value of growth rate to use on outer boundary, unless set equal to False. 
"muL1">False  Special value of growth rate to use on anticlinal walls of L1 Cells, unless set equal to False. 
"muL1L2">False  Special value of growth rate to use on walls between L1 and L2 Cells, unless set equal to False. 
"P"> P  Disparaged. Use in Cellzilla Arrow cell⟶cell instead. Variable name for constant (fixed) pressure in all cells. A value must be set in parameters. 
"P">{P, f[i]}  Disparaged. Used in Cellzilla Arrow cell⟶cell instead. Pressure specification for indexed pressure. The first argument is the variable name, and the second argument is a pure function of one integer argument which is the cell index. If this option is used the value of pressure should not be set in parameters. 
Spring Model
"Restlength"→resting  Variable name to be used for dynamic resting length of springs. Each resting[i][t] is calcuated dynamically by the spring model. 
"EdgeVariable"→ell  Variable name to be used for dynamic length of cell wall. Each ell[i][t] is calcuated dynamically by the growth model and is the actual distance between the two vertices at a given time. 
"k"→k  Disparaged. Use in Cellzilla Arrow cell⟶cell instead. Variable name for a nonindexed spring constant. If this version is used the value of the spring constant should be set in "parameters"→{k→value, ...} 
"k">{k, f[i,j,k]}  Disparaged. Use in Cellzilla Arrow cell⟶cell instead. Definition of indexed spring constant function. First argument
is variable name; second argument is a pure function of three
arguments. The first two arguments are the two adjacent cell
numbers, and the third argument is the edge number. The value of
k should NOT be set in parameters. Example: "k">{k,(A[#1][t]+B[#2][t])&} 
"kmax"→1, "kmin"→0, "kMaxDegrees"→0 
Parameter values for anisotropic spring constant model. Values
are ignored unless "IsotropicSprings">False. Formula is: ((k_{max}k_{min})Cos(θθ_{max})+k_{min}) where θ_{max} is the value of kMaxdegrees, and the total is modulated (multiplied) by the function for the indexed variable (if k is indexed). 
"IsotropicSprings" → True  By default all springs have a fixed (constant) spring constant; this can be modified either by setting the spring constant to be an indexed variable; or by using an angledependent variable. The angle dependent variable requires "IsotropicSprings"→False (The default is True) and then utilizes the values of the parameters kmax, kmin, kMaxDegrees. If k is also an indexed variable, the indexed formula will be modulated by the angledependent formula. 
System Variables
"CellVariable"→cell  Name of variable used to area of cell i. It will always be indexed and time dependent. 
"EdgeVariable"  Name of variable used to describe length of edge i. It will always be indexed and time dependent. 
"k"  Spring constant variable. See description under spring model. Disparaged. Use in Cellzilla arrow cell⟶cell instead. 
"mu"  Growth rate variable. See description under growth model. Disparaged. Use in Cellzilla arrow cell⟶cell instead. 
"P"  Pressure variable. See description under growth model. Disparaged. Use in Cellzilla arrow cell⟶cell instead. 
"RestLength"  Spring resting length variable. See description under spring model. 
"x","y"  Coordinate variables. The coordinates of vertex i are {x[i][t],y[i][t]]} 
"center">center  center[j,1] and center[j,2] gives the x and y coordinates of the center of cell j. 
"perimeter">perimeter  perim[j] gives the perimeter of cell j. 
"tip">tip  tip[1],tip[2] give the x and y coordinates of the "tip", the vertex with the maximal y value. Intended for meristemshaped simulations. 
"tipDistance">Tip  Tip[j] give the distance from the tip to the center of cell j. 
"TipFlag">False  TipFlag[i] is an indicator function (1/0=True/False) for the cells that contain the tip vertex. (turned off by setting the value to False) 
"L1">False, "L2">False  L1[i],L2[i] are indicator functions for the L1 and L2 layers; they are turned off by default (by setting the value equal to False) 
Example
Download the following example as a zipped Mathematica notebookGrowth Movie  SimAnimate View as mov instead 
Lineage Movie  LineageAnimate View as mov instead 
Implementation Notes
A lot of output is typically produced; to reduce the amount of output, set the flag "Verbose">False. In addition, many files (potentially several gigabytes) of files are written to disk after each cell division. Typical files include:
 Tissues after each cell division describing the cell geometry
 Cellerator reaction network for each tissue.
 Initial conditions for each tissue
 Numerical solutions corresponding to (1) > (3) until the next cell division is indicated.
 png snapshots at each cell division.
 Single notebooks consisting of lists of time spans; lists of run parameters; and cell lineages.
Simulations can be imported and visualized with SimAnimate
It is possible to begin a new simulation from scratch using the initial conditions and tissue output. This can be useful in case the system crashes for any reason such as memory overflow.
See Also