User Tools

Site Tools


examples:multiscale

Multiscale models

Coupling spatial models: Autocrine chemotaxis

Cell cluster due to chemotaxis towards self-produced chemoattractant

Introduction

This example models a cellular Potts model for autocrine chemotaxis by coupling a CPM to a diffusive chemoattractant.

Model description

It exemplifies the combination of a CPM with a PDE through the chemotaxis towards a diffusive chemoattractant produced by cells. The CellType has a Property p (production rate) which is positive within biological cells, and is zero in the medium 'cell type'. The symbol p can than be used in the PDE as the production term for species or Layer U. In this way, U is produced in each lattice node that is occupied by a cell, and is not produced outside of cells. At the same time, cells perform Chemotaxis towards the chemoattractant U.

The simulation is visualized using some advances Gnuplotter feature. Cells are superimposed on the PDE and appear as transparent domains (see opacity). Moreover, the concentration gradient of the PDE is emphasized by the use of isolines that draws contours as positions with equal concentration.

Model

AutocrineChemotaxis.xml

<MorpheusModel version="3">
    <Description>
        <Title>Example-AutocrineChemotaxis</Title>
        <Details></Details>
    </Description>
    <Global>
        <Field symbol="U" value="0" name="chemoattractant">
            <Diffusion rate="0.1"/>
        </Field>
        <System solver="euler" time-step="10.0">
            <DiffEqn symbol-ref="U">
                <Expression>p - d*U</Expression>
            </DiffEqn>
            <Constant symbol="d" value="0.01" name="degradation U"/>
        </System>
        <Constant symbol="cell_density" value="0.003"/>
    </Global>
    <Space>
        <Lattice class="square">
            <Size symbol="size" value="200 200 0"/>
            <BoundaryConditions>
                <Condition boundary="x" type="periodic"/>
                <Condition boundary="y" type="periodic"/>
            </BoundaryConditions>
            <NodeLength value="1.0"/>
            <Neighborhood>
                <Distance>2.5</Distance>
            </Neighborhood>
        </Lattice>
        <SpaceSymbol symbol="space"/>
    </Space>
    <Time>
        <StartTime value="0"/>
        <StopTime value="2.5e4"/>
        <SaveInterval value="0"/>
        <RandomSeed value="0"/>
        <TimeSymbol symbol="time"/>
    </Time>
    <CellTypes>
        <CellType class="biological" name="cells">
            <!--    <Disabled>
        <Property symbol="cell" value="1.0"/>
    </Disabled>
-->
            <Property symbol="c" value="100.0" name="chemotactic strength"/>
            <Property symbol="p" value="0.01" name="production chemoattractant"/>
            <Property symbol="neighbors" value="0" name="number of neighboring cells"/>
            <VolumeConstraint target="60" strength="1"/>
            <SurfaceConstraint target="0.85" mode="aspherity" strength="1"/>
            <Chemotaxis field="U" contact-inhibition="false" strength="c" retraction="true"/>
            <NeighborhoodReporter>
                <Input scaling="cell" value="cell.type == celltype.cells.id"/>
                <Output symbol-ref="neighbors" mapping="sum"/>
            </NeighborhoodReporter>
        </CellType>
        <CellType class="medium" name="medium">
            <Constant symbol="neighbors" value="0.0"/>
            <Constant symbol="p" value="0.0" name="production"/>
        </CellType>
    </CellTypes>
    <CPM>
        <Interaction default="0.0">
            <Contact type1="cells" type2="medium" value="-10"/>
            <Contact type1="cells" type2="cells" value="-20"/>
        </Interaction>
        <MonteCarloSampler stepper="edgelist">
            <MCSDuration value="1.0"/>
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
            <MetropolisKinetics temperature="10.0"/>
        </MonteCarloSampler>
        <ShapeSurface scaling="norm">
            <Neighborhood>
                <Distance>2.5</Distance>
            </Neighborhood>
        </ShapeSurface>
    </CPM>
    <CellPopulations>
        <Population size="0" type="cells">
            <InitRectangle mode="regular" number-of-cells="cell_density * size.x * size.y">
                <Dimensions size="size.x, size.y, 0" origin="0.0, 0.0, 0.0"/>
            </InitRectangle>
        </Population>
    </CellPopulations>
    <Analysis>
        <Gnuplotter time-step="500" decorate="false">
            <Terminal opacity="0.55" persist="true" name="png"/>
            <Plot>
                <Field symbol-ref="U" isolines="5" min="0.0" surface="true"/>
                <Cells>
                    <ColorMap>
                        <Color value="2.0" color="gray"/>
                        <Color value="0" color="gray"/>
                    </ColorMap>
                </Cells>
            </Plot>
        </Gnuplotter>
        <DependencyGraph format="svg" exclude-plugins="Gnuplotter"/>
    </Analysis>
</MorpheusModel>

In Morpheus GUI: Examples → Multiscale → AutocrineChemotaxis.xml


Coupling CPM and PDE: Vascular patterning

Cells organize into networks due to matrix-anchorage of chemoattractant

Introduction

This example shows a model of vascular network formation by paracrine signaling (Köhn-Luque et al., 2011) and employs a coupled CPM and reaction-diffusion model.

Model description

The model defines a CPM as well as a PDE. These models are coupled by two processes:

  1. Cells, specified in CellTypes, respond chemotactically to a Layer (or species) in the PDE
  2. Conversely, the production term of one PDE Layer is coupled to the presence/absence of cell.

Model

VascularPatterning.xml

<MorpheusModel version="3">
    <Description>
        <Title>Example-VascularPatterning</Title>
        <Details>Reference:
- A Köhn-Luque, W de Back, Y Yamaguchi, K Yoshimura, M A Herrero, T Miura (2013) Dynamics of VEGF matrix-retention in vascular network patterning, Physical Biology, 10(6) : 066007
http://dx.doi.org/10.1088/1478-3975/10/6/066007

Related to:
- Köhn-Luque A, de Back W, Starruß J, Mattiotti A, Deutsch A, Perez-Pomares JM, Herrero MA (2011) Early Embryonic Vascular Patterning by Matrix-Mediated Paracrine Signalling: A Mathematical Model Study. PLoS ONE 6(9): e24175.
http://dx.doi.org/10.1371/journal.pone.0024175

</Details>
    </Description>
    <Global>
        <Field symbol="u" value="1.5e-6" name="VEGF">
            <Diffusion rate="58.7"/>
        </Field>
        <Field symbol="s" value="0" name="Free ECM">
            <Diffusion rate="0.001"/>
        </Field>
        <Field symbol="b" value="0" name="VEGF_b">
            <Diffusion rate="0"/>
        </Field>
        <Field symbol="VEGF_all" value="0" name="VEGF_s + VEGF_b">
            <Diffusion rate="0"/>
        </Field>
        <System solver="heun" time-step="5.0">
            <Constant symbol="gamma" value="5e-3" name="Production ECM"/>
            <Constant symbol="k_on" value="8.5e-4" name="Binding rate VEGF/ECM"/>
            <Constant symbol="k_off" value="3.6e-3" name="Unbinding rate VEGF/ECM"/>
            <Constant symbol="delta" value="2.6e-6" name="Decay VEGF "/>
            <DiffEqn symbol-ref="u">
                <Expression>- k_on*u*s + k_off*b - delta*u</Expression>
            </DiffEqn>
            <DiffEqn symbol-ref="s">
                <Expression>gamma*cell - k_on*u*s+k_off*b</Expression>
            </DiffEqn>
            <DiffEqn symbol-ref="b">
                <Expression>k_on*u*s - k_off*b</Expression>
            </DiffEqn>
            <Rule symbol-ref="VEGF_all">
                <Expression>u+b</Expression>
            </Rule>
        </System>
        <Constant symbol="cell" value="0.0"/>
        <Constant symbol="cell_density" value="0.0045"/>
    </Global>
    <Space>
        <Lattice class="square">
            <Size symbol="size" value="200 200 0"/>
            <BoundaryConditions>
                <Condition boundary="x" type="periodic"/>
                <Condition boundary="y" type="periodic"/>
            </BoundaryConditions>
            <NodeLength value="2"/>
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
        </Lattice>
        <SpaceSymbol symbol="l"/>
    </Space>
    <Time>
        <StartTime value="0"/>
        <StopTime value="3600"/>
        <SaveInterval value="0"/>
        <RandomSeed value="1"/>
        <TimeSymbol symbol="t"/>
    </Time>
    <CellTypes>
        <CellType class="biological" name="HUVEC">
            <Property symbol="cell" value="1.0" name="cell"/>
            <Property symbol="str" value="3e7" name="chemotactic strength"/>
            <VolumeConstraint target="90" strength="1"/>
            <Chemotaxis field="b" contact-inhibition="false" strength="str" retraction="false"/>
            <!--    <Disabled>
        <AddCell mode="exclude">
            <Condition>rand_uni(0,1) &lt; 0.24 + 0.0*t</Condition>
            <Triggers/>
            <Distribution>l.x / size.x</Distribution>
        </AddCell>
    </Disabled>
-->
        </CellType>
        <CellType class="medium" name="medium"/>
    </CellTypes>
    <CPM>
        <Interaction default="0">
            <Contact type1="medium" type2="HUVEC" value="3.2"/>
            <Contact type1="HUVEC" type2="HUVEC" value="6.4"/>
        </Interaction>
        <MonteCarloSampler stepper="edgelist">
            <MCSDuration value="1.0"/>
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
            <MetropolisKinetics temperature="1"/>
        </MonteCarloSampler>
        <ShapeSurface scaling="norm">
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
        </ShapeSurface>
    </CPM>
    <CellPopulations>
        <Population size="0" type="HUVEC">
            <InitRectangle mode="regular" number-of-cells="cell_density * size.x * size.y">
                <Dimensions size="200,200,0" origin="0,0,0"/>
            </InitRectangle>
        </Population>
    </CellPopulations>
    <Analysis>
        <Gnuplotter time-step="250" decorate="false">
            <Terminal opacity="0.65" name="png"/>
            <Plot>
                <Field symbol-ref="b"/>
                <Cells value="cell">
                    <ColorMap>
                        <Color value="1" color="gray"/>
                        <Color value="0.0" color="gray"/>
                    </ColorMap>
                </Cells>
            </Plot>
        </Gnuplotter>
        <!--    <Disabled>
        <HistogramLogger normalized="false" number-of-bins="10" time-step="100">
            <Plot minimum="0" maximum="1.0" terminal="png"/>
            <Column symbol-ref="cell.id" celltype="Angioblasts"/>
        </HistogramLogger>
    </Disabled>
-->
        <DependencyGraph format="svg" exclude-plugins="Gnuplotter, CPM" exclude-symbols="cell, cell.center, str_2"/>
    </Analysis>
</MorpheusModel>

In Morpheus GUI: Examples → Multiscale → VascularPatterning.xml

Reference

Köhn-Luque A, de Back W, Starruß J, Mattiotti A, Deutsch A, et al. Early Embryonic Vascular Patterning by Matrix-Mediated Paracrine Signalling: A Mathematical Model Study. PLoS ONE 6(9): e24175, 2011


ODEs in CPM cells: Cell cycle and proliferation

Cells divide according to an oscillatory ODE model representing the early cell cycle in Xenopus.

Introduction

This multiscale model example shows

  1. how to define a coupled system of continuous ODEs in discrete CPM cells
  2. how to specify and change time scales between these model formalisms

Model description

This model specifies an oscillatory ODE model representing the cell cycle in Xenopus oocytes using three components (CDK1, Plk1, APK) (Ferrell et al., Cell, 2011) (see CellTypes→CellType→System). This ODE model is coupled to 2D shaped CPM cells that perform divide based on the concentration of these components (see CellTypes→CellType→Proliferation→Condition). As in the early Xenopus cell cleavage, this leads to exponential growth of the number of cells, without increase of total cell volume.

Time scales

Time scales are defined in the following fashion:

  • The so-called global time scheme is defined in Time and here runs from 0 to 1 arbitrary time units. All models and plugins specify their updating scheme in terms this global time scheme (e.g. Analysis→Gnuplotter→interval).
  • The CPM time scale for cell motility and behaviors is defined in CPM→MCSDuration. This specifies the time that a single Monte Carlo step in the CPM lasts, in terms of the 'global time'. Here, the MCSDuration is $1.0\cdot10^{-4}$ which means the CPM is executed 10.000 times during this simulation.
  • For setting time of ODEs, one has to distinguish the (1) how often the ODEs are evaluated from (2) controlling the time scale of the ODE dynamics:
    1. The time scale of the ODE dynamics can be changed using System→time-scaling. When larger or smaller than $1.0$, this speeds up or slows down make the dynamics, without influencing the accuracy of the approximation.
    2. The accuracy of the numerical approximation (and is equal to the $\Delta t$ of the numerical solver) is controlled using System→time-step (and is automatically rescaled according to the time scale).

Things to try

  • Change the CPM time scale, relative to the ODE dynamics: Change CPM→MCSDuration to $1.0\cdot10^{-3}$ or decrease to $1.0\cdot10^{-5}$. This makes cells to have less resp. more motility/relaxation in between cell divisions.
  • Change the time scale of the ODE dynamics, relative to the CPM by altering System→time-scaling.

Model

CellCycle.xml

<?xml version='1.0' encoding='UTF-8'?>
<MorpheusModel version="3">
    <Description>
        <Title>Example-CellCycle</Title>
        <Details>ODE model of Xenopus oocyte cell cycle adopted from:

James Ferrell, Tony Yu-Chen Tsai and Qiong Yang (2011) Modeling the Cell Cycle: Why Do Certain Circuits Oscillate?, Cell 144, p874-885. http://dx.doi.org/10.1016/j.cell.2011.03.006</Details>
    </Description>
    <Global/>
    <Space>
        <Lattice class="hexagonal">
            <Size symbol="size" value="250 250 0"/>
            <BoundaryConditions>
                <Condition boundary="x" type="periodic"/>
                <Condition boundary="y" type="periodic"/>
            </BoundaryConditions>
            <Neighborhood>
                <Order>1</Order>
            </Neighborhood>
        </Lattice>
        <SpaceSymbol symbol="space"/>
    </Space>
    <Time>
        <StartTime value="0"/>
        <StopTime value="1"/>
        <TimeSymbol symbol="time"/>
        <RandomSeed value="3445"/>
    </Time>
    <CellTypes>
        <CellType class="biological" name="cells">
            <Property symbol="CDK1" value="0" name="Cyclin-dependent kinase 1"/>
            <Property symbol="Plk1" value="0" name="Polo-like kinase 1"/>
            <Property symbol="APC" value="0" name="Anaphase-promoting complex"/>
            <System solver="runge-kutta" time-scaling="20" time-step="4e-2">
                <DiffEqn symbol-ref="CDK1">
                    <Expression>α1 - β1 * CDK1 * (APC^n / (K^n + APC^n))</Expression>
                </DiffEqn>
                <DiffEqn symbol-ref="Plk1">
                    <Expression>α2*(1-Plk1) * ((CDK1^n) / (K^n + CDK1^n)) - β2*Plk1</Expression>
                </DiffEqn>
                <DiffEqn symbol-ref="APC">
                    <Expression>α3*(1- APC) * ((Plk1^n) / (K^n + Plk1^n)) - β3*APC</Expression>
                </DiffEqn>
                <Constant symbol="n" value="8" name="Hill coefficient"/>
                <Constant symbol="K" value="0.5" name="Michaelis constant"/>
                <Constant symbol="α1" value="0.1"/>
                <Constant symbol="α2" value="3.0"/>
                <Constant symbol="α3" value="3.0"/>
                <Constant symbol="β1" value="3.0"/>
                <Constant symbol="β2" value="1.0"/>
                <Constant symbol="β3" value="1.0"/>
            </System>
            <Property symbol="p" value="0" name="portion"/>
            <Property symbol="d" value="0" name="divisions"/>
            <Property symbol="c" value="0" name="division timeout"/>
            <Property symbol="cc" value="1" name="cellcount"/>
            <Property symbol="Vt" value="25000" name="Target volume"/>
            <VolumeConstraint target="Vt" strength="1"/>
            <SurfaceConstraint target="1.0" mode="aspherity" strength="1"/>
            <Event>
                <Condition>CDK1&lt;0.2</Condition>
                <Rule symbol-ref="c">
                    <Expression>0</Expression>
                </Rule>
            </Event>
            <CellDivision division-plane="minor">
                <Condition>if(CDK1 > 0.5 and c == 0, 1, 0)</Condition>
                <Triggers>
                    <Rule symbol-ref="d">
                        <Expression>d+0.5</Expression>
                    </Rule>
                    <Rule symbol-ref="c">
                        <Expression>1</Expression>
                    </Rule>
                    <Rule symbol-ref="Vt">
                        <Expression>Vt/2</Expression>
                    </Rule>
                </Triggers>
            </CellDivision>
        </CellType>
    </CellTypes>
    <CPM>
        <Interaction default="0">
            <Contact type1="cells" type2="cells" value="-20"/>
        </Interaction>
        <MonteCarloSampler stepper="edgelist">
            <MCSDuration value="5e-5"/>
            <Neighborhood>
                <Order>1</Order>
            </Neighborhood>
            <MetropolisKinetics temperature="10" yield="0.1"/>
        </MonteCarloSampler>
        <ShapeSurface scaling="norm">
            <Neighborhood>
                <Order>3</Order>
            </Neighborhood>
        </ShapeSurface>
    </CPM>
    <CellPopulations>
        <Population size="0" type="cells">
            <InitCellObjects mode="order">
                <Arrangement repetitions="1, 1, 1" displacements="1, 1, 1">
                    <Object>
                        <Sphere radius="40" center="125 100 0"/>
                    </Object>
                </Arrangement>
            </InitCellObjects>
            <InitProperty symbol-ref="CDK1">
                <Expression>0.25</Expression>
            </InitProperty>
        </Population>
    </CellPopulations>
    <Analysis>
        <Gnuplotter time-step="0.05" decorate="false">
            <Terminal name="png"/>
            <Plot>
                <Cells value="CDK1">
                    <ColorMap>
                        <Color value="0.5" color="red"/>
                        <Color value="0.2" color="yellow"/>
                    </ColorMap>
                </Cells>
            </Plot>
        </Gnuplotter>
        <Logger time-step="2e-3">
            <Input>
                <Symbol symbol-ref="APC"/>
                <Symbol symbol-ref="CDK1"/>
                <Symbol symbol-ref="Plk1"/>
            </Input>
            <Output>
                <TextOutput file-format="csv"/>
            </Output>
            <Plots>
                <Plot time-step="-1">
                    <Style style="points" line-width="4.0"/>
                    <Terminal terminal="png"/>
                    <X-axis>
                        <Symbol symbol-ref="time"/>
                    </X-axis>
                    <Y-axis>
                        <Symbol symbol-ref="APC"/>
                        <Symbol symbol-ref="CDK1"/>
                        <Symbol symbol-ref="Plk1"/>
                    </Y-axis>
                </Plot>
                <Plot time-step="-1">
                    <Style style="points" line-width="4.0"/>
                    <Terminal terminal="png"/>
                    <X-axis>
                        <Symbol symbol-ref="CDK1"/>
                    </X-axis>
                    <Y-axis>
                        <Symbol symbol-ref="APC"/>
                    </Y-axis>
                    <Color-bar>
                        <Symbol symbol-ref="Plk1"/>
                    </Color-bar>
                </Plot>
            </Plots>
            <Restriction>
                <Celltype celltype="cells"/>
            </Restriction>
        </Logger>
    </Analysis>
</MorpheusModel>

In Morpheus GUI: Examples → Multiscale → CellCycle.xml


Dictyostelium

Aggregation of amoebas through chemotaxis towards waves of cAMP.

Introduction

This model show chemotactic aggregation of Dictyostelium. It was constructed by students attending the ECMI modeling week 2012 in Dresden.

Model description

This model shows an interesting coupling between CPM cells and reaction-diffusion PDE. Cell state depends on the perceived concentration of cAMP, and determines whether a cell produces cAMP and whether it performs chemotaxis. The PDE is governed by a Fitzhugh-Nagumo-like model of an excitable medium, which causes traveling waves upon excitation. Chemotaxis through those waves causes cell aggregation.

Background colors indicate the cAMP concentration. Cells are color-coded according to their phase: excitable/resting (yellow), excited/chemotactic (green), refractory/resting (red).

Model

Dictyostelium.xml

<?xml version='1.0' encoding='UTF-8'?>
<MorpheusModel version="3">
    <Description>
        <Title>Example-Dictyostelium</Title>
        <Details>Aggregation of dictyostelium by chemotactic amoeba as excitable medium mediated by diffusive cAMP signal.

Original reference:
- Nicholas Savill and Paulien Hogeweg, Modelling morphogenesis: from single cells to crawling slugs, J. Theo. Biol., 1997.

Morpeus implementation by ECMI 2012 summer course:
- A. Quintero, M. Myllykoski, A. Igolkina, A. Freltoft, N. Dixit, F. Rost, Morphogenesis and Dynamics of Multicellular Systems, ECMI Newletter 52, 2012.</Details>
    </Description>
    <Global>
        <Field symbol="c" value="0" name="cAMP">
            <Diffusion rate="1"/>
            <BoundaryValue boundary="x" value="0"/>
            <BoundaryValue boundary="-x" value="0"/>
            <BoundaryValue boundary="y" value="0"/>
            <BoundaryValue boundary="-y" value="0"/>
        </Field>
        <Field symbol="r" value="0" name="refractoriness">
            <Diffusion rate="0"/>
            <BoundaryValue boundary="x" value="0"/>
            <BoundaryValue boundary="-x" value="0"/>
            <BoundaryValue boundary="y" value="0"/>
            <BoundaryValue boundary="-y" value="0"/>
        </Field>
        <System solver="euler" time-step="0.1">
            <Constant symbol="c1" value="0.0065"/>
            <Constant symbol="c2" value="0.841"/>
            <DiffEqn symbol-ref="c">
                <Expression>is_amoeba*(-f -r)</Expression>
            </DiffEqn>
            <DiffEqn symbol-ref="r">
                <Expression>is_amoeba*epsilon*(3.5*c-b-r)</Expression>
            </DiffEqn>
            <Function symbol="epsilon">
                <Expression>if(c &lt; c1, 0.5,
 if(c &lt; c2, 0.0589,
  0.5))</Expression>
            </Function>
            <Function symbol="f">
                <Expression>if(c &lt; c1, 20*c,
 if(c &lt; c2, -3*c+0.15,
  15*(c-1)))</Expression>
                <!--    <Disabled>
        <Expression>-3*c</Expression>
    </Disabled>
-->
            </Function>
        </System>
    </Global>
    <Space>
        <Lattice class="square">
            <Size symbol="l" value="150 150 0"/>
            <BoundaryConditions>
                <Condition boundary="x" type="constant"/>
                <Condition boundary="-x" type="constant"/>
                <Condition boundary="y" type="constant"/>
                <Condition boundary="-y" type="constant"/>
            </BoundaryConditions>
            <NodeLength value="0.37"/>
            <Neighborhood>
                <Distance>1.5</Distance>
            </Neighborhood>
        </Lattice>
        <SpaceSymbol symbol="space"/>
    </Space>
    <Time>
        <StartTime value="0"/>
        <StopTime symbol="end" value="750"/>
        <TimeSymbol symbol="time"/>
        <RandomSeed value="1357906713"/>
    </Time>
    <CellTypes>
        <CellType class="medium" name="medium">
            <Property symbol="b" value="0"/>
            <Property symbol="max_c" value="0"/>
            <Property symbol="phase" value="0"/>
            <Property symbol="is_amoeba" value="0"/>
        </CellType>
        <CellType class="biological" name="amoeba">
            <VolumeConstraint target="40" strength="1"/>
            <Chemotaxis field="c" strength="mu"/>
            <Property symbol="is_amoeba" value="1.0"/>
            <Property symbol="b" value="0"/>
            <Property symbol="max_c" value="0"/>
            <Property symbol="phase" value="1"/>
            <Property symbol="phaseTime" value="0"/>
            <Property symbol="phase2duration" value="0.1"/>
            <Function symbol="mu">
                <Expression>if(phase == 2, 200, 0)</Expression>
            </Function>
            <System solver="heun" time-step="1.0">
                <Rule symbol-ref="phaseTime">
                    <Expression>if(phase == 2, phaseTime+MCStime, 0)</Expression>
                </Rule>
                <Rule symbol-ref="phase" name="Rule_2_3">
                    <Expression>if(phase == 1 and max_c > 0.1, 2,
if(phase == 2 and phaseTime>phase2duration, 3,
if(phase == 3 and max_c &lt; 0.05, 1,
phase
))) </Expression>
                </Rule>
            </System>
            <Mapper>
                <Input value="c"/>
                <Output symbol-ref="max_c" mapping="maximum"/>
            </Mapper>
        </CellType>
        <CellType class="biological" name="autoAmoeba">
            <VolumeConstraint target="40" strength="1"/>
            <Property symbol="b" value="0.5"/>
            <Property symbol="max_c" value="0"/>
            <Property symbol="phase" value="0"/>
            <Property symbol="is_amoeba" value="1.0"/>
        </CellType>
    </CellTypes>
    <CPM>
        <Interaction>
            <Contact type1="amoeba" type2="amoeba" value="4"/>
            <Contact type1="amoeba" type2="medium" value="2"/>
            <Contact type1="amoeba" type2="autoAmoeba" value="4"/>
            <Contact type1="autoAmoeba" type2="medium" value="3"/>
        </Interaction>
        <MonteCarloSampler stepper="edgelist">
            <MCSDuration symbol="MCStime" value="0.5"/>
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
            <MetropolisKinetics temperature="1.0" yield="0.1"/>
        </MonteCarloSampler>
        <ShapeSurface scaling="norm">
            <Neighborhood>
                <Distance>1.5</Distance>
            </Neighborhood>
        </ShapeSurface>
    </CPM>
    <CellPopulations>
        <Population size="1" type="autoAmoeba">
            <InitRectangle mode="regular" number-of-cells="1">
                <Dimensions size="10, 10, 0" origin="l.x/2, l.y/2, 0"/>
            </InitRectangle>
        </Population>
        <Population size="1" type="amoeba">
            <InitRectangle mode="regular" number-of-cells="250">
                <Dimensions size="l" origin="3,3,0"/>
            </InitRectangle>
        </Population>
    </CellPopulations>
    <Analysis>
        <Gnuplotter time-step="5" decorate="false">
            <Terminal opacity="0.65" size="400 400 0" name="png"/>
            <Plot>
                <Field symbol-ref="c" min="0" max="1.0">
                    <ColorMap>
                        <Color value="0" color="white"/>
                        <Color value="0.5" color="yellow"/>
                        <Color value="1.0" color="red"/>
                    </ColorMap>
                </Field>
                <Cells value="phase" min="0" max="3">
                    <ColorMap>
                        <Color value="0" color="black"/>
                        <Color value="1" color="yellow"/>
                        <Color value="2" color="green"/>
                        <Color value="3" color="red"/>
                    </ColorMap>
                </Cells>
            </Plot>
        </Gnuplotter>
        <DependencyGraph format="svg" exclude-plugins="Gnuplotter"/>
    </Analysis>
</MorpheusModel>

In Morpheus GUI: Examples → Multiscale → Dictyostelium.xml

References


MembraneProperties: Cell polarization and chemotaxis

Note: MembraneProperties are not available in public version of Morpheus.

Cell dynamically re-polarizes in response to switching external gradient

Introduction

This model of cell polarity shows the coupling of three model formalisms:

  • A cellular Potts model
  • A PDE model, solved on the membrane of the cell
  • And an external gradient.

The cell membrane polarizes in response to the external gradient. Chemotactic cell motility depends on the polarity of the cell and the external gradient.

Description

This example implements two models of cell polarity: Meinhardt's substrate-depletion model and Edelstein-Keshet's wave-pinning model. The user can switch polarity model by Disabling/Enabling the relevant System.

The model defines a one-dimensional reaction-diffusion system (MembraneProperty) representing membrane-bound molecules, and is mapped to a cellular Potts model defining a discrete shaped cell. An external gradient, specified in a PDE, provides a signal for the polarization of the cell. In turn, the polarity of the cell influences its chemotaxic behavior.

After a switch in direction of the gradient, the cell re-polarizes in the new direction and starts to move up the gradient, iff the wave pinning model has been selected.

Model

CellPolarity.xml

<MorpheusModel version="3">
    <Description>
        <Title>Example-CellPolarity</Title>
        <Details>Chemotaxis of polarized cell
----------------------------
Show feedback between cell motility, cell polarization and external gradient.

Two simple polarization models can be enabled/disabled:
- Substrate-depletion model: no repolarization
- Wave-pinning model: repolarization

PDE Equation:
- Switch on/off and change gradients </Details>
    </Description>
    <Global>
        <Field symbol="U" value="l.x / lattice.x">
            <Diffusion rate="0.0"/>
        </Field>
        <!--    <Disabled>
        <Equation symbol-ref="U">
            <Expression>l.x / lattice.x +
0*if( t > 500 and t &lt; 1500, l.x / lattice.x, 0)</Expression>
        </Equation>
    </Disabled>
-->
        <Constant symbol="c" value="0.0"/>
        <!--    <Disabled>
        <Constant symbol="A" value="0.0"/>
    </Disabled>
-->
    </Global>
    <Space>
        <Lattice class="cubic">
            <Size symbol="lattice" value="150 75 50"/>
            <BoundaryConditions>
                <Condition boundary="x" type="noflux"/>
                <Condition boundary="y" type="periodic"/>
            </BoundaryConditions>
            <NodeLength value="1.0"/>
            <Neighborhood>
                <Distance>2.0</Distance>
            </Neighborhood>
        </Lattice>
        <SpaceSymbol symbol="l"/>
        <MembraneLattice>
            <Resolution symbol="memsize" value="50"/>
            <SpaceSymbol symbol="m"/>
        </MembraneLattice>
    </Space>
    <Time>
        <StartTime value="0"/>
        <StopTime value="2000"/>
        <SaveInterval value="0"/>
        <RandomSeed value="0"/>
        <TimeSymbol symbol="t"/>
    </Time>
    <CellTypes>
        <CellType class="biological" name="cells">
            <Chemotaxis field="U" strength="50*(A)" retraction="true"/>
            <VolumeConstraint target="5000" strength="0.1"/>
            <SurfaceConstraint target="1" mode="aspherity" strength="0.05"/>
            <MembraneProperty symbol="A" value="0.5" name="A">
                <Diffusion rate="0.05"/>
            </MembraneProperty>
            <MembraneProperty symbol="B" value="0.5" name="B">
                <Diffusion rate="1"/>
            </MembraneProperty>
            <MembraneProperty symbol="c" value="0" name="chemotactic strength">
                <Diffusion rate="0"/>
            </MembraneProperty>
            <MembraneProperty symbol="s" value="0" name="signal">
                <Diffusion rate="0"/>
            </MembraneProperty>
            <Property symbol="l_U" value="0"/>
            <!--    <Disabled>
        <System solver="runge-kutta" time-step="1.0" name="Substrate-Depletion">
            <Rule symbol-ref="c">
                <Expression>A^2*5e1</Expression>
            </Rule>
            <DiffEqn symbol-ref="A">
                <Expression>(rho*A^2) / B - mu_a * A + rho_a + 0.001*s</Expression>
            </DiffEqn>
            <DiffEqn symbol-ref="B">
                <Expression>(rho*A^2) - mu_i * B</Expression>
            </DiffEqn>
            <Constant symbol="rho_a" value="0.01"/>
            <Constant symbol="mu_i" value="0.03"/>
            <Constant symbol="mu_a" value="0.02"/>
            <Constant symbol="rho" value="0.001"/>
        </System>
    </Disabled>
