In this tutorial we show how Chaste can be used to simulate a growing cell monolayer culture
into which a simple model of Delta/Notch signalling is incorporated. This model was developed
by Collier et al. (“Pattern formation by lateral inhibition with feedback: a mathematical
model of delta-notch intercellular signalling”, J. Theor. Biol. 183:429-446) and comprises
two ODEs to describe the evolution in concentrations of Delta and Notch in each cell. The ODE
for Notch includes a reaction term that depends on the mean Delta concentration among neighbouring
cells. Thus in this simulation each cell needs to be able to access information about its
neighbours. We use the CellData class to facilitate this, and introduce a subclass
of OffLatticeSimulation called DeltaNotchOffLatticeSimulation to handle the updating
of CellData at each time step as cell neighbours change.
As in previous tutorials, we begin by including the necessary header files. We have
encountered these files already. Recall that often, either CheckpointArchiveTypes.hpp
or CellBasedSimulationArchiver.hpp must be included the first Chaste header.
The next header file defines a simple subcellular reaction network model that includes the functionality
for solving each cell’s Delta/Notch signalling ODE system at each time step, using information about neighbouring
cells through the CellData class.
The next header defines the simulation class modifier corresponding to the Delta-Notch SRN model.
This modifier leads to the CellData cell property being updated at each timestep to deal with Delta-Notch signalling.
Having included all the necessary header files, we proceed by defining the test class.
Test 1: a vertex-based monolayer with Delta/Notch signalling#
In the first test, we demonstrate how to simulate a monolayer that incorporates
Delta/Notch signalling, using a vertex-based approach.
We include the next line because vertex simulations cannot be run in parallel
First we create a regular vertex mesh.
We then create some cells, each with a cell-cycle model, UniformG1GenerationalCellCycleModel and a subcellular reaction network model
DeltaNotchSrnModel, which
incorporates a Delta/Notch ODE system, here we use the hard coded initial conditions of 1.0 and 1.0.
In this example we choose to make each cell differentiated,
so that no cell division occurs.
We choose to initialise the concentrations to random levels in each cell.
Using the vertex mesh and cells, we create a cell-based population object, and specify which results to
output to file.
We are now in a position to create and configure the cell-based simulation object, pass a force law to it,
and run the simulation. We can make the simulation run for longer to see more patterning by increasing the end time.
Then, we define the modifier class, which automatically updates the values of Delta and Notch within the cells in CellData and passes it to the simulation.
This modifier assigns target areas to each cell.
To visualize the results, use Paraview. See the Visualizing With Paraview tutorial for more information.
Load the file $CHASTE_TEST_OUTPUT/TestVertexBasedMonolayerWithDeltaNotch/results_from_time_0/results.pvd.
Test 2 - a node-based monolayer with Delta/Notch signalling#
In the next test we run a similar simulation as before, but this time with node-based
‘overlapping spheres’ model.
We include the next line because HoneycombMeshGenerator, used in this test, is not
yet implemented in parallel.
Most of the code in this test is the same as in the previous test,
except we now create a ’nodes-only mesh’ and NodeBasedCellPopulation.
The mechanics cut-off length (second argument) is used in this simulation to determine nearest
neighbours for the purpose of the Delta/Notch intercellular signalling model.
We choose to initialise the concentrations to random levels in each cell.
Again we define the modifier class, which automatically updates the values of Delta and Notch within the cells in CellData and passes it to the simulation.
As we are using a node-based cell population, we use an appropriate force law.
To visualize the results, use Paraview. See the Visualizing With Paraview tutorial for more information.
Load the file $CHASTE_TEST_OUTPUT/TestNodeBasedMonolayerWithDeltaNotch/results_from_time_0/results.pvd,
and add a spherical glyph.
Note that, for larger simulations, you may need to unclick “Mask Points” (or similar) so as not to limit the number of glyphs
displayed by Paraview.