French Flag: Morphogen Gradient

Persistent Identifier

Use this permanent link to cite or share this Morpheus model:


This example shows Wolpert’s classical French Flag model. Depending on the local concentration of a morphogen, cells adopt one of three cell types based on internal thresholds.

Wolpert´s French Flag.
Wolpert´s French Flag.


The model sets up a morphogen gradient in the $x$ direction as a 2D field in the Global section. Note that no diffusion is used, since we use the steady-state solution of the diffusion and degradation process with fixed boundary source.

The cells in CellType register the (average) local morphogen concentration using a Mapper. Based on the specified threshold values, they choose an identity $I$ as defined in the Equation.

Note that this model is not time-dependent. Time is therefore set from StartTime $0$ to StopTime $0$.

Things to try

  • Change the model such that the morphogen gradient is set up by production and diffusion, using Diffusion and a System with DiffEqn. That is, change the model into a time-dependent model.


Get this model via:

  • Morpheus-Link or
  • Morpheus GUI: ExamplesMiscellaneousFrenchFlag.xml or
  •  Download: FrenchFlag.xml
  • XML Preview

    <MorpheusModel version="3">
            <Details>Wolpert L (1969). "Positional information and the spatial pattern of cellular differentiation". J. Theor. Biol. 25 (1): 1–47.</Details>
            <Field symbol="m" value="c_0*exp(-k/D*(l.x/size.x))" name="morphogen gradient">
                <Diffusion rate="0.0"/>
            <Constant symbol="c_0" value="1.0"/>
            <Constant symbol="D" value="0.75"/>
            <Constant symbol="k" value="1"/>
            <Constant symbol="celltype" value="0.0"/>
            <Lattice class="square">
                <Size symbol="size" value="20 20 0"/>
                <NodeLength value="1"/>
                    <Condition boundary="x" type="constant"/>
                    <Condition boundary="y" type="constant"/>
            <SpaceSymbol symbol="l" name="location"/>
            <StartTime value="0"/>
            <StopTime value="0"/>
            <TimeSymbol symbol="time"/>
            <CellType class="biological" name="cells">
                <Property symbol="p" value="0.0" name="p"/>
                <Property symbol="celltype" value="0.0" name="cell type"/>
                <Constant symbol="t1" value="0.7"/>
                <Constant symbol="t2" value="0.4"/>
                <Equation symbol-ref="celltype">
                    <Expression>if(p>t1,3, if(p>t2, 2, 1))</Expression>
                <Mapper name="report morphogen concentration">
                    <Input value="m"/>
                    <Output symbol-ref="p" mapping="average"/>
            <Population size="0" type="cells">
            <Gnuplotter time-step="0">
                <Terminal opacity="0.5" persist="true" name="png"/>
                    <Cells value="celltype">
                            <Color value="3" color="blue"/>
                            <Color value="2" color="white"/>
                            <Color value="1" color="red"/>
                    <Field symbol-ref="m"/>
            <Logger time-step="0.0">
                    <Symbol symbol-ref="m"/>
                    <Symbol symbol-ref="celltype"/>
                    <Slice value="size.y/2" axis="y"/>
                        <Style style="linespoints"/>
                        <Terminal terminal="png"/>
                            <Symbol symbol-ref="l.x"/>
                            <Symbol symbol-ref="m"/>
                            <Symbol symbol-ref="celltype"/>


    Files associated with this model: