# What's New

Morpheus 2 is a major release that improves modeling flexibility, usability, and allowing extensibility.

### Open source

• Morpheus is now open source.
• Morpheus is an extensible framework
• New modeling and analysis components can be added as plugins
• Extend the Morpheus modeling language MorpheusML by your concept
• Place your concept implementation into a plugin based on the stable C++ extension API and profit from
• Simple integration of MorpheusML and implementation
• Automated symbol dependency tracking and scheduling
• Integration with other components via math expression

### Simulator

##### Modeling
• Expressions everywhere
• In addition to numerical values, plugin parameters can now take mathematical expressions as inputs
• Greatly improves modeling flexibility by coupling of submodels
• CPM temperature can now also be function of time, e.g. to simulate annealing.
Parameters can given as math expressions, interpreted at run-time.
• CPM surface scaling
• MembraneProperties
• Variables with spatial resolution, mapped to cell membrane
• Uses circular (2D) or spherical (3D) approximation of cell shape
• Allows spatially resolved registration of (neighboring) cell properties
• Enables reaction-diffusion of properties on membrane
MembraneProperties provide a scalar field mapped to the cell membrane on which reaction-diffusion systems can be simulated.
• Reporters
• All Reporters, plugins that generate statistics and mappings, have been revised and generalized.
• NeighborhoodReporter provides statistics (e.g.sum, mean) on properties of the cell's directly adjacent microenvironment
• CellReporter provides statistics on properties of the cellular environment such as including the concentration of MembraneProperties and Fields.
NeighborhoodReporter counts the number of neighbors of the other cell type. Left: colors show two cell types. Middle: colors and labels show number of non-identical neighboring cells. Right: colors and labels show length of interface to non-identical neighboring cells
• A number of new plugins introduce new modeling features, including
• AddCell: add CPM cells during simulation based on a condition and a location specified by a probability density function.
• ChangeCelltype: change the cell type of a cell based on a condition.
• Protrusion: actin-inspired feedback model that control shape and motility of CPM cells, as proposed by Niculescu et al., 2015.
The new Protrusion plugin models positive feedback of active membrane regions, inspired by actin dynamics.
##### Performance
• Performance optimization
• Automatic scheduling has been revised and optimized by subdividing according to spatial contexts.
• Tracking of CPM object properties has been moved to an adaptive tracker, tracking only the required information
• All expressions are now in thread-safe containers to optimize use of multithreading.
• Performance measurements and profiling
• Information on execution time (wall time, CPU time) and peak memory usage
• Execution times (wall time) are listed per plugin
A performance profile is generated after each simulation.
##### Analysis
• TIFFPlotter
• Now writes OME-TIFF headers (Open Microscopy Environment) to facilitate visualization of 3D-5D image data with external such as Fiji or BioView3D.
Morpheus' TIFFPlotter exports time-lapse multichannel TIFF stacks with OME-TIFF header can be easily visualized with external tools such as BioView3D.
• Logger
• The completely revised Logger plugin provides generic tool for data export.
• Data export: Periodically writes any combination of variables (Globals, Properties, Fields, etc.) to file in CSV or Matrix format.
• Plotting: Logger also provides a versatile interface for generating data visualizations including time plots, phase diagrams, cell trajectory plot, spacetime plot, profile plots, surface plots etc.
The new Logger plugin provides a versatile interface for data export and data visualization.

### MorpheusML

• Scoping
• Lexical scoping was introduced: symbols are only valid on the scope in which they are declared.
• Improves intuitive character and consistency of model description language
• Allows multiple usages of symbols, setting global defaults, etc.
• Globals
• New Globals section for global constants, variables and Fields
• Scalar field previously PDE/Layer are moved into Globals/Fields
• MorpheusML 2.0
• Restructured MorpheusML markup language
• Allows better future integration with other formats such as SBML
• Fixboard can partially convert Morpheus 1.x models into new format.

### GUI

• Documentation
• Doxygen-generated in-app docs appear in HTML (using QtWebKit)
• Docs are both context-sensitive and can be searched (using QtHelp framework)
• Docs can include latex-based maths (displayed using MathJax)
The new in-app documentation is context-sensitive, browsable, features Latex equations and XML examples.
• New context-sensitive overview of addable plugins shows what plugins can be added
Plugins can now be added using a new panel that shows what can be added at the selected position.
• Generate symbol graph
• Shows interdependencies between symbols and scopes
Symbol graphs show how Morpheus interprets the model. This can be used for model testing and tracing bugs.
• Generate movies
• Images can be generatedfrom image sequences within GUI
• Also generates multiple movies from ParamSweep
• Requires ffmpeg or avconv (download from here)
Create movies from images.
• ImageTable
• Generate visual tables of ParamSweep results including images or movies (viewable in HTML5-enabled web browsers)
The new ImageTable feature gives a quick overview of the results of a parameter sweep from a web browser.

## Version 1.2.1

#### Changes

• SBML support is built-in for Ubuntu 14.04+ as libSBML was removed from repositories.
• Fixed rare GUI crashes on Mac OSX when moving model elements.

## Version 1.2

The changes in this version focus on improving modeling flexibility, but also include several improvements in automatic scheduling as well as a new preview panel in the user interface. Download version 1.2 here.

#### Major changes

New panel to preview images and text files in result browser.
• New preview panel in GUI in the result browser for images and plain text files.
• New ChildID option for Proliferation. This supports the representation of asymmetric cell divisions by providing a symbolic handle to treat daughter cells differently after cell division.
• New ChangeCellType plugin to conditionally change the cell type of a cell. By default, cell properties are copied, but may be overridden using Triggers.
• New VectorRule to manipulate PropertyVector, either in x,y,z or phi,theta,radius (spherical coordinates). This facilitates vector computations to e.g. control directed cell motility.
• New FlipCells plugin to represent cell motility in CA-like models. This plugin enables the conditional switching of positions with a random neighboring site.
• New PopulationReporter to collect population-level statistics on cell Properties. This allows individual cell behavior to depend on population-level properties, or to collect population statistics to log and plot.
• New StopCondition to terminate a simulation upon a Condition before reaching StopTime. This can significantly improve efficiency in e.g. parameter explorations or sensitivity analysis.
• New trigger option for Event. This provides a choice to trigger events (1) whenever the condition changes from false to true (as in SBML) or (2) whenever the condition is true.
• Several fixes and many improvements to automatic scheduling.
• Analysis tools are now scheduled according to input symbols if interval=0

#### Minor changes

• New InitCA plugin to populate CA-like models.
• Fix InitRectangle on hexagonal lattices.
• Support for $\alpha$-synchronous simulation.
• Fixed issue with Delay properties.
• HistogramLogger now supports logarithmic binning and plotting

#### Acknowledgments

Many of these new features are the result of requests from users. In particular, we thank Maria Herberg (Medical Faculty, TU Dresden), Angelo Torelli (Mannheim University of Applied Sciences) and Ovidiu Pârvu (Brunel University) for useful suggestions.

## Version 1.1.1

#### Minor changes

• Fix issue in Windows with SBML import feature.
• Fix issue in GUI with displaying newly created elements.
• Updated version for math expression parser (muparser).

## Version 1.1

#### Major changes

• Added SBML Import feature that converts SBML-based models into equivalent intracellular models of differential equations in Morpheus description language. An example model is added.
• Added DelayProperty that returns assigned values after a specified time lag which enables the simulation of delay differential equations. An example model is added.
• A distinction is made between Equations and Rules whereby the latter are equations within a System. Unlike Equations, Rules may have recurrency and be part algebraic loops.
• Events are now triggered whenever the condition change from false to true, for SBML compatibility.
• Sequential processes are now scheduled only as often as their input symbol can change. This avoids redundant processing and optimizes computational performance.

#### Minor changes

• Fixed issues with file dialogs and output folder button under Windows.
• Fixed libfreetype problems with Gnuplot.app under Mac OSX.
• Reduced verbosity in standard output (model.xml.out).