Logistic Proliferation

Persistent Identifier

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

How to dynamically regulate individual cell proliferation?


Proliferation of individual cells may be coupled through the dependence on common resources. This turns the otherwise exponential growth of the population size into, for example, logistic growth. Stem cell populations in their niche may be modeled this way such that a bounded population size of stem cells results and generates a constant flux of differentiated cells. The latter scenario was motivated by Mavis in the User Forum and is picked up in this model.


Snapshot of the simulation with a stem cell niche (red) and differentiated cells (blue).
Snapshot of the simulation with a stem cell niche (red) and differentiated cells (blue).

The model considers two cell types, stem cells (red) and differentiated cells (blue). Stem cells proliferate with a rate ‘r*(1-N_SC/K)’ where ‘r’ is the maximum division rate of an isolated cell, ‘N_SC’ is the number of coupled stem cells (provided by Morpheus through the Symbol ‘celltype.stem_cell.size’) and ‘K’ is the carrying capacity of the niche. Differentiated cells, just for illustration, shrink their volume and migrate outward. Differentiation occurs with rate ’d'. The parameters ‘r’, ‘K’ and ’d' can be set in the ‘Global’ section of the model. The simulation is initialized with a single stem cell in the center.


Movie: Simulation of the logistic proliferation of individual cells (red) and differentiation into migrating cells (blue).

The number of simulated stem cells can be counted (purple in the time course plot) and shows the emergent balance of proliferation (coupled through a common carrying capacity) and differentiation. Also the number of differentiated cells is counted (green curve) and shows a linear increase after the stem cell population has reached its balance.

Number of stem cells and differentiated cells in the above simulation movie.
Number of stem cells and differentiated cells in the above simulation movie.


Get this model via:

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

    <?xml version='1.0' encoding='UTF-8'?>
    <MorpheusModel version="4">
            <Lattice class="hexagonal">
                <Size symbol="size" value="200, 200, 0"/>
                    <Condition type="noflux" boundary="x"/>
                    <Condition type="noflux" boundary="y"/>
            <SpaceSymbol symbol="space"/>
            <StartTime value="0"/>
            <StopTime value="2000"/>
            <TimeSymbol symbol="time"/>
            <ModelGraph include-tags="#untagged" format="dot" reduced="true"/>
            <Gnuplotter time-step="100">
                    <Cells max="2" min="1" value="cell.type">
                        <ColorMap adaptive-range="false">
                            <Color color="red" value="1"/>
                            <Color color="blue" value="2"/>
                <Terminal name="png"/>
            <Logger time-step="1.0">
                    <Plot title="Population size" time-step="-1">
                        <Style style="lines"/>
                        <Terminal terminal="png"/>
                            <Symbol symbol-ref="time"/>
                        <Y-axis minimum="0" maximum="60">
                            <Symbol symbol-ref="N_stem_cell"/>
                            <Symbol symbol-ref="N_differentiated_cell"/>
            <Function symbol="N_stem_cell" name="number of stem cells">
            <Function symbol="N_differentiated_cell" name="number of differentiated cells">
            <Constant symbol="r" name="proliferation rate" value="0.01"/>
            <Constant symbol="K" name="carrying capacity" value="50"/>
            <Constant symbol="d" name="differentiation rate" value="0.001"/>
            <CellType name="medium" class="medium"/>
            <CellType name="stem_cell" class="biological">
                <VolumeConstraint target="50" strength="1"/>
                <SurfaceConstraint target="0.9" strength="1" mode="aspherity"/>
                <CellDivision name="logistic proliferation" division-plane="major">
                    <Condition>rand_uni(0,1) &lt; r*(1-celltype.stem_cell.size/K)*mcs_duration</Condition>
                <ChangeCellType time-step="mcs_duration" newCellType="differentiated_cell" name="differentiation">
                    <Condition>rand_uni(0,1) &lt; d*mcs_duration</Condition>
            <CellType name="differentiated_cell" class="biological">
                <VolumeConstraint target="10" strength="1"/>
                <SurfaceConstraint target="0.8" strength="2" mode="aspherity"/>
                <DirectedMotion strength="0.5" name="motility" direction="cell.center.x-size.x/2, cell.center.y-size.y/2, 0"/>
            <Population type="stem_cell" size="1">
                <InitCellObjects mode="distance">
                    <Arrangement repetitions="1, 1, 1" displacements="1, 1, 1">
                        <Sphere center="size.x/2, size.y/2, 0" radius="4"/>
                <!--    <Disabled>
            <Contact type2="medium" type1="stem_cell" value="5"/>
                <!--    <Disabled>
            <Contact type2="medium" type1="differentiated_cell" value="5"/>
                <!--    <Disabled>
            <Contact type2="differentiated_cell" type1="stem_cell" value="6"/>
                <Contact type2="stem_cell" type1="stem_cell" value="-2"/>
                <!--    <Disabled>
            <Contact type2="differentiated_cell" type1="differentiated_cell" value="6"/>
            <ShapeSurface scaling="norm">
            <MonteCarloSampler stepper="edgelist">
                <MCSDuration symbol="mcs_duration" value="1"/>
                <MetropolisKinetics temperature="1"/>

    Model Graph
    Model Graph


    Files associated with this model: