Drosophila Wing Primordium
Persistent Identifier
Use this permanent link to cite or share this Morpheus model:
How does morphogen transport in a growing tissue feed back on tissue growth through morphogen signaling and cell division?
Introduction
The Drosophila wing primordium is a two-dimensional epithelial tissue that grows in response to the concentration profile of the morphogen Dpp (see Fig.1). Dpp molecules get synthesized within a narrow (here vertical) stripe and are transported at least partly by the cells: (i) through cycles of endocytosis and exocytosis and/or (ii) by transient binding to cellular receptors. The spreading of the molecules is therefore governed, both, by an effective diffusion process and by the flow of Dpp-carrying cells. The cell flow is the result of tissue growth and cells divide in response to high local Dpp concentration. Hence, this model captures a feedback loop from morphogen concentration to cell division to tissue growth and back to morphogen transport.
 ([*CC BY 4.0*](https://creativecommons.org/licenses/by/4.0/)) by **Schwank _et al._ (2011)** PLoS Biol 9(7): e1001111.](/media/model/m1703/Microscopy_Dpp_signal_response_hudbd2429d9205c188823803b7e82e2420_611392_4318ea83688a8aadff1a931103831df8.png)
In the referenced paper, Osborne et al. (2017) have compared five different model formalisms for multicellular tissues incl. the cellular Potts model (CPM) and had used the simulator Chaste. Here, the CPM-specific results (out of the five compared models) are reproduced in a different simulator, Morpheus, and both agree well.
Description
In the Morpheus model, the concentration c
of Dpp is not described by a Global/Field
(as it was done in the publication) but by a CellType/Property
such that Dpp gets transported together with the cells by construction. Additionally, Dpp diffuses between neighboring cells which is implemented as a diffusion operator discretized over the cell arrangement by means of the NeighborhoodReporter
.
All parameter values are taken from Tables 1 and 5 of the publication, except lambda=0.01
must have been a typo in the published Table 5 and is here replaced by lambda=10
as in the paper’s cited Ref.19 with the original model (Smith et al. (2011)).
A square lattice with 400x400 nodes and no-flux boundary conditions is used.
Results
A typical simulation run shows how the wing primordium grows from an initial circle to an ellipse with larger vertical axis than horizontal, in agreement with the published results. Also the heterogeneity of Dpp concentrations between cells is reproduced, see comparison and movie below.
 ([*CC BY 4.0*](https://creativecommons.org/licenses/by/4.0/): [**Osborne _et al._ (2017)**](#reference)).](/media/model/m1703/Comparison_Fig10_hu3569ececd9572f44401f952057945cd7_969715_25e8db77fe41c2d3f2d12337bad45753.png)

To quantitatively compare this pair of simulations, the horizontal Dpp profile and the aspect ratio of horizontal by vertical axis length are used. In the original publication, means were taken over 20 simulation runs but here we just compare to a single Morpheus run with plots generated by Morpheus during this simulation run.
 ([*CC BY 4.0*](https://creativecommons.org/licenses/by/4.0/): [**Osborne _et al._ (2017)**](#reference)).](/media/model/m1703/Comparison_Fig11_hue79065f40738c3b8e91cb74904bb9a2d_1236523_f22ab1c049260a666009f364b8029545.png)
Reference
This model reproduces a published result, originally obtained with a different simulator:
J. M. Osborne, A. G. Fletcher, J. M. Pitt-Francis, P. K. Maini, D. J. Gavaghan: Comparing individual-based approaches to modelling the self-organization of multicellular tissues. PLoS Comput. Biol. 13 (2): e1005387, 2017.
Model
Dpp_morphogen.xml
XML Preview
<?xml version='1.0' encoding='UTF-8'?>
<MorpheusModel version="4">
<Description>
<Details>Model ID: https://identifiers.org/morpheus/M1703
Software: Morpheus (open source). Download from: https://morpheus.gitlab.io
Full title: Drosophila Wing Primordium
Authors: J. M. Osborne, A. G. Fletcher, J. M. Pitt-Francis, P. K. Maini, D. J. Gavaghan
Contributors: H. J. Wiederanders, P. H. Suhrcke, P. Rossbach
Submitter: L. Brusch
Curator: J. Starruß, L. Brusch
Date: 12.07.2020
Reference: J. M. Osborne, A. G. Fletcher, J. M. Pitt-Francis, P. K. Maini, D. J. Gavaghan: Comparing individual-based approaches to modelling the self-organization of multicellular tissues. PLoS Comput. Biol. 13 (2): e1005387, 2017.
This model reproduces a published result, originally obtained with CHASTE, a different simulator.
Comment: All parameter values are taken from Tables 1 and 5 of the publication, except lambda=0.01 must have been a typo in the published Table 5 and is here replaced by lambda=10 as in the paper's cited Ref.19 (the original model from 2011).
</Details>
<Title>Drosophila Wing Primordium</Title>
</Description>
<Space>
<Lattice class="square">
<Neighborhood>
<Order>1</Order>
</Neighborhood>
<Size symbol="size" value="400, 400, 0"/>
<BoundaryConditions>
<Condition type="noflux" boundary="x"/>
<Condition type="noflux" boundary="y"/>
</BoundaryConditions>
</Lattice>
<SpaceSymbol symbol="space"/>
</Space>
<Time>
<StartTime value="0"/>
<StopTime value="100"/>
<TimeSymbol symbol="time"/>
</Time>
<Global>
<Constant symbol="stripe_pos" name="position of the production stripe in x dimension" value="size.x/2"/>
<Constant symbol="c" value="0"/>
<Constant symbol="CD" value="4"/>
<Variable symbol="max.x" value="0"/>
<Variable symbol="max.y" value="0"/>
<Variable symbol="min.x" value="0"/>
<Variable symbol="min.y" value="0"/>
<Field symbol="Dpp" value="0"/>
</Global>
<CellTypes>
<CellType name="cells" class="biological">
<Constant symbol="dt" name="time step" value="0.005"/>
<Constant symbol="D" name="Dpp diffusion coefficient" value="0.0001*CD*CD"/>
<Constant symbol="k_c" name="Dpp degradation rate" value="0.01"/>
<Constant symbol="p_div" name="average baseline cell division rate" value="0.1"/>
<Constant symbol="lbd" name="morphogen effect on cell growth" value="10"/>
<Constant symbol="L_prod" name="half width of stripe of Dpp production" value="2*CD"/>
<Constant symbol="mu_g" name="cellular growth rate mean" value="0.05"/>
<Constant symbol="var_g" name="cellular growth rate variance" value="0.0001"/>
<Constant symbol="g_min" name="minimum cellular growth rate" value="0.01"/>
<Property symbol="g" name="cell growth rate" value="max(g_min, rand_norm(mu_g,var_g))"/>
<Property symbol="u" name="division probability weighting" value="rand_uni(0.1,0.2)"/>
<Property symbol="c" name="Dpp concentration" value="0.0"/>
<Property symbol="p" name="probability of division" value="0.0"/>
<Property symbol="f" name="level of production of Dpp in stripe" value="0.0"/>
<Property symbol="c_neighbor_mean" value="0.0"/>
<Property symbol="d" name="nr. of divisions" value="0.0"/>
<SurfaceConstraint target="4*CD" strength="0.01" mode="surface"/>
<VolumeConstraint target="CD*CD" strength="0.1"/>
<System time-step="dt" solver="Euler [fixed, O(1)]">
<Rule symbol-ref="u">
<Expression>u*(1+dt*g*(1+lbd*c)*(1-u))</Expression>
</Rule>
<Rule symbol-ref="p">
<Expression>p_div*u*dt</Expression>
</Rule>
<Rule symbol-ref="f">
<Expression>if((cell.center.x > stripe_pos-L_prod) and (cell.center.x < stripe_pos+L_prod), 0.01, 0)</Expression>
</Rule>
<DiffEqn symbol-ref="c">
<Expression>f-k_c*c+D*(4*c_neighbor_mean - 4*c)</Expression>
</DiffEqn>
</System>
<CellDivision division-plane="random">
<Condition>rand_uni(0,1) < p</Condition>
<Triggers name="">
<Rule symbol-ref="g">
<Expression>max(g_min, rand_norm(mu_g,var_g))</Expression>
</Rule>
<Rule symbol-ref="u">
<Expression>0.5*u</Expression>
</Rule>
<Rule symbol-ref="d">
<Expression>d+1</Expression>
</Rule>
</Triggers>
</CellDivision>
<NeighborhoodReporter>
<Input noflux-cell-medium="true" scaling="length" value="if(cell.type == celltype.cells.id, c,local.c)"/>
<Output symbol-ref="c_neighbor_mean" mapping="average"/>
</NeighborhoodReporter>
<Mapper name="measure x-axis of tissue">
<Input value="cell.center.x"/>
<Output symbol-ref="max.x" mapping="maximum"/>
<Output symbol-ref="min.x" mapping="minimum"/>
</Mapper>
<Mapper name="measure y-axis of tissue">
<Input value="cell.center.y"/>
<Output symbol-ref="max.y" mapping="maximum"/>
<Output symbol-ref="min.y" mapping="minimum"/>
</Mapper>
<Mapper name="copy Dpp from cells into field for plotting">
<Input value="c"/>
<Output symbol-ref="Dpp"/>
</Mapper>
</CellType>
<CellType name="medium" class="medium"/>
</CellTypes>
<CPM>
<Interaction>
<Contact type2="medium" type1="cells" value="0.2"/>
<Contact type2="cells" type1="cells" value="0.1"/>
</Interaction>
<ShapeSurface scaling="norm">
<Neighborhood>
<Order>2</Order>
</Neighborhood>
</ShapeSurface>
<MonteCarloSampler stepper="edgelist">
<MCSDuration value="0.005"/>
<MetropolisKinetics temperature="0.1"/>
<Neighborhood>
<Order>2</Order>
</Neighborhood>
</MonteCarloSampler>
</CPM>
<CellPopulations>
<Population type="cells" size="1">
<InitCircle mode="regular" number-of-cells="91">
<Dimensions center="size.x/2,size.y/2,0" radius="5*CD"/>
</InitCircle>
</Population>
</CellPopulations>
<Analysis>
<Gnuplotter time-step="5" name="Tissue with cell outlines and Dpp color-coded" decorate="true">
<Plot>
<Cells max="0.7" min="0" value="c">
<ColorMap>
<Color color="forest-green" value="0.7"/>
<Color color="gray" value="0.001"/>
<Color color="white" value="0"/>
</ColorMap>
</Cells>
</Plot>
<Terminal name="png" size="1024, 1024, 0"/>
</Gnuplotter>
<Gnuplotter time-step="5" name="Tissue without cell outlines and just Dpp color-coded" decorate="true">
<Plot>
<Field symbol-ref="Dpp" max="0.7" min="0">
<ColorMap>
<Color color="forest-green" value="0.7"/>
<Color color="gray" value="0.001"/>
<Color color="white" value="0"/>
</ColorMap>
</Field>
</Plot>
<Terminal name="png" size="1024, 1024, 0"/>
</Gnuplotter>
<Logger time-step="1">
<Input/>
<Output>
<TextOutput/>
</Output>
<Plots>
<Plot time-step="-1">
<Style grid="true" style="points"/>
<Terminal terminal="png"/>
<X-axis minimum="0" maximum="100">
<Symbol symbol-ref="Time"/>
</X-axis>
<Y-axis minimum="0">
<Symbol symbol-ref="Cell_number"/>
</Y-axis>
</Plot>
<Plot time-step="-1">
<Style grid="true" style="linespoints" point-size="0.5"/>
<Terminal terminal="png"/>
<X-axis>
<Symbol symbol-ref="Time"/>
</X-axis>
<Y-axis minimum="0.75" maximum="1.25">
<Symbol symbol-ref="aspect.published_max"/>
<Symbol symbol-ref="aspect.published_mean"/>
<Symbol symbol-ref="aspect.published_min"/>
<Symbol symbol-ref="aspect.Morpheus"/>
</Y-axis>
</Plot>
</Plots>
</Logger>
<Logger time-step="10">
<Input/>
<Output>
<TextOutput/>
</Output>
<Plots>
<Plot time-step="-1">
<Style style="points"/>
<Terminal terminal="png"/>
<X-axis minimum="-25" maximum="25">
<Symbol symbol-ref="x_location"/>
</X-axis>
<Y-axis minimum="0.0" maximum="0.7">
<Symbol symbol-ref="c"/>
</Y-axis>
<Color-bar palette="rainbow" minimum="0" maximum="100">
<Symbol symbol-ref="Time"/>
</Color-bar>
</Plot>
</Plots>
<Restriction condition="cell.center.y>size.y*0.49 and cell.center.y<size.y*0.51">
<Celltype celltype="cells"/>
</Restriction>
</Logger>
<ModelGraph include-tags="#untagged" reduced="false" format="svg"/>
<Function symbol="Cell_number" name="Cell number">
<Expression>celltype.cells.size</Expression>
</Function>
<Function symbol="Time" name="Time (hours)">
<Expression>time</Expression>
</Function>
<Function symbol="aspect.published_max" name="XY Ratio, Paper (max)">
<Expression>0.9725+0.0775*cos(pi*time/100)</Expression>
</Function>
<Function symbol="aspect.published_mean" name="XY Ratio, Paper (mean)">
<Expression>0.94+0.06*cos(pi*time/100)</Expression>
</Function>
<Function symbol="aspect.published_min" name="XY Ratio, Paper (min)">
<Expression>0.895+0.035*cos(pi*time/100)</Expression>
</Function>
<Function symbol="aspect.Morpheus" name="XY Ratio, Morpheus">
<Expression>(max.x-min.x)/(max.y-min.y)</Expression>
</Function>
<Function symbol="x_location" name="x-location (CDs)">
<Expression>(cell.center.x-size.x/2)/CD</Expression>
</Function>
</Analysis>
</MorpheusModel>
Downloads
Files associated with this model: