~~NOTOC~~ ====== What's New ====== Morpheus 2 is a major release that improves modeling flexibility, usability, and allowing extensibility. ==== Open source ==== * Morpheus is now **open source**. * Source code is available in the [[https://gitlab.com/morpheus.lab/morpheus|Git repository]]. * Released under a permissive [[https://opensource.org/licenses/BSD-3-Clause|BSD license]] * 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 * Integrate external simulation code into Morpheus by using the Symbol interface ==== 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. [{{ :download:math_expression_2.png?direct&150 |Parameters can given as math expressions, interpreted at run-time.}}] * **CPM surface scaling** * New correction terms for scaling of surface of CPM cells * Now calculated in accordance to the scaling rules as specified in [[http://bmcbiophys.biomedcentral.com/articles/10.1186/s13628-015-0022-x|Magno et al., BMC Biophysics, 2015]] * **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 [{{ :download:membrane_pde.png?direct&250 |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''. [{{ :download:reporters.png?direct&500 |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 [[http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004280|Niculescu et al., 2015]]. [{{ :download:protrusion.png?direct&200 |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 [{{ :download:profiling.png?direct&500 |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 [[http://fiji.sc/Fiji|Fiji]] or [[http://www.dimin.net/software/bioview3d/|BioView3D]]. [{{ :download:BioView3D.png?direct&250 | Morpheus' TIFFPlotter exports time-lapse multichannel TIFF stacks with OME-TIFF header can be easily visualized with external tools such as [[http://www.dimin.net/software/bioview3d/|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. [{{ :download:logger.png?direct&500 |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) [{{ :download:documentation.png?direct&400 |The new in-app documentation is context-sensitive, browsable, features Latex equations and XML examples.}}] * **Panel with addable plugins** * New context-sensitive overview of addable plugins shows what plugins can be added [{{ :download:plugin_panel.png?direct&300 |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 [{{ :download:symbol_graph.png?direct&400 |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 [[https://www.ffmpeg.org/download.html|here]]) [{{ :download:create_movie.png?direct&400 |Create movies from images.}}] * **ImageTable** * Generate visual tables of ''ParamSweep'' results including images or movies (viewable in HTML5-enabled web browsers) [{{ :download:image_table.png?direct&300 | 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 [[download:download|here]]. === Major changes === [{{ :download:preview_morpheus.png?direct&400 |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. * See new example [[examples:cellular_potts#Stem cells in the intestinal crypt|Crypt.xml]] * New ''ChangeCellType'' plugin to conditionally **change the cell type** of a cell. By default, cell properties are copied, but may be overridden using ''Triggers''. * See new example [[examples:cellular_potts#Stem cells in the intestinal crypt|Crypt.xml]] * 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. * See new example [[examples:cellular_potts#Run and Tumble|RunAndTumble.xml]] * New ''FlipCells'' plugin to represent **cell motility** in CA-like models. This plugin enables the conditional switching of positions with a random neighboring site. * See new example [[examples:miscellaneous#Particle Aggregation: FlipCells|ParticleAggregation.xml]] * 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. * See new examples [[examples:miscellaneous#Particle Aggregation: FlipCells|ParticleAggregation.xml]] and [[examples:cellular_potts#Stem cells in the intestinal crypt|Crypt.xml]] * 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. * See new example [[examples:miscellaneous#Particle Aggregation: FlipCells|ParticleAggregation.xml]] * 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. * See examples [[examples:miscellaneous#Particle Aggregation: FlipCells|ParticleAggregation.xml]], [[examples:differential_equations#Coupled ODE lattice: Lateral signaling|LateralSignaling.xml]], [[examples:miscellaneous#Game of Life: Cellular Automata|GameOfLife.xml]] and [[examples:miscellaneous#French Flag: Morphogen gradient|FrenchFlag.xml]] * 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 ([[http://muparser.beltoforion.de/|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 [[examples:differential_equations#sbml_importmapk_signaling|example model]] is added. * Added ''DelayProperty'' that returns assigned values after a specified time lag which enables the simulation of **delay differential equations**. An [[examples:differential_equations#delay_differential_equationscell_cycle|example model]] is added. * A distinction is made between **''Equation''s and ''Rule''s** whereby the latter are equations within a ''System''. Unlike ''Equation''s, ''Rule''s may have recurrency and be part algebraic loops. * **''Event''s** 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''). * Moved Examples menu to toolbar menu. * Various minor fixes. -----