Convert to 2D
Converting the model from the previous chapter into a 2D model is trivial in Morpheus. In the
Space section, you only need to change the
Size of the
Lattice to e.g.
20,20,0, and the
20,20,0is pretty small, but for demonstration purposes we will use this system size in the following.
The most complicated part is to set up the initial conditions in order to get spiral waves. Here, we define
u to be non-zero in a square in the middle of the lattice and
v to be non-zero in the top-right quarter of the lattice. This suffices to obtain spirals. You can do this with an expression with
Property or with
InitProperty similarly to the 1D model we have just discussed.
Without further changes, you will see a simulation with popagating spiral waves, in a discrete lattice of square cells.
Adding CPM Cells
To move away from these regular and static cells and add motility and cell mechanics, we will now include cellular Potts sampling to our model.
This is actually surprisingly easy. In our existing
CellTypes section, we only need to add
VolumeConstraint and a
SurfaceConstraint that together make up the energy function for our cellular Potts model (CPM) to maintain a certain ratio between the size and the perimeters of the cells.
In addition, we need to specify some CPM-specific parameters in the
CPM section of the model. In particular, we need to add a
MonteCarloSampler and specify the
temperature of the
MetropolisKinetics which defines the amount of stochasticity in membrane fluctuations.
Another important parameter here is the
MCSDuration. Typically, and by default, it is set to
1.0 to define one simulation time step as one Monte Carlo step (where on average every lattice point has been updated). Here, however, we want the simulation time to be determined by the dynamics of the Barkley model and scale the CPM model relative to this timescale. Here, we set the
0.1 such that we simulate
10 CPM Monte Carlo steps for each simulation time step.
Since our cells will now become larger than a single lattice site, we obviously need to increase the
Size of the
Lattice and change the initial configuration. We’ll use a
InitRectangle to distribute our cell seeds over the lattice and
InitVoronoi to render a Voronoi tessellation from these seeds.
Once set up, you will see a simulation like the one below. Note that the velocity and shape of the wave are not deterministic anymore because wave propagation is mediated by cell-cell contacts and these are governed by the stochastic cellular Potts model.
Coupling Signals to Biomechanics
In the simulation above, the CPM dynamics affect the wave propagation. However, the wave itself does not affect CPM. Now, we’ll add some juice and realize a mutual coupling between the intracellular dynamics and tissue mechanics.
Here, we will assume two types of coupling:
- We assume cells contract based on the concentration of
v. To implement this, we can use a mathematical expression instead of a value for the cell’s target area
- We assume that cells become more adherent to each other as a function of the concentration of
u. This can be modelled using the
Contact, optionally employing more specialised plugins such as
HomophilicAdhesion. This modulates the cell-contact energy based on binding between two identical adhesives on adjacent cells, here represented by
Finally, to make the effect visually more dramatic, we do not simulate a confluent tissue, but only a fragment. We do this with the
InitCellObjects initializer that let’s you arrange cells within geometric objects such as boxes or circles.
As you can see, during the propagation of the wave, cells contract and become smaller due to the effect of the intracellular model variables on the cell mechanics. On the level of the tissue, we see cells moving back and forth in wavy patterns, which is most clearly visible at the tissue boundary.