Try the Examples

Examples Menu

To explore the potential and modeling features, it is the best to learn by example. Morpheus comes with a range of fully functional example models showcasing a number of model formalism and modeling features. You can open these models from the Examples menu:

Use the `Examples` menu try out some models.
Use the Examples menu try out some models.

There are models showing ordinary differential equations as well as reaction-diffusion systems in 1D, 2D and 3D and cell-based simulations with the cellular Potts model. Moreover, there are several multi-scale models in which the above models are combined and some other miscellaneous models.

Some [example models](/#models) provided with Morpheus.
Some example models provided with Morpheus.

We recommend that you have try out a few models, change parameters, add or remove some things, change the visualization, etc. to get a feel of what modeling with Morpheus is like.

Most of the built-in examples you will also find online in the Morpheus Model Repository.

Three Basic Models

We suggest that you take a look at the following three basic models. Just press run and pay attention to how the models are defined. Take the chance to change some parameters and see what happens.

ODE: Predator-Prey

This model implements an extension of the well-known Lotka-Volterra system.

Output of `PredatorPrey.xml` example model.
Output of PredatorPrey.xml example model.

Check out PredatorPrey.xml to try yourself via:

If you look at the model itself, you’ll see that it first specifies the Space and Time of a simulation, here defined as a single lattice site and $5000\ \mathrm{atu}$ (arbitrary time units). In Global (see figure below), two Variables for predator and prey densities are set up. The differential equations themselves are specified in a System which consists of a number of Constants and two DiffEqn (differential equations) and are computed using the runge-kutta solver.

`Global` section of `PredatorPrey.xml`.
Global section of PredatorPrey.xml.

Output in terms of a text file as well as a plot is created by a Logger, the plugin in the Analysis section.

Tips and Tricks: Bring the system into a stable steady state (fixed point, no oscillations) by changing parameters in Global/System/Constant.

PDE: Activator-Inhibitor

This is the classic Gierer-Meinhardt model of pattern formation.

Output of `ActivatorInhibitor_2D.xml` example model.
Output of ActivatorInhibitor_2D.xml example model.

Check out ActivatorInhibitor_2D.xml to try yourself via:

In Space, it sets up a square lattice of $150 \times 150$ with periodic BoundaryConditions. The model itself is defined in the Global section where two diffusive Fields are created. The reaction step of the reaction-diffusion is specified in a System containing Constants and DiffEqns.

`Global` section of `ActivatorInhibitor_2D.xml`.
Global section of ActivatorInhibitor_2D.xml.

The plot above is created using the Gnuplotter plugin in the Analysis section, showing the concentrations of the two interacting species.

In order to plot inhibitor output just change the Field in Gnuplotter.
Tips and Tricks: Change the diffusion coefficients in Global/Field/Diffusion to get finer patterns or no patterning at all.

CPM: Cell Sorting

This reproduces the first cellular Potts model that Graner and Glazier used to study cell sorting based on the differential adhesion hypothesis.

Output of `CellSorting_2D.xml` example model. Cells are color-coded based on their `CellType` (left), number of neighbors of different type (center) and length of boundary to cells of other type (right).
Output of CellSorting_2D.xml example model. Cells are color-coded based on their CellType (left), number of neighbors of different type (center) and length of boundary to cells of other type (right).

Check out CellSorting_2D.xml to try yourself:

Apart from specifying Space and Time, a number of CellTypes is specified. Each one has a VolumeConstraint to regulate the size of the cells. Remaining plugins are used to track the cell-cell boundary lengths.

In the CPM section, the Interaction energies are specified that control the ‘adhesion’ between cells of different cell types.

Smaller energy means larger adhesion.

CPM-specific parameters such as the temperature of the MetropolisKinetics is also specified here. To define the spatial arrangement of cells in the lattice, in CellPopulations two Populations are described. These are initialized randomly in a circle using the InitCircle plugin.

A Gnuplotter is set up to visualize cells and a Logger is used to log and plot the boundary lengths.

Tips and Tricks: Get the cells to mix, such that a pattern of alternating red and green cells emerges, by changing the interaction energies in CPM/Interaction.

Wrapping up

You probably have noticed some similarities and differences among these three models.

Clearly, each model defined the Space and Time of a simulation – even the non-spatial predator-prey model. These sections are indeed required. The Analysis section is not obligatory, yet all models use it since a simulation without output of any kind (plots or stats) is incomplete simulation.

Other sections such as CellTypes and CPM are optional and only appear when necessary. These are only used in the CPM example and do not appear in the ODE and PDE examples.

Note that you could also have a model with cells specified in CellTypes but without using a cellular Potts model and therefore no optional CPM section (e.g. see ODELateralSignaling.xml).

The models above also show some useful ways to generate output from the simulations using the flexible Logger and Gnuplotter plugins.