documentation:model_description_language
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation:model_description_language [18:49 27.07.2013] – Walter | documentation:model_description_language [15:36 01.08.2013] (current) – [Symbols and expressions] Walter | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Model description language ====== | ====== Model description language ====== | ||
- | Documentation | + | The Morpheus model description language (MDL) is a domain-specific extensible mark-up language (XML) for the specification of multiscale multicellular simulation models. It has been developed to separate the process of modeling from numerical implementation to allow users to specify simulation models in terms of familiar biological and mathematical concepts rather than in a general-purpose programming language (see sections [sub: |
+ | |||
+ | In Morpheus, models are fully specified by single XML files written in a human-readable format. This circumvents complex models to be distributed among multiple source and parameter files, and avoids the need for (re)compilation of source code after model changes. Moreover, encapsulation of model description in single files eases editing, archiving, checkpointing and the exchange of models among users. | ||
+ | |||
+ | The key enabling technique that allows concise descriptions of (potentially complex) multiscale models is the use of symbols, symbol references and expressions (section [sub: | ||
+ | |||
+ | [{{: | ||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ==== Mark-up language (XML) and XML schema description (XSD) ==== | ||
+ | |||
+ | |||
+ | The Morpheus model description language (MDL) is based on the extensible mark-up language (XML) that enables the use of human-readable domain-specific terminology and provides an extensible interface to adapt to the ongoing development of the simulation environment. From a computation perspective, | ||
+ | |||
+ | The terminology, | ||
+ | |||
+ | The standalone graphical user interface application (morpheus-gui) uses these rules to validate model files (checking whether a certain XML file conforms to these rules) as well as to restore outdated model files (adding or removing elements and attributes to make model compliant to newer version of the MDL). Most importantly, | ||
+ | |||
+ | Unfortunately, | ||
+ | |||
+ | Nevertheless, | ||
+ | |||
+ | This separation between simulator and GUI is useful to allow headless simulations, | ||
+ | |||
+ | [{{ : | ||
+ | |||
+ | ==== Domain specific language ==== | ||
+ | |||
+ | An important design goal for the Morpheus MDL has been to be able to express multiscale multicellular models in terms of familiar biological and mathematical terms instead of a general-purpose programming code or scripting language. In other words, the MDL should be a domain-specific language, a descriptive formal language that is suitable for computer processing while allowing models to be expressed in the terminology and at the level of abstraction of the intended application domain. This makes models easier to develop and renders them self-documenting. | ||
+ | |||
+ | Having multicellular systems biology as its application domain, the choice of biological and mathematical terminology follows naturally. The MDL uses biological concepts such as CellType and Populations to define simulated entities, and concepts such as Proliferation and Chemotaxis to define cellular processes. In addition, the MDL employs mathematical terms such as Equation and Systems of DiffEqn (differential equations) to specify relations and changes of variables. Yet, the inclusion of some computational terms related to the numerical implementation cannot be avoided. For instance, a time-step must be specified for numerical solvers. Moreover, it is of course necessary to specify the duration of simulation and the size or resolution of the simulated domain. The MDL therefore uses a mixture of biological, mathematical and computational terminology. A glossary of the terminology of the Morpheus model description language is available | ||
+ | |||
+ | The domain-specificity of the MDL also influences its structure. For instance, whereas reaction-diffusion models describing morphogens must be specified outside of the definition of a CellType, the specification of ordinary differential equations (ODE) describing intracellular processes is only allowed inside a CellType. As another example, the specification of cellular Potts-related parameters (CPM) is separated from the definition of CellTypes to allow cell-based models to be specified without CPM-like cell motility. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Symbols and expressions ==== | ||
+ | |||
+ | The use of symbolic references and expressions provides an important level of model flexibility in the model description language. Mathematical expressions can be used to relate model variables to each other, describe how variables change or to analyze model behavior. They are written as plain-text formulae in terms of user-defined symbols. This makes it straightforward to translate handwritten or published mathematical models into simulation models (see table [tab: | ||
+ | |||
+ | A glossary of the available mathematical constructs included in the Morpheus model description language is included in section [sec: | ||
+ | |||
+ | ==== Symbol definitions ==== | ||
+ | |||
+ | Declaration of each model variable requires the specification of a symbol that is used as a reference to the quantity it represents. Symbols must be provided for user-specified constants (Constant) and variables such as cell-bound properties in cell-based models (CellType\fshyp{}Property) and species in reaction-diffusion models (PDE\fshyp{}Layer). Optionally, symbols can also be specified for built-in model variables such as lattice size (Lattice\fshyp{}Size), | ||
+ | |||
+ | === Symbol references and expressions=== | ||
+ | |||
+ | Symbol definitions and references | ||
+ | |||
+ | Symbols can be referenced in two ways (see figure [fig: | ||
+ | |||
+ | Second, symbols can also be referenced using the attribute symbol-ref, which provides an interface for reading values as well as assigning new values to symbols. These can act both as independent variable, input symbols, and dependent variables, i.e. output symbols. Note that some symbols, such as those referring to constants, lattice size or time, are read-only and cannot be assigned via symbol references. | ||
+ | |||
+ | === Metadata === | ||
+ | |||
+ | Symbols are more than a simple reference to a value. They contain metadata about the (sub)model in which they are defined. This metadata is derived from the XML path in which their definition occurs. At initialization, | ||
+ | |||
+ | === Resolving symbol references === | ||
+ | |||
+ | How a symbol reference should be resolved depends on (1) the context in which it is used, and (2) the context in which the symbol has been defined. In multi-scale models these contexts may be different. Therefore, like symbol definitions, |
documentation/model_description_language.1374943754.txt.gz · Last modified: 18:49 27.07.2013 by Walter