Anisotropic release from cell

Persistent Identifier

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

Membrane pattern allows anisotropic release of substance from cell


This example serves to demonstrate a multiscale model of a cell secreting a substance/molecule and propelling away from the secreted substance. Please also see the built-in docu at GUI/Documentation/MorpheuML/Space/MembraneLattice, .../CellType/MembraneProperty and .../CellType/Chemotaxis. This example was motivated by Roger in the Morpheus user forum


A cell in Morpheus can act in an anisotropic manner by using a heterogeneously patterned MembraneProperty - here called m. These are Properties with a spatial resolution (a 1D or 2D array, defined under Space/MembraneLattice) that are mapped to the cell’s membrane in polar coordinates in 2D or 3D, respectively. You can use this to represent cell polarity​, i.e. give directionality to processes.

You first specify a Space / MembraneLattice and than define your CellType / MembraneProperty. And you can use this as if it were a normal Property, but one that is spatially heterogeneous along the cell membrane. In this example, m enters the Global/System for the secreted (and diffusing and degraded) substance c. You can then use the Chemotaxis plugin to simulate cell motility that is propelling away from the secreted substance. For that you simply need to specify the global Field, here “c” as field in the Chemotaxis plugin. Moreover, CellType/Mapper would allow to couple m to scalar CellType/Property if needed. You may also add a separate CellType/System to dynamically change m.

Movie visualising the secretion of a substance using MembraneLattice and propelling away from it:

The panel shows the membrane concentration “m” of the substance (left) and the global field concentration “c” over time (right).


Get this model via:

  • Morpheus-Link or
  •  Download: anisotropic_release.xml
  • XML Preview

    <?xml version='1.0' encoding='UTF-8'?>
    <MorpheusModel version="4">
            <Title>Active transport through cells</Title>
            <Lattice class="square">
                <Size value="50, 200, 0" symbol="size"/>
                    <Condition boundary="x" type="periodic"/>
                    <Condition boundary="-x" type="periodic"/>
                    <Condition boundary="y" type="periodic"/>
                    <Condition boundary="-y" type="periodic"/>
            <SpaceSymbol symbol="space"/>
                <Resolution value="100" symbol="memsize"/>
                <SpaceSymbol symbol="memspace"/>
                <Annotation>Membrane Lattice is necessary here as a mean to enable Anisotropic secretion towards a specific direction.
    Please see the docu for more details on MembraneLattice.</Annotation>
            <StartTime value="0"/>
            <StopTime value="10000"/>
            <TimeSymbol symbol="time"/>
            <CellType name="cell" class="biological">
                <VolumeConstraint target="500" strength="1"/>
                <SurfaceConstraint mode="aspherity" target="1" strength="1"/>
                <MembraneProperty name="membrane substrate" tags="membrane" value="1+sin(-memspace.phi)" symbol="m">
                    <Diffusion rate="0.0"/>
                    <Annotation>MembraneProperty is handling the directed secretion of the substrate, by defining the concentration as a sine function of the membrane lattice. This way, the concentration can be high on one side and zero on the other side.</Annotation>
                <Chemotaxis field="c" strength="0.5">
                    <Annotation>Chemotaxis away from the secreted molecule, yielding in cell motility through secretion.</Annotation>
            <ShapeSurface scaling="norm">
            <MonteCarloSampler stepper="edgelist">
                <MCSDuration value="1"/>
                <MetropolisKinetics temperature="1"/>
            <Population size="0" type="cell">
                <InitCellObjects mode="distance">
                    <Arrangement repetitions="1, 1, 1" displacements="1, 1, 1">
                        <Sphere center="25,25,0" radius="10"/>
            <Gnuplotter time-step="100">
                <Terminal name="png" size="4000, 4000, 0"/>
                    <Cells value="m">
                            <Color value="2" color="red"/>
                            <Color value="1" color="yellow"/>
                            <Color value="0.0" color="white"/>
                    <Field min="0" max="160" symbol-ref="c"/>
            <Logger time-step="-1">
                <Input force-node-granularity="true">
                    <Symbol symbol-ref="m"/>
                            <Symbol symbol-ref="m"/>
                        <Terminal plot-size="400, 800, 0.0" terminal="png"/>
            <ModelGraph format="dot" include-tags="#untagged" reduced="false"/>
            <Field name="global substrate" tags="global" value="0" symbol="c">
                <Diffusion rate="0.01"/>
                <Annotation>Global Field for substrate. This field is initialized as 0 and will then "take up" the substrate that is secreted by the cell.</Annotation>
            <System name="Secretion System" tags="membrane, global" time-step="1.0" solver="Runge-Kutta [fixed, O(4)]">
                <DiffEqn symbol-ref="c">
                    <Expression>m - 0.01*c</Expression>
            <Constant name="membrane substrate" tags="membrane" value="0" symbol="m">
                <Annotation>We need to introduce another constant for the substrate in the Global scope to be able to define a membrane property in the Cell scope. </Annotation>

    Model Graph.
    Model Graph.


    Files associated with this model: