Diffusion Model of Gap Genes in Drosophila melanogaster
Persistent Identifier
Use this permanent link to cite or share this Morpheus model:
Autoregulatory multicellular incoherent feedforward loop (mIFFL) that generates the 7-stripe even-skipped (eve) expression pattern in Drosophila melanogaster embryogenesis
Introduction
This model demonstrates the influence of maternal effect genes and gap genes on the even-skipped (eve) gene. Its expression produces a series of seven bands during Drosophila melanogaster embryogenesis and plays a key role in the regulation of the Drosophila segmentation pattern. Here, the even-skipped gene stripe pattern is obtained using an autoregulatory multicellular incoherent feedforward loop (mIFFL), which is an extension of the traditional intracellular IFFL gene motif in which the interacting nodes no longer need to be genes inside the same cell, but can be spatially distributed in different cells.
Description
Simulations were performed using a mask of a real Drosophila melanogaster embryo at the beginning of anterior-posterior segmentation, when the embryo is in the blastoderm stage.
The actual number of cells at this stage is about 6000, while the model involves only 2800 cells, since it only captures the external surface of one lateral face of the embryo. The size of the embryo at this stage is roughly $0.5\ \mathrm{mm}$ in length. (Regueira et al., 2019)
The simulation is based on the interaction network depicted below, in which the expression of the maternal effect genes act as inputs, and the gap-gene spatial pattern is generated dynamically from them.
Once the gap genes are fully expressed, the expression of pair-rule genes and, therefore, eve begins. Ultimately, the eve bands are produced by an autoregulatory multicellular incoherent feedforward loop (mIFFL).
Results
The eve gene is expressed in seven bands that are arranged perpendicular to the anterior-posterior axis of the embryo. Not only the number of stripes, but also their width and the distance between are well reproduced in comparison with the experimental observations.
Video of the model simulation M6694_model_mIFFL.xml
: Sequential formation of bands. Stripes 2 and 7 appear first. The adjacent bands appear after the incoherent regulation over space following the logic outlined above in Fig. 4A by Regueira et al., 2019.
Reference
This model is the original used in the publication, up to technical updates:
M. R. Regueira, J. D. García, A. R.-P. Aradas: The multicellular incoherent feedforward loop motif generates spatial patterns. bioRxiv, 2019.
The model originates from a preprint and thus has not been formally peer-reviewed.
Model
M6694_model_mIFFL.xml
XML Preview
<?xml version='1.0' encoding='UTF-8'?>
<MorpheusModel version="4">
<Description>
<Title>Diffusion Model of Gap Genes in Drosophila melanogaster</Title>
<Details>Full title: The multicellular incoherent feedforward loop motif generates spatial patterns
Date: 16.03.2019
Authors: M. R. Regueira, J. D. García, A. R.-P. Aradas
Contributors: M. R. Regueira
Software: Morpheus (open-source). Download from https://morpheus.gitlab.io
Units: [time] = min, [space] = μm · 0.5
Model ID: https://identifiers.org/morpheus/M6694
Comment: Autoregulatory multicellular incoherent feedforward loop (mIFFL) that generates the 7-stripe even-skipped (eve) expression pattern in Drosophila melanogaster embryogenesis
This model is the original used in the publication, up to technical updates.
Reference: M. R. Regueira, J. D. García, A. R.-P. Aradas: The multicellular incoherent feedforward loop motif generates spatial patterns. bioRxiv, 2019.
https://doi.org/10.1101/579342</Details>
</Description>
<Global>
<System time-step="1.0" solver="Euler [fixed, O(1)]">
<DiffEqn symbol-ref="BICOID">
<Expression>p_bicoid-deg_bicoid*BICOID</Expression>
</DiffEqn>
<DiffEqn symbol-ref="M_NANOS">
<Expression>p_nanos-deg_nanos*M_NANOS</Expression>
</DiffEqn>
<DiffEqn symbol-ref="HUNCHBACK">
<Expression>p_hunchback-deg_hunchback*HUNCHBACK</Expression>
</DiffEqn>
<DiffEqn symbol-ref="CAUDAL">
<Expression>p_caudal-deg_caudal*CAUDAL</Expression>
</DiffEqn>
<DiffEqn symbol-ref="GIANT">
<Expression>p_giant-deg_giant*GIANT</Expression>
</DiffEqn>
<DiffEqn symbol-ref="KRUPPEL">
<Expression>p_kruppel-deg_kruppel*KRUPPEL</Expression>
</DiffEqn>
<DiffEqn symbol-ref="KNIRPS">
<Expression>p_knirps-deg_knirps*KNIRPS</Expression>
</DiffEqn>
<DiffEqn symbol-ref="TAILLESS">
<Expression>p_tailless-deg_tailless*TAILLESS </Expression>
</DiffEqn>
<DiffEqn symbol-ref="EVE_REP">
<Expression>p_eve_rep-deg_eve_rep*EVE_REP</Expression>
</DiffEqn>
<DiffEqn symbol-ref="EVE_REP_CONS">
<Expression>p_eve_rep_cons-deg_eve_rep_cons*EVE_REP_CONS</Expression>
</DiffEqn>
<Constant symbol="deg_bicoid" value="0.000"/>
<Constant symbol="deg_nanos" value="0.000"/>
<Constant symbol="deg_hunchback" value="0.146"/>
<Constant symbol="deg_caudal" value="0.00243"/>
<Constant symbol="deg_kruppel" value="0.067"/>
<Constant symbol="deg_giant" value="0.087"/>
<Constant symbol="deg_knirps" value="0.065"/>
<Constant symbol="deg_tailless" value="0.000"/>
<Constant symbol="deg_eve_rep_cons" value="1"/>
<Constant symbol="deg_eve_rep" value="0.03"/>
<DiffEqn symbol-ref="REP_EVE_REP_CONS">
<Expression>p_rep_eve_rep_cons-deg_rep_eve_rep_cons*REP_EVE_REP_CONS</Expression>
</DiffEqn>
<Constant symbol="deg_rep_eve_rep_cons" value="0.001"/>
<DiffEqn symbol-ref="EVE">
<Expression>p_eve-deg_eve*EVE</Expression>
</DiffEqn>
<Constant symbol="deg_eve" value="0"/>
<!-- <Disabled>
<Rule symbol-ref="BICOID">
<Expression>0.0</Expression>
</Rule>
</Disabled>
-->
</System>
<Field symbol="BICOID" name="Morphogen_Bicoid" value="0.0294*((l.x/10)^2)-4.789*(l.x/10)+191.88">
<Diffusion rate="0.16"/>
</Field>
<Field symbol="M_NANOS" name="Morphogen_Nanos" value="0.031*((l.x/10)^2)-1.81*(l.x/10)+16.92">
<Diffusion rate="0.16"/>
</Field>
<Field symbol="HUNCHBACK" name="Morphogen_Hunchback" value="-1.189e-05*(l.x/10)^4 +0.002885 * (l.x/10)^3 -0.2223 *(l.x/10)^2 + 4.661 * (l.x/10) + 61">
<Diffusion rate="2.16"/>
</Field>
<Field symbol="CAUDAL" name="Morphogen_Caudal" value="-0.0008175 *(l.x/10)^3 + 0.09382 *(l.x/10)^2 -0.5582 *(l.x/10) + 1">
<Diffusion rate="2.25"/>
</Field>
<Field symbol="KRUPPEL" name="Morphogen" value="0">
<Diffusion rate="0.67"/>
</Field>
<Field symbol="GIANT" name="Morphogen" value="0">
<Diffusion rate="0.4"/>
</Field>
<Field symbol="KNIRPS" name="Morphogen" value="0">
<Diffusion rate="0.9"/>
</Field>
<Field symbol="TAILLESS" name="Morphogen" value="37.81*exp(-1*(((l.x/10)-15)/4.48)^2)+143.2*exp(-1*(((l.x/10)-93.72)/8.137)^2)">
<Diffusion rate="0"/>
</Field>
<Field symbol="EVE_REP" value="0">
<Diffusion rate="5"/>
</Field>
<Field symbol="EVE_REP_CONS" value="0">
<Diffusion rate="0.0"/>
</Field>
<Field symbol="REP_EVE_REP_CONS" value="0">
<Diffusion rate="4"/>
</Field>
<Field symbol="EVE" value="0">
<Diffusion rate="0"/>
</Field>
</Global>
<Space>
<Lattice class="square">
<Size symbol="size" value="1000, 1000, 0"/>
<BoundaryConditions>
<Condition type="noflux" boundary="x"/>
<Condition type="noflux" boundary="y"/>
<Condition type="noflux" boundary="-x"/>
<Condition type="noflux" boundary="-y"/>
</BoundaryConditions>
<Neighborhood>
<!-- <Disabled>
<Order>2</Order>
</Disabled>
-->
<Distance>2.5</Distance>
</Neighborhood>
<Domain boundary-type="noflux">
<Image path="M6694_model_domain.tiff"/>
</Domain>
</Lattice>
<SpaceSymbol symbol="l"/>
</Space>
<Time>
<StartTime value="0"/>
<StopTime value="500"/>
<TimeSymbol symbol="time"/>
</Time>
<CellTypes>
<CellType class="medium" name="medium">
<Property symbol="clone" value="0.0"/>
<Variable symbol="p_bicoid" value="0"/>
<Variable symbol="p_caudal" value="0"/>
<Variable symbol="p_giant" value="0"/>
<Variable symbol="p_kruppel" value="0"/>
<Variable symbol="p_nanos" value="0"/>
<Variable symbol="p_hunchback" value="0"/>
<Variable symbol="p_knirps" value="0"/>
<Variable symbol="p_tailless" value="0"/>
<Property symbol="p_eve_rep_cons" value="0"/>
<Property symbol="p_eve_rep" value="0"/>
<Property symbol="p_rep_eve_rep_cons" value="0"/>
<Property symbol="p_eve" value="0"/>
</CellType>
<CellType class="biological" name="White_cells_true">
<VolumeConstraint target="300" strength="1"/>
<SurfaceConstraint target="1" strength="1" mode="aspherity"/>
<Property symbol="clone" value="1.0"/>
<Property symbol="p_bicoid" value="0"/>
<Property symbol="p_nanos" value="0"/>
<Property symbol="p_hunchback" value="0"/>
<Property symbol="p_caudal" value="0"/>
<Property symbol="p_kruppel" value="0"/>
<Property symbol="p_giant" value="0"/>
<Property symbol="p_knirps" value="0"/>
<Property symbol="p_tailless" value="0"/>
<Property symbol="p_eve_rep_cons" value="1"/>
<Property symbol="p_eve_rep" value="0"/>
<Property symbol="p_rep_eve_rep_cons" value="0"/>
<Property symbol="p_eve" value="0"/>
<Mapper name="Map_Bicoid">
<Input value="BICOID"/>
<Output symbol-ref="con_bicoid" mapping="average"/>
</Mapper>
<Property symbol="con_bicoid" value="0"/>
<Mapper name="Map_Nanos">
<Input value="M_NANOS"/>
<Output symbol-ref="con_nanos" mapping="average"/>
</Mapper>
<Property symbol="con_nanos" value="0"/>
<Mapper name="Map_Caudal">
<Input value="CAUDAL"/>
<Output symbol-ref="con_caudal" mapping="average"/>
</Mapper>
<Property symbol="con_caudal" value="0"/>
<Mapper name="Map_Hunchback">
<Input value="HUNCHBACK"/>
<Output symbol-ref="con_hunchback" mapping="average"/>
</Mapper>
<Property symbol="con_hunchback" value="0"/>
<Mapper name="Map_Kruppel">
<Input value="KRUPPEL"/>
<Output symbol-ref="con_kruppel" mapping="average"/>
</Mapper>
<Property symbol="con_kruppel" value="0"/>
<Mapper name="Map_Giant">
<Input value="GIANT"/>
<Output symbol-ref="con_giant" mapping="average"/>
</Mapper>
<Property symbol="con_giant" value="0"/>
<Mapper name="Map_Knirps">
<Input value="KNIRPS"/>
<Output symbol-ref="con_knirps" mapping="average"/>
</Mapper>
<Property symbol="con_knirps" value="0"/>
<Mapper name="Map_Tailless">
<Input value="TAILLESS"/>
<Output symbol-ref="con_tailless" mapping="average"/>
</Mapper>
<Property symbol="con_tailless" value="0"/>
<Mapper name="Map_Eve_Rep">
<Input value="EVE_REP"/>
<Output symbol-ref="con_eve_rep" mapping="average"/>
</Mapper>
<Property symbol="con_eve_rep" value="0"/>
<Mapper name="Map_Eve_Rep_Cons">
<Input value="EVE_REP_CONS"/>
<Output symbol-ref="con_eve_rep_cons" mapping="average"/>
</Mapper>
<Property symbol="con_eve_rep_cons" value="0"/>
<Mapper name="Map_Rep_Eve_Rep_Cons">
<Input value="REP_EVE_REP_CONS"/>
<Output symbol-ref="con_rep_eve_rep_cons" mapping="average"/>
</Mapper>
<Property symbol="con_rep_eve_rep_cons" value="0"/>
<Mapper name="Map_Rep_Eve_Rep_Cons">
<Input value="EVE"/>
<Output symbol-ref="con_eve" mapping="average"/>
</Mapper>
<Property symbol="con_eve" value="0"/>
<System time-step="1.0" name="Morphogenes" solver="Euler [fixed, O(1)]">
<Rule symbol-ref="p_hunchback">
<Expression>if((con_bicoid>19 or con_hunchback>49 or con_tailless>101) and con_caudal<122 and con_kruppel<139 and con_knirps<4 and con_nanos<110, 31.3, 0)
</Expression>
</Rule>
<Rule symbol-ref="p_caudal">
<Expression>if((con_nanos>125) and con_hunchback<61, 7.65, 0)</Expression>
</Rule>
<Rule symbol-ref="p_kruppel">
<Expression>if((con_bicoid>9 or con_kruppel>103 or con_caudal>151) and con_hunchback<176.98 and con_giant<4 and con_knirps<115 and con_tailless<20 and time>4, 16.3, 0)</Expression>
</Rule>
<Rule symbol-ref="p_giant">
<Expression>if((con_bicoid>40 or con_caudal>133 or con_giant>85) and con_kruppel<15 and con_tailless<102 and time>4, 16.1, 0)</Expression>
</Rule>
<Rule symbol-ref="p_knirps">
<Expression>if((con_bicoid>5 or con_caudal>152 or con_knirps>94) and con_hunchback<7 and con_kruppel<141 and con_giant<220 and con_tailless<18 and time>4, 17, 0)</Expression>
</Rule>
<Rule symbol-ref="p_eve_rep">
<Expression>if(con_hunchback>40 and con_giant<30 and con_kruppel<10 and time>40, 50,
if(con_eve>14, 50, 0)
)</Expression>
</Rule>
<Rule symbol-ref="p_rep_eve_rep_cons">
<Expression>if(con_hunchback>40 and con_giant<30 and con_kruppel<10 and time>40, 50,
if(con_eve>14, 50, 0)
)</Expression>
</Rule>
<Rule symbol-ref="p_eve_rep_cons">
<Expression>if(con_rep_eve_rep_cons>0.1, 0, 1)</Expression>
</Rule>
<Rule symbol-ref="p_eve">
<Expression>if(con_hunchback>40 and con_giant<30 and con_kruppel<10 and con_nanos<105 and time>40, 2,
if(con_eve_rep<0.1 and con_eve_rep_cons<0.1 and con_bicoid<70 and con_nanos<115, 2, 0)
)</Expression>
</Rule>
<Rule symbol-ref="clone">
<Expression> if(con_eve>1, 1, 0)</Expression>
</Rule>
</System>
</CellType>
</CellTypes>
<CPM>
<Interaction>
<!-- <Disabled>
<Contact type1="amoeba" type2="medium" value="1"/>
</Disabled>
-->
</Interaction>
<MonteCarloSampler stepper="edgelist">
<MCSDuration value="1"/>
<Neighborhood>
<Order>2</Order>
</Neighborhood>
<MetropolisKinetics temperature="0.2"/>
</MonteCarloSampler>
<ShapeSurface scaling="norm">
<Neighborhood>
<Distance>2.5</Distance>
</Neighborhood>
</ShapeSurface>
</CPM>
<CellPopulations>
<Population type="White_cells_true" size="0">
<InitRectangle number-of-cells="2800" mode="regular">
<Dimensions origin="20,250, 0" size="960, 450, 0"/>
</InitRectangle>
</Population>
</CellPopulations>
<Analysis>
<Gnuplotter time-step="5" decorate="false">
<Terminal name="png" persist="true"/>
<Plot>
<!-- <Disabled>
<Field symbol-ref="GIANT">
<ColorMap>
<Color value="0.0" color="white"/>
<Color value="1.0" color="blue"/>
</ColorMap>
</Field>
</Disabled>
-->
<Cells opacity="0.55" value="clone">
<ColorMap>
<Color value="0.0" color="white"/>
<Color value="1.0" color="white"/>
<Color value="2.0" color="green"/>
<Color value="3.0" color="orange"/>
<Color value="4.0" color="light-blue"/>
<Color value="5.0" color="gold"/>
</ColorMap>
</Cells>
</Plot>
</Gnuplotter>
<!-- <Disabled>
<Logger time-step="1">
<Input>
<Symbol symbol-ref="HUNCHBACK"/>
<Symbol symbol-ref="BICOID"/>
<Symbol symbol-ref="CAUDAL"/>
<Symbol symbol-ref="NANOS"/>
<Symbol symbol-ref="TAILLESS"/>
<Disabled>
<Symbol symbol-ref="KRUPPEL"/>
</Disabled>
<Disabled>
<Symbol symbol-ref="GIANT"/>
</Disabled>
<Disabled>
<Symbol symbol-ref="KNIRPS"/>
</Disabled>
</Input>
<Output>
<TextOutput file-name="automatic" file-format="csv" file-numbering="sequential"/>
</Output>
<Plots>
<Plot time-step="5" file-numbering="time">
<Style grid="true" point-size="1.0" style="points"/>
<Terminal terminal="png"/>
<X-axis>
<Symbol symbol-ref="l.x"/>
</X-axis>
<Y-axis>
<Symbol symbol-ref="HUNCHBACK"/>
<Symbol symbol-ref="BICOID"/>
<Symbol symbol-ref="CAUDAL"/>
<Symbol symbol-ref="NANOS"/>
<Symbol symbol-ref="TAILLESS"/>
<Disabled>
<Symbol symbol-ref="KRUPPEL"/>
</Disabled>
<Disabled>
<Symbol symbol-ref="GIANT"/>
</Disabled>
<Disabled>
<Symbol symbol-ref="KNIRPS"/>
</Disabled>
</Y-axis>
</Plot>
</Plots>
</Logger>
</Disabled>
-->
<ModelGraph format="dot" reduced="false" include-tags="#untagged"/>
</Analysis>
</MorpheusModel>
M6694_model_domain.tiff
, which needs to be in the same directory as M6694_model_mIFFL.xml
.
Downloads
Files associated with this model: