documentation:faq
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| documentation:faq [13:43 17.08.2021] – Uncollapse FAQ Diego Jahn | documentation:faq [14:14 17.08.2021] (current) – Moved to GitLab Pages Diego Jahn | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| - | ==== Software structure ==== | ||
| - | Morpheus is a self-contained application. Internally, it consists of two stand-alone executables: | ||
| - | * '' | ||
| - | * '' | ||
| - | The communication between these stand-alone applications is through XML and XSD files: | ||
| - | * The GUI reads an XML Schema description (XSD) file that specifies rules for valid XML models. | ||
| - | * The GUI start a simulation job by executing '' | ||
| - | |||
| - | Note that both executable can also be used as stand-alone programs. The simulator '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ==== Source code ==== | ||
| - | |||
| - | ** Source ** | ||
| - | |||
| - | The source code publicly available at [[https:// | ||
| - | |||
| - | ** Building from source ** | ||
| - | |||
| - | Information on building Morpheus from source can be found [[https:// | ||
| - | |||
| - | ==== Where can I get help? ==== | ||
| - | |||
| - | ** User forum ** | ||
| - | |||
| - | Use the [[forum: | ||
| - | |||
| - | ** User manual ** | ||
| - | |||
| - | The [[documentation: | ||
| - | |||
| - | |||
| - | ** Debug mode ** | ||
| - | |||
| - | Run your model in debug mode by select the crashed job in the Job Queue, then right-click and choose '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ==== Developers ==== | ||
| - | |||
| - | Morpheus is developed by Jörn Starruß and [[http:// | ||
| - | |||
| - | We are part of the [[http:// | ||
| ===== Modeling ===== | ===== Modeling ===== | ||
| - | ==== Your first model ==== | ||
| - | ** Use an example ** | ||
| - | The easiest way to start to create your own models, is to browse the [[examples: | ||
| - | |||
| - | ** Start from scratch ** | ||
| - | |||
| - | To start from scratch, use '' | ||
| - | |||
| - | ** Required and optional model items ** | ||
| - | |||
| - | Each valid '' | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | And may be extended with the following optional items: \\ | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | And can be analyzed using the following optional items: \\ | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ==== Boundary conditions ==== | ||
| - | |||
| - | ** Types of Boundary Conditions ** | ||
| - | |||
| - | Morpheus provides three types of boundary conditions. | ||
| - | |||
| - | ^ Types of BoundaryConditions | ||
| - | ^ Name ^ Synonym ^ Meaning ^ | ||
| - | | **Periodic** | Wrap-around | Border states are mapped to states at opposite border. | | ||
| - | | **Constant** | Dirichlet | Border states have specified constant values. | | ||
| - | | **Noflux** | Neumann | Derivative at border is zero. | | ||
| - | |||
| - | These can be specified in '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | Note that there are six boundaries ('' | ||
| - | |||
| - | ** Constant boundary condition ** | ||
| - | |||
| - | To define constant boundaries, select '' | ||
| - | |||
| - | To specify the **values** the constant boundaries should take, we distinguish between reaction-diffusion models ('' | ||
| - | |||
| - | ** Reaction-diffusion models (PDE) ** | ||
| - | |||
| - | When using '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ** Cell-based models ** | ||
| - | |||
| - | A particular '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ==== Initial conditions ==== | ||
| - | |||
| - | To specify initial conditions, we distinguish between reaction-diffusion models ('' | ||
| - | |||
| - | ** Reaction-diffusion models (PDE) ** | ||
| - | |||
| - | To set an initial condition for a species in the reaction-diffusion model, specify it in '' | ||
| - | |||
| - | Note that you can express the initial condition in terms of the lattice size using the symbols set in '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ** Cell-based models ** | ||
| - | |||
| - | Initial conditions for a '' | ||
| - | |||
| - | [{{ : | ||
| ==== Random seed ==== | ==== Random seed ==== | ||
| Line 155: | Line 30: | ||
| * In simulation using multithreading (openMP), each thread gets its own random seed. Therefore, to reproduce exact results, one needs to specify the same random seed as well as the same number of threads. | * In simulation using multithreading (openMP), each thread gets its own random seed. Therefore, to reproduce exact results, one needs to specify the same random seed as well as the same number of threads. | ||
| - | ==== Time scales ==== | ||
| - | |||
| - | Specifying time scales is important, especially in multiscale models in which dynamics occur at multiple temporal scales. | ||
| - | |||
| - | In Morpheus, we distinguish three time scales: | ||
| - | - Global time: defines the time frame of a simulation. | ||
| - | - Monte Carlo time scale: defines updating scheme of cells. | ||
| - | - System time scale: defines updating and dynamics of systems of (differential) equations. | ||
| - | |||
| - | ** Global time ** | ||
| - | |||
| - | Each model must specify a **global time** scheme under '' | ||
| - | |||
| - | For **dimensionless models**, a sensible choice for the global time scheme would be from $0$ to $1$. For an example, see the [[examples: | ||
| - | |||
| - | Alternatively, | ||
| - | |||
| - | ** Monte Carlo time scale (CPM) ** | ||
| - | |||
| - | The time scale of cellular Potts models can be specified using '' | ||
| - | |||
| - | For example, if the global time is defined from $0 \rightarrow 1$, and '' | ||
| - | |||
| - | Alternatively, | ||
| - | |||
| - | Note that changing the '' | ||
| - | |||
| - | ** System time scale (ODE/PDE) ** | ||
| - | |||
| - | To define the time scale for a '' | ||
| - | - Numerical updating scheme: how often the equations with the systems are evaluated. | ||
| - | - System dynamics: setting the time scale of ODE model dynamics, relative to the global time. \\ | ||
| - | |||
| - | The numerical updating of a system of equations is defined in '' | ||
| - | |||
| - | To **change the time scale of the dynamics** of simulated ODE model, you can use the '' | ||
| ==== Spatial scale ==== | ==== Spatial scale ==== | ||
| Line 202: | Line 41: | ||
| Dimensionless space is assumed, unless a unit is specified. | Dimensionless space is assumed, unless a unit is specified. | ||
| - | |||
| - | ==== Neighborhoods ==== | ||
| - | |||
| - | ** Types of Neighborhoods ** | ||
| - | |||
| - | Two types of neighborhood are used: \\ | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ** Order and Distance ** | ||
| - | |||
| - | The number of neighboring nodes to include can be specified in two different units: \\ | ||
| - | |||
| - | * Distance: All nodes <= this distance are included in the neighborhood. | ||
| - | * Order: All nodes of this order are included in the neighborhood. | ||
| - | |||
| - | ** Order ** | ||
| - | |||
| - | The " | ||
| - | |||
| - | In a square lattice: | ||
| - | * Order 1: 4-member, axial (von Neumann) | ||
| - | * Order 2: 8-member, radial (Moore) | ||
| - | * Order 3: 12-member, axial | ||
| - | * ... | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | ==== '' | ||
| - | |||
| - | Both are algebraic expressions, | ||
| - | |||
| - | * A '' | ||
| - | * An '' | ||
| - | ^ ^ Attribute ^ Evaluation ^ | ||
| - | |'' | ||
| - | |'' | ||
| ===== Analysis ===== | ===== Analysis ===== | ||
| - | ==== 2D Visualization (Gnuplot) ==== | ||
| - | | ||
| - | Use the '' | ||
| - | ==== 3D Visualization (TIFF / VTK) ==== | ||
| - | |||
| - | ** 3D visualization ** | ||
| - | |||
| - | To visualize 3D simulations, | ||
| - | |||
| - | These files can be rendered with external software, such as [[http:// | ||
| - | |||
| - | ** Viewing 3D TIFF images with Fiji/ImageJ ** | ||
| - | |||
| - | To export 3D images as TIFF z-stacks, use the '' | ||
| - | |||
| - | The resulting TIFF images can be opened using the 3D Viewer in [[http:// | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | By concatenating TIFF stacks, you can also render 4D (3D+time) or even 5D (3D+time+channels) movies. \\ | ||
| - | |||
| - | ** Fiji Macros ** | ||
| - | |||
| - | We provide some simple Fiji macros to generate such 3D images and 4D/5D movies. To install them: \\ | ||
| - | * Download {{:: | ||
| - | * Extract contents in Fiji/macros | ||
| - | * Mac: Select '' | ||
| - | * Ubuntu: Default location is '' | ||
| - | |||
| - | This will install a new toolset in the Fiji interface called '' | ||
| - | |||
| - | ** Paraview ** | ||
| - | |||
| - | [[http:// | ||
| ==== Data output and visualization ==== | ==== Data output and visualization ==== | ||
| Line 443: | Line 211: | ||
| ===== GUI ===== | ===== GUI ===== | ||
| - | ==== Execution mode: '' | ||
| - | |||
| - | [{{ : | ||
| - | |||
| - | Simulations can be executed in different **job queues** for different tasks. \\ | ||
| - | |||
| - | Local/ | ||
| - | |||
| - | ** Local / Interactive / Remote ** | ||
| - | |||
| - | Roughly, local mode is the ' | ||
| - | |||
| - | In interactive mode: | ||
| - | * Visual output (e.g. Gnuplotter) is directed to an on-screen terminal by overriding the specified terminal. | ||
| - | * Stop current interactive job from toolbar button. | ||
| - | |||
| - | ** Remote ** | ||
| - | |||
| - | Remote mode submits a job to the queueing system on a remote high performance computer. | ||
| - | |||
| - | Remote mode requires password-less '' | ||
| - | |||
| - | On first use, Morpheus copies a proxy script to the remote computer through which Morpheus communicates with the job scheduling system. Morpheus is shipped with a proxy script for [[http:// | ||
| - | |||
| - | ^ Job queue ^ Purpose ^ Behavior ^ | ||
| - | | **Local** | ||
| - | | **Remote** | Remote batch processing | ||
| - | | **Interactive** | Testing mode | Start/Stop simulations from toolbar buttons. \\ Directs visual output to on-screen terminal. \\ Overrides '' | ||
| ==== FixBoard ==== | ==== FixBoard ==== | ||
| Line 527: | Line 267: | ||
| Remove or rename the file '' | Remove or rename the file '' | ||
| - | |||
| - | ==== Checkpointing (simulation snapshots) ==== | ||
| - | |||
| - | ** Checkpointing ** | ||
| - | |||
| - | Storing snapshots of the simulation state during execution is called [[http:// | ||
| - | |||
| - | This allows the user to e.g.: | ||
| - | |||
| - | * Restore a simulation | ||
| - | * Continue a simulation under different conditions | ||
| - | * Use the end-state of a simulation as initial condition of a new simulation \\ | ||
| - | |||
| - | ** Enable checkpointing ** | ||
| - | |||
| - | Checkpointing is switched off by default. | ||
| - | |||
| - | To enable checkpointing, | ||
| - | |||
| - | To set the interval, set the '' | ||
| - | |||
| - | Special cases: | ||
| - | * value = -1: Disable checkpointing | ||
| - | * value = 0: Store state only at start and end | ||
| - | * value > 0: Store state at specified time interval | ||
| - | |||
| - | ** File format ** | ||
| - | |||
| - | Snapshots are saved in a compressed XML format with the filename '' | ||
| - | |||
| - | ** Open saved models ** | ||
| - | |||
| - | Snapshot files '' | ||
| - | |||
| - | From the command line, first unzip the file and then run '' | ||
| - | |||
| - | ** Limitations ** | ||
| - | |||
| - | The snapshots store the complete simulation state. However, the values of **PDE Layers are not stored**. | ||
| - | |||
| - | This is excluded because of (1) the large storage requirements and (2) the required time to write to text file. (In the future, separate binary files will be written for PDE Layeres which can be stored and written more efficiently, | ||
| - | |||
| - | ** Restore parameter sweeps ** | ||
| - | |||
| - | Parameter sweeps can also be restored. This restores the parameters and value ranges specified for a particular model. | ||
| - | |||
| - | This feature requires an opened model that has the same parameters. | ||
| - | |||
| - | ===== Settings ===== | ||
| - | |||
| - | ==== Multithreading / Concurrent jobs ==== | ||
| - | - Number of threads: Used to set number of openMP threads for (in-job parallelization) | ||
| - | - Concurrent jobs: number of jobs executed in parallel (between-job parallelization) | ||
| - | |||
| - | ==== Gnuplot path ==== | ||
| - | |||
| - | By default, Morpheus uses the first GnuPlot executable it can find in the PATH environmental variable. | ||
| - | Optionally, you can overrule this path. | ||
| - | |||
| - | ** Graphical User Interface ** | ||
| - | |||
| - | To use a specific GnuPlot version, specify you gnuplot executable under '' | ||
| - | |||
| - | ** Command Line Interface ** | ||
| - | |||
| - | To specify a gnuplot executable from the command line, you can use the '' | ||
| - | <code bash> | ||
| - | morpheus -gnuplot-path [File] | ||
| - | </ | ||
documentation/faq.1629200586.txt.gz · Last modified: 13:43 17.08.2021 by Diego Jahn