E-Cell Simulation Environment Version 3.1.100 User's Manual (Draft: Dec. 18, 2003)

Koichi Takahashi

E-Cell Project

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL in the file COPYING-DOCS distributed with this manual.

This manual is part of a collection of E-Cell manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license.

Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any E-Cell documentation, and the members of the E-Cell Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters.

DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT:

  1. DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND

  2. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.

Feedback

To report a bug or make a suggestion regarding the E-Cell Simulation Environment application or this manual, send an email to .


Table of Contents
1. Introduction
1.1. What is E-Cell
1.2. Organization of This Manual
2. Getting Started
2.1. Preparing Simulation
2.1.1. Converting EM to EML
2.1.2. Compiling C++ Dynamic Modules
2.2. Starting E-Cell Simulation Environment
2.2.1. GUI mode
2.2.2. Scripting mode
2.3. Other Commands
2.3.1. Getting An EM File From EML
2.3.2. E-Cell 1 Compatibility
3. Modeling with E-Cell
3.1. Objects In The Model
3.1.1. Types Of The Objects
3.1.2. Object Identifiers
3.1.3. Object Properties
3.2. E-Cell Model (EM) File Basics
3.2.1. What Is EM?
3.2.2. EM At A Glance
3.2.3. General Syntax Of EM
3.2.4. Macros And Preprocessing
3.2.5. Comments
3.3. Structure Of The Model
3.3.1. Top Level Elements
3.3.2. Systems
3.3.3. Variables And Processes
3.3.4. Connecting Steppers With Entity Objects
3.3.5. Connecting Variable Objects With Processes
3.4. Modeling Schemes
3.4.1. Discrete Or Continuous ?
3.4.2. Some Available Discrete Classes
3.4.3. Some Available Continuous Classes
3.5. Modeling Convensions
3.5.1. Units
4. Modeling Tutorial
4.1. Running the model
4.2. Using Gillespie algorithm
4.2.1. A Trivial Reaction System
4.2.2. Specifying the Next Reaction method
4.2.3. Defining the compartment
4.2.4. Defining the variables
4.2.5. Defining reaction processes
4.2.6. Putting them together
4.3. Using Deterministic Differential Equations
4.3.1. Choosing Stepper and Process classes
4.3.2. Converting the model
4.4. Making the Model Switchable Between Algorithms
4.5. A Simple Deterministic / Stochastic Composite Simulation
4.5.1. A tiny multi-timescale reactions model
4.5.2. Writing model file
4.6. Custom equations
4.6.1. Complex flux rate equations
4.6.2. Algebraic equations
4.7. Other Modeling Schemes
4.7.1. Discrete events
5. Scripting A Simulation Session
5.1. Session Scripting
5.2. Running E-Cell Session Script
5.2.1. Running ESS in command line mode
5.2.2. Loading ESS from Osogo Session Monitor
5.2.3. Using SessionManager
5.3. Writing E-Cell Session Script
5.3.1. Using Session methods
5.3.2. Getting Session Parameters.
5.3.3. Observing and Manipulating the Model with ObjectStubs
5.4. Handling Data Files
5.4.1. About ECD file
5.4.2. Importing ECDDataFile class
5.4.3. Saving and loading data
5.4.4. ECD header information
5.4.5. Using ECD outside E-Cell SE
5.4.6. Binary format
5.5. Manipulating Model Files
5.5.1. Importing EML module
5.6. Other Methods
5.6.1. Getting version numbers
5.6.2. DM loading-related methods
5.7. Advanced Topics
5.7.1. How ecell3-session runs
5.7.2. Getting information about execution environment
5.7.3. Debugging
5.7.4. Profiling
5.8. E-Cell Python Library API
5.8.1. Session Class API
5.8.2. ObjectStub Classes API
5.8.3. ECDDataFile Class API
6. Creating New Object Classes
6.1. About Dynamic Modules
6.2. Defining a new class
6.2.1. DMTYPE, CLASSNAME and BASECLASS
6.2.2. Filename
6.2.3. Include Files
6.2.4. DM Macros
6.2.5. Constructor And Destructor
6.2.6. Types And Declarations
6.2.7. Polymorph class
6.2.8. Other C++ statements
6.3. PropertySlot
6.3.1. What is PropertySlot
6.3.2. How to define a PropertySlot
6.3.3. Using PropertySlots In Simulation
6.4. Defining a new Process class
6.5. Defining a new Stepper class
6.6. Defining a new Variable class
6.7. Defining a new System class
7. Standard Dynamic Module Library
7.1. Steppers
7.1.1. DifferentialSteppers
7.1.2. DiscreteEventSteppers
7.1.3. DiscreteTimeStepper
7.1.4. PassiveStepper
7.2. Process classes
7.2.1. Continuous Process classes
7.2.2. Discrete Process classes
7.2.3. Other Process classes
7.3. Variable classes
8. Simulation Mechanism of E-Cell
9. About E-Cell Simulation Environment
A. Empy Module Manual
Index
List of Tables
5-1. Methods and properties of Session class
5-2. ObjectStub classes method list
5-3. ECDDataFile class method list
List of Examples
3-1. A tiny EM example
3-2. An assignment rule by using PythonProcess
3-3. Michaelis-Menten reaction with ExpressionFluxProcess
3-4. A simple algebraic equation using ExpressionAlgebraicProcess
3-5. A simple algebraic equation using PythonProcess
4-1. The simplest Gillespie-Gibson model
4-2. A simple deterministic mass-action model
4-3. simple-switchable.em
4-4. composite.em
4-5. A differential equation in the Drosophila model
5-1. A simple ESS example.
5-2. An ESS to check ATP level every 10 seconds
6-1. CLASSNAME.cpp; a boilarplate DM template.
6-2. SimpleProcess.cpp