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.
  • 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 )
        {
          ...
        }
        

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 ]
      }
      

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.