Chemical synapse

Persistent Identifier

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

Membrane pattern allows anisotropic release of substance into a chemical synapse


Special cell types, like neurons or immune cells, communicate through a chemical synapse. This includes the anisotropic secretion of a substance into the gap between two cells. This example serves to demonstrate a multiscale model of one cell releasing a substance into the medium and another cell close by sensing this substance. Please also see the in-app docu for GUI / Documentation / MorpheusML / Space/MembraneLattice.../ CellType / MembraneProperty and .../ CellType / Chemotaxis. This example was motivated by Kevin Thurley (personal communication) and is derived from the more general demo model Anisotropic release from cell.


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. One can use this to represent cell polarity and give directionality to processes.

In Morpheus, Space / MembraneLattice and subsequently CellType / MembraneProperty m are specified. One can use this as if it were a normal Property, but one that is spatially heterogeneous along the cell membrane. For technical reasons, m then has to be cast into a global field m2field using CellType / Mapper.

In case of substance release into the chemical synapse it is relevant to limit the release to the border pixels of the cell. The second property contact2medium is obtained via Global / NeighbourhoodReporter and indicates that the respective pixels belong to the boundary of a cell.

The product m2field*contact2medium enters the Global / System for the secreted (and diffusing and degraded) substance c, limiting release of c to cell boundary pixels and to a direction given by the pattern in m.

For demonstration purposes, the sensing cell (red in movie) calculates the average of the c concentration and writes it to an Analysis / Logger

Position and movement of the cells are artificially constructed for demonstration purposes only. Chemotaxis (Chemotaxis plugin) to the special shaped technical helper fields U2 and U3 approximately keeps the cells at a defined vertical (y) value without hampering horizontal fluctuations too much. The sensing cell (red in movie) has a weak additional chemotactic term to the field c, keeping it near the releasing cell (blue in movie).

Movie visualising the secretion of a substance into a chemical synapse using MembraneLattice:

The two panels of the same simulation show the global field concentration c (left) and the membrane concentration m of the substance (right) over time.


Get this model via:

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

    <MorpheusModel version="4">
            <Title>Anisotropic secretion into chemical synapse</Title>
            <Details>Multiscale model  of a cell secreting a substance/molecule into a chemical synapse between two cells. The second cell senses this substance. The focus of this demonstration model lies on anisotropic secretion at the border of the first cell.</Details>
            <System time-step="1.0" name="Secretion System" solver="Runge-Kutta [fixed, O(4)]" tags="membrane, global">
                <DiffEqn symbol-ref="c">
                    <Expression>m2field*contact2medium - 0.005*c</Expression>
            <Field symbol="c" name="global substrate" tags="global" value="0">
                <Diffusion rate="0.2*max(ismedium,m2field*contact2medium)"/>
                <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>
            <Constant symbol="m" name="membrane substrate" tags="membrane" value="0">
                <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>
            <Field symbol="U2" name="technical helper chemoattractant cell type 1" value="exp(-(space.y-size.y/2)^2/5^2)"/>
            <Constant symbol="dec" value="0.0">
                <Annotation>dummy to have dec defined everywhere</Annotation>
            <Field symbol="U3" name="technical helper chemoattractant cell type 1" value="exp(-(space.y-size.y/2-5)^2/5^2)"/>
            <Field symbol="contact2medium" value="0.0"/>
            <Field symbol="m2field" value="0.0"/>
                <Input value="ismedium"/>
                <Output symbol-ref="contact2medium" mapping="maximum"/>
            <Event compute-time="on-execution" trigger="when-true" time-step="1.0">
                <Rule symbol-ref="m2field">
            <Lattice class="square">
                <Size symbol="size" value="100, 100, 0"/>
                    <Condition type="periodic" boundary="x"/>
                    <Condition type="periodic" boundary="y"/>
                <NodeLength value="1.0"/>
            <SpaceSymbol symbol="space"/>
                <Resolution symbol="memsize" value="100"/>
                <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="3.5e4"/>
            <SaveInterval value="0"/>
            <RandomSeed value="2"/>
            <TimeSymbol symbol="time"/>
            <CellType name="medium" class="medium">
                <Constant symbol="neighbors" value="0.0"/>
                <Constant symbol="p" name="production" value="0.0"/>
                <Property symbol="ismedium" value="1"/>
            <CellType name="release" class="biological">
                <Property symbol="cs" name="chemotactic strength" value="100.0"/>
                <Property symbol="p" name="production chemoattractant" value="0.01"/>
                <VolumeConstraint target="500" strength="1"/>
                <SurfaceConstraint target="0.85" strength="1" mode="aspherity"/>
                <MembraneProperty symbol="m" name="membrane substrate" tags="membrane" value="0">
                    <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>
                <Property symbol="direction" value="0"/>
                <Event compute-time="on-execution" trigger="when-true" time-step="1.0">
                    <Rule symbol-ref="m">
                        <Expression>memspace.phi>(pi/2-0.2) &amp;&amp; memspace.phi&lt;(pi/2+0.2)</Expression>
                <Chemotaxis contact-inhibition="false" strength="cs" field="U2" retraction="true"/>
                <Property symbol="dec" value="0.0"/>
                <Property symbol="ismedium" value="0.0"/>
            <CellType name="sense" class="biological">
                <Property symbol="cs" name="chemotactic strength" value="100.0"/>
                <Property symbol="p" name="production chemoattractant" value="0.01"/>
                <VolumeConstraint target="500" strength="1"/>
                <SurfaceConstraint target="0.85" strength="1" mode="aspherity"/>
                <Property symbol="direction" value="0"/>
                <Chemotaxis contact-inhibition="false" strength="cs" field="U3" retraction="true"/>
                <Property symbol="dec" value="0.1"/>
                <Property symbol="ismedium" value="0.0"/>
                <Chemotaxis strength="1" field="c"/>
                    <Input value="c"/>
                    <Output symbol-ref="maxc" mapping="maximum"/>
                <Property symbol="maxc" value="0.0"/>
            <Interaction default="0.0">
                <Contact type2="medium" type1="sense" value="-10"/>
                <Contact type2="medium" type1="release" value="20"/>
                <Contact type2="sense" type1="release" value="20"/>
            <MonteCarloSampler stepper="edgelist">
                <MCSDuration value="1.0"/>
                <MetropolisKinetics temperature="10.0"/>
            <ShapeSurface scaling="norm">
            <Population type="release" size="1">
                <InitRectangle mode="regular" number-of-cells="1">
                    <Dimensions origin="size.x/2,size.y/2-30/2,0" size="1.0, 1.0, 1.0"/>
                <InitProperty symbol-ref="direction">
            <Population type="sense" size="1">
                <InitRectangle mode="regular" number-of-cells="1">
                    <Dimensions origin="size.x/2,size.y/2+30/2,0" size="1.0, 1.0, 1.0"/>
                <InitProperty symbol-ref="direction">
            <Gnuplotter time-step="100" decorate="false">
                <Terminal name="png" persist="true"/>
                    <Field surface="true" symbol-ref="c" isolines="10" min="0.0"/>
                    <Cells opacity="0.55" value="cell.type">
                            <Color color="red" value="2"/>
                            <Color color="blue" value="1"/>
                <!--    <Disabled>
                <Field symbol-ref="U2"/>
                <!--    <Disabled>
                <Field symbol-ref="U3"/>
                    <Cells value="m"/>
            <ModelGraph include-tags="#untagged,global,membrane" format="svg" reduced="false"/>
            <Logger time-step="1.0">
                    <Symbol symbol-ref="maxc"/>
                    <Celltype celltype="sense"/>

    Model Graph.
    Model Graph.


    Files associated with this model: