Introduction of Conceptual Entities in E-Cell
2007 Moriyoshi Koizumi <mozo@sfc.keio.ac.jp>
The Problem That Matters
- E-Cell doesn't provide comprehensive support for meta-information in models.
- It burdens users when it comes to large-scale modeling.
- Added semantics:
- Concepts
- Units
- Entity relationships
- Annotation
- Descriptions about the functions of an entities.
- Concepts
- The Workaround
- Users handle semantics by the means of EMPY.
- Examples
- Unit conversion
@{ VOLUME = 1e-18 N_A = 6.02e+23 } ... Variable Variable( M ) { Value @(3.6132E-01 * N_A * VOLUME); } - Annotation
@{MAIN_STEPPER='NR1'} @{MAIN_PROCESS='GillespieProcess'} @{UNFOLDING_PROCESS='GillespieProcess'} ... Process @(MAIN_PROCESS)( S32Trans ) { ... }
- Unit conversion
Solutions
- Facades
- Prototypes
- Attributes
Facades
- A Facade is a convenience System that separates its content from the outer entities.
- Delegates and exposes any properties of the contents as its properties (“terminals”.)
- A facade may act as if it was a Variable.
- User-defined rules are incorporated as assignment processes.
- Rule implementation with Facades
Process ExpressionAssignmentProcess(C) { Expression R0.Value * N_A * getSuperSystem().getSuperSystem().Size; VariableReferenceList [ R0 Variable:.:MolarConc 0 ] VariableReferenceList [ R1 Variable:.:Quantity 1 ] }
Prototypes
- A prototype is an immutable entity that acts just as a template.
- On the creation of a new entity associated with a prototype, all of its properties and contents are copied from the prototype.
- Allows users to reuse functional components of the models.
- It is also possible to store initial condition to a prototype of the whole model.
- Example
Process ExpressionAssignmentProcess(C) : ProtoC { VariableReferenceList [ R0 Variable:.:S0 0 ] VariableReferenceList [ R1 Variable:.:P0 1 ] }
Attributes
- A set of information that annotates.
- Any entities and properties can be annotated with arbitrary number of attributes.
- Examples of attributes
- Unit
Variable Variable(S0) { @@Unit(MolarConc) Value 0.01 } - Text description of an entity
@@Description("relocated from nucleus to cytoplasm") Variable Variable(R0) { Name "PER mRNA" } - Relationships of entities (reactant / product / modifier etc.)
Process MassActionFluxProcess(P0) { @@Relationship(Reactant) VariableReferenceList [ R0 Variable:.:S0 -1 ] @@Relationship(Product) VariableReferenceList [ P0 Variable:.:P0 1 ] @@Relationship(Modifier) VariableReferenceList [ M0 Variable:.:M0 0 ] }
- Unit
Applications
- Ontology-based model representation
- Modeling support tools
- More intuitive modeling based on the domain rules.
- Visualization (E-Cell 3D, etc.)
- Sophisticated representation of pathway dynamics.
- Modeling support tools