-->
            <System solver="runge-kutta" time-step="1.0" name="WavePinning">
                <Constant symbol="k_0" value="0.067"/>
                <Constant symbol="gamma" value="1"/>
                <Constant symbol="delta" value="0.25"/>
                <Constant symbol="K" value="1"/>
                <Constant symbol="sigma" value="5.0" name="spatial-length-signal"/>
                <Constant symbol="n" value="4" name="Hill coefficient"/>
                <Function symbol="F">
                    <Expression>B*(k_0+ s + (gamma*A^n) / (K^n + A^n) ) - delta*A</Expression>
                </Function>
                <DiffEqn symbol-ref="A">
                    <Expression>F</Expression>
                </DiffEqn>
                <DiffEqn symbol-ref="B">
                    <Expression>-F</Expression>
                </DiffEqn>
                <Rule symbol-ref="c">
                    <Expression>A^2*1000</Expression>
                </Rule>
            </System>
            <Mapper>
                <Input value="U"/>
                <Output symbol-ref="s" mapping="average"/>
            </Mapper>
        </CellType>
        <CellType class="medium" name="medium">
            <Property symbol="l_U" value="0"/>
        </CellType>
    </CellTypes>
    <CPM>
        <Interaction default="0.0">
            <Contact type1="cells" type2="medium" value="-10"/>
            <Contact type1="cells" type2="cells" value="-20"/>
        </Interaction>
        <MonteCarloSampler stepper="edgelist">
            <MCSDuration value="1"/>
            <Neighborhood>
                <Order>2</Order>
            </Neighborhood>
            <MetropolisKinetics temperature="1" yield="0.05"/>
        </MonteCarloSampler>
        <ShapeSurface scaling="norm">
            <Neighborhood>
                <Order>6</Order>
            </Neighborhood>
        </ShapeSurface>
    </CPM>
    <CellPopulations>
        <Population size="0" type="cells">
            <!--    <Disabled>
        <InitRectangle mode="regular" number-of-cells="1">
            <Dimensions size="150, 75, 50" origin="0.0, 0.0, 0.0"/>
        </InitRectangle>
    </Disabled>
-->
            <Cell name="1">
                <Nodes>25 37 25</Nodes>
            </Cell>
        </Population>
    </CellPopulations>
    <Analysis>
        <Gnuplotter time-step="50">
            <Terminal pointsize="1.5" name="png"/>
            <Plot>
                <Field symbol-ref="U"/>
                <Cells value="A" slice="25"/>
            </Plot>
        </Gnuplotter>
        <TiffPlotter format="8bit" OME-header="false" time-step="100">
            <Channel symbol-ref="cell.id" celltype="cells"/>
            <Channel symbol-ref="c" celltype="cells"/>
            <Channel symbol-ref="U"/>
        </TiffPlotter>
        <!--    <Disabled>
        <MembraneLogger time-step="10" celltype="cells">
            <MembraneProperty symbol-ref="A"/>
            <Plot terminal="png" time-step="10"/>
        </MembraneLogger>
    </Disabled>
-->
        <Logger time-step="50">
            <Input>
                <Symbol symbol-ref="A"/>
            </Input>
            <Output>
                <TextOutput file-format="matrix"/>
            </Output>
            <Plots>
                <SurfacePlot time-step="50">
                    <Color-bar>
                        <Symbol symbol-ref="A"/>
                    </Color-bar>
                    <Terminal terminal="png"/>
                </SurfacePlot>
            </Plots>
            <Restriction>
                <Celltype celltype="cells"/>
            </Restriction>
        </Logger>
    </Analysis>
</MorpheusModel>

Note: This model is not available in Morpheus GUI.

examples/multiscale.txt · Last modified: 17:59 16.11.2017 by Jörn Starruß