French Flag: Morphogen Gradient

Persistent Identifier

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

Introduction

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.

Description

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.

Model

Get this model via:

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

    <MorpheusModel version="3">
        <Description>
            <Title>Example-FrenchFlag</Title>
            <Details>Wolpert L (1969). "Positional information and the spatial pattern of cellular differentiation". J. Theor. Biol. 25 (1): 1–47.</Details>
        </Description>
        <Global>
            <Field symbol="m" value="c_0*exp(-k/D*(l.x/size.x))" name="morphogen gradient">
                <Diffusion rate="0.0"/>
            </Field>
            <Constant symbol="c_0" value="1.0"/>
            <Constant symbol="D" value="0.75"/>
            <Constant symbol="k" value="1"/>
            <Constant symbol="celltype" value="0.0"/>
        </Global>
        <Space>
            <Lattice class="square">
                <Size symbol="size" value="20 20 0"/>
                <NodeLength value="1"/>
                <BoundaryConditions>
                    <Condition boundary="x" type="constant"/>
                    <Condition boundary="y" type="constant"/>
                </BoundaryConditions>
                <Neighborhood>
                    <Order>1</Order>
                </Neighborhood>
            </Lattice>
            <SpaceSymbol symbol="l" name="location"/>
        </Space>
        <Time>
            <StartTime value="0"/>
            <StopTime value="0"/>
            <TimeSymbol symbol="time"/>
        </Time>
        <CellTypes>
            <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>
                </Equation>
                <Mapper name="report morphogen concentration">
                    <Input value="m"/>
                    <Output symbol-ref="p" mapping="average"/>
                </Mapper>
            </CellType>
        </CellTypes>
        <CellPopulations>
            <Population size="0" type="cells">
                <InitCellLattice/>
            </Population>
        </CellPopulations>
        <Analysis>
            <Gnuplotter time-step="0">
                <Terminal opacity="0.5" persist="true" name="png"/>
                <Plot>
                    <Cells value="celltype">
                        <ColorMap>
                            <Color value="3" color="blue"/>
                            <Color value="2" color="white"/>
                            <Color value="1" color="red"/>
                        </ColorMap>
                    </Cells>
                    <Field symbol-ref="m"/>
                </Plot>
            </Gnuplotter>
            <Logger time-step="0.0">
                <Input>
                    <Symbol symbol-ref="m"/>
                    <Symbol symbol-ref="celltype"/>
                </Input>
                <Output>
                    <TextOutput/>
                </Output>
                <Restriction>
                    <Slice value="size.y/2" axis="y"/>
                </Restriction>
                <Plots>
                    <Plot>
                        <Style style="linespoints"/>
                        <Terminal terminal="png"/>
                        <X-axis>
                            <Symbol symbol-ref="l.x"/>
                        </X-axis>
                        <Y-axis>
                            <Symbol symbol-ref="m"/>
                            <Symbol symbol-ref="celltype"/>
                        </Y-axis>
                    </Plot>
                </Plots>
            </Logger>
        </Analysis>
    </MorpheusModel>
    
    

    Downloads

    Files associated with this model:

    Previous
    Next