Session 6: simulating crypt homeostasis in Chaste
Cell-based Chaste workshopThursday 5th January 2012
Summary of crypt model
• In the model by van Leeuwen et al. (2009), every virtual cell carries a continuum cell-cycle control model that is coupled to an intracellular Wnt signalling network.
• Given a certain Wnt stimulus, the Wnt model determines availability of key components of the cell-cycle model, which in turn defines whether a cell is ready to divide or differentiate.
• Spatial variations in the extracellular Wnt signal translate into position-dependent cell proliferation and differentiation rates.
• As Wnt signalling is allowed to interfere with cell–cell junctions, variable adhesion can occur within our in silico crypts.
• A mechanical model, describing the attachment of cells to the underlying substrate and the attractive/repulsive forces between cells, determines cell migration.
Model geometry
• For simplicity we focus on an individual crypt, treating the 3D tubular crypt as a monolayer of cells lying on a cylindrical surface.
• We take a discrete approach, modelling each cell individually.
• For simulation purposes, it is convenient to roll the crypt out onto a flat planar domain and impose periodic boundary conditions on the left and right sides.
Mechanical model
Mechanical model
• We determine cell movement by balancing forces exerted on an individual cell by its neighbours with a drag force:
• When a cell divides, a new cell is placed a smaller fixed distance away in a random direction.
• The rest length between the two daughter cells increases linearly over the course of an hour to the mature cell rest length (to emulate the mitosis phase of the cell-cycle).
Wnt signalling model
• We impose a steady linear Wnt profile up the crypt.
• To characterise each cell’s Wnt response, we use simple ODE model of the Wnt-dependent progress through the cell cycle, based on the cell-cycle model developed by Swat et al. (2004).
• We solve the system of ODEs numerically for each cell to calculate concentrations at the next timestep based on initial concentrations and Wnt exposure at the current timestep.
• Since the Wnt model incorporates the dual role of b-catenin in Wnt signal transduction and cell-cell adhesion, we can quantify the levels of adhesion and transcription complexes for each cell.
Wnt-dependent cell-cycle model
• The level of transcription complexes and target-protein synthesis rates are used to link the output of the Wnt signalling model to a recent ODE model of the cell-cycle.
• According to the resulting model, cells exposed to a strong Wnt signal progress more quickly through the cell cycle than cells exposed to low Wnt.
Wnt-dependent cell-cycle model
• Hence, inclusion of a spatially varying Wnt signal into our multiscale model gives rise to cell cycles whose duration is position-dependent.
• Due to the cell-cycle model’s bistability, there is a threshold Wnt level below which the G1/S checkpoint can never be passed: such cells are considered differentiated.
• De-differentiation may occur.
Putting it all together
WNT SIGNALLING
MODEL
CELL CYCLE MODEL
CELL MECHANICS
MODEL
Cell-celladhesion
Target protein synthesis
Cell size
Biochemical cues
Cell neighbours
Cell position
MovementProliferation/
Differentiation
Implementation
• Create a suitable mesh using CylindricalHoneycombMeshGenerator– Use GetCylindricalMesh() to generate a Cylindrical2dMesh– Use GetCellLocationIndices() to store which nodes correspond to
‘real’ cells
• Create a vector of cells using CryptCellsGenerator– This class is templated over cell cycle model– Use Generate() to populate a vector of cells
• Create a MeshBasedCellPopulationWithGhostNodes
• Set up a WntConcentration singleton– Call SetType(), SetCellPopulation() and SetCryptLength()
Implementation
• Set up a CryptSimulation2d object using the cell population– Call SetOutputDirectory() and SetEndTime()
• Create a force object to simulate cell mechanics– E.g. MAKE_PTR(GeneralisedLinearSpringForce<2>, p_force)– Call AddForce() on the CryptSimulation2d object
• Create a cell killer object to simulate sloughing at the top of the crypt– E.g. MAKE_PTR_ARGS(SloughingCellKiller<2>, p_killer,
(&population, height))– Call AddCellKiller() on the CryptSimulation2d object
• Call Solve() on the CryptSimulation2d object
Implementation
• Documentation and further details of the class hierarchy are available on the wiki.
• You will find the tutorials for this session here:– UserTutorials/RunningMeshBasedCryptSimulations– UserTutorials/RunningVertexBasedCryptSimulations
• These will guide you through the implementation of various crypt models.
• Further exercises are also suggested for those who are interested.