What is EcoNet?
EcoNet is a dynamical simulation and network analysis software for ecological systems that can be expressed as a set of compartments, and flows among these compartments. Flow currency can be energy, biomass, or a specific element such as C, N or P. Compartments can represent anything from accumulated organic matter to a group of species.
EcoNet is designed to simplify the model building, simulation and analysis effort. The simplicity of EcoNet interface not only encourages first time modelers to access a powerful modeling tool, but also minimizes the model building effort for experienced users, closing the gap between the thought process and the results.
|
Actually, any process that can be represented as a stock-flow diagram, related to Ecology or not, can be implemented in EcoNet within a few minutes. EcoNet performs deterministic or stochastic dynamical simulation from a given initial condition, and then performs ecological network analysis after the system reaches steady-state. Users can utilize EcoNet for dynamical simulation only and disregard the network analysis results. Or one can enter a model which is already at steady-state and use EcoNet only for steady-state network analysis. EcoNet is a versatile software that offers unique features on both aspects.
EcoNet requires no installation. Instead, users enter their models on a web browser, in a simple and intuitive text-based format. For user convenience, the website already contains a simple model, and default options for numerical methods and parameters are pre-selected. Anyone can try and run EcoNet immediately without needing any prior knowledge.
User simply clicks on Run Model to submit a model to EcoNet server. The server evaluates the model and unless there are errors detected in the model, a sequence of C++ codes, compiled Matlab routines and unix shell scripts work together to generate the simulation and analysis results. EcoNet server then creates a new web-page that contains these results which is then loaded to users' browser. Typically this process takes less than four seconds.
EcoNet was first online in June 2006. We iitially developed its numerical engine back in 2001 at Carnegie Mellon University to analyze statistical properties of large biochemical networks. Failing to find software able to simulate biochemical networks involving over 10,000 molecules and reactions, we developed ours from scratch in C++. This numerical engine can handle non-linear models that contain up to 105 compartments and 105 flows. Besides deterministic methods, EcoNet features fast stochastic simulation algorithms based on Langevin Equation and Gillespie's Stochastic Algorithm.How to create an EcoNet model?
During the design process of EcoNet interface, we had several choices for a model input method. Several modeling software use a graphical user interface (GUI) where users drag and drop geometrical shapes representing stocks and then define arrows connecting these stocks. EcoNet uses a flexible text-based model input method.
While a GUI-interface is intuitive and user friendly, it is not necessarily easier to use. Typing a text file is considerably quicker and easier than using a mouse to form a diagram. A model in text format is extremely portable and does not need special file formats to be saved or sent. It can be copied and pasted into other applications, and is human readable. Furthermore, a text-based interface enables expert users to write codes to automatically generate very large models with thousands of stocks and flows for spatial modeling or statistical analysis.
EcoNet model structure
EcoNet models consist of four basic information types, each associated with some special characters:
|
- Flows among compartments: A directional flow from compartment A to compartment B is intuitively represented by "A -> B". Environment is represented by "*".
- Initial storage value of compartments: These values are entered by simply typing the compartment name followed by "=", and then the numerical value. If the initial value of compartment A is 15 units, this can be represented by "A = 15".
- Flow type and associated
coefficients: In real life, speed of a flow between two
compartments may depend solely on the storage value of the donor
compartment, or the recipient compartment, or both
(Lotka-Volterra). In some real-life cases, there is an upper-bound on
the speed of flow no matter how high the storage values of both
compartments are. There even cases where the flow between two
compartments is affected by the storage value of a third
compartment. We call these different flow types, and naturally the
simulation results will change dramatically based on what flow types
are used.
EcoNet currently features only donor controlled (mass-action type) flows. However EcoNet is currently being updated to accommodate a variety of flow types, including Lotka-Volterra and Michaelis-Menten. The notation for these flow types are already determined and is presented below, however only the first one is functional as of now. We have plans to feature flow types beyond the three listed below.
- Donor controlled
flow: If the speed of flow from compartment A
to B is proportional to the storage value of A, the
flow type is represented by "c=2.3" where
2.3 is a coefficient specific to this flow. In other
words:
(Speed of flow A->B) = 2.3 * (Storage value of A) - Donor-Recipient controlled
flow: If the speed of flow from compartment A
to B is proportional to the storage values of both A
and B, the flow type is represented by "r=1.2" where 1.2 is a coefficient specific
to this flow. In other words:
(Speed of flow A->B) = 1.2 * (Storage value of A) * (Storage value of B) - Michaelis-Menten type
flow: Michaelis-Menten type flow: Originally developed
for enzymatic reactions, this flow type is useful when flow speed is
limited or mediated by other factors. The syntax for defining a
Michaelis-Menten type flow from compartment A to B
is "v=3.2,2.1" where coefficients 3.2,
2.1 correspond to Vmax, Km. The
speed of this flow is interpreted as:
(Speed of flow A->B) = 3.2 * (Storage value of A) / ( 2.1 + (Storage value of A) )
- Donor controlled
flow: If the speed of flow from compartment A
to B is proportional to the storage value of A, the
flow type is represented by "c=2.3" where
2.3 is a coefficient specific to this flow. In other
words:
- Comments: EcoNet ignores anything written in a line after "#".
EcoNet model flexibility
Text based human-computer interactions are generally very demanding on the user's side. Sometimes, even a blank space must be accounted for when writing a computer code. However EcoNet users can write their models with a great range of flexibility, as EcoNet does not require strict formatting rules. EcoNet recognizes each stock name, and classifies each user input as an initial condition, a flow, or a flow type. It is EcoNet that does the hard work, not the user. To demonstrate this feature, we re-write the same model in different but correct ways. Consider the following simple model:
* -> Phytoplankton c=3 Phytoplankton -> Zooplankton c=1 Zooplankton -> Fish c=.5 Fish -> * c=.2 Phytoplankton = 10 Zooplankton = 1 Fish = 5 |
Although each flow and initial condition is written as seperate lines, there is no such restriction. One can write multiple flows or initial conditions in a single line by seperating them using commas or semicolumns:
* -> Phytoplankton c=3; Phytoplankton -> Zooplankton c=1 Zooplankton -> Fish c=.5, Fish -> * c=.2 Phytoplankton = 10; Zooplankton= 1, Fish=5 |
EcoNet ignores the order of appearance of flows and initial conditions. For better readability, one may choose to write all initial conditions grouped at the very end, or the beginning. In case of a large model with multiple parts, users can form groups of flows and initial conditions corresponding to each part. Or one can choose to write initial conditions after each flow:
* -> Phytoplankton c=3 Phytoplankton = 10 Fish -> * c=.2 Fish = 5 Phytoplankton -> Zooplankton c=1; Zooplankton = 1 Zooplankton -> Fish c=.5 |
In rare cases, one may want to group flow types. This is also possible, and below is an example where there is allmost no order; flows, initial conditions and flow types are all mixed together:
* -> Phytoplankton c=3 Phytoplankton = 10 Phytoplankton -> Zooplankton Zooplankton= 1; c=1 Zooplankton -> Fish; Fish=5 Fish -> * c=.5, c=.2 |
Note that in this case, EcoNet will associate flow types to flows in the order of appearance. All this flexibilty enables users to easily create and modify their models. Despite the fact that these models look very different, EcoNet generates the exact same equations for each of them.
A few rules about EcoNet models
Here are a few rules that users should keep in mind when writing theirmodels:
- EcoNet models are case sensitive, so both Zooplankton and zooplankton can not be used to refer to the same compartment. On the other hand, users can name two different compartments Zooplankton and zooplankton in the same model without causing any problems.
- Compartment names contain numerical values in them, but cannot start with one, so Zooplankton1, Zoo1plankton2 are valid compartment names while 1Zooplankton is not.
- "c" cannot be used as a compartment name, as it is already used to represent donor controlled flow type. Users should avoid using single small letters to name compartments, as EcoNet will feature other flow types in near future and may utilize other small letters for this purpose. Capital single letters can be used without reservation.
- EcoNet treats the space and tab characters equally, and users can use them freely to create well organized models. However no space should be used between a flow type and "=" character. So "c=2" and "c= 2" are valid while "c =2" and "c = 2" will give errors. There is no restriction for initial condition definitions, so "Zooplankton = 3" is a valid description.
- All numerical values can be represented using scientific notation. EcoNet will interpret "0.012", "1.2e-2", ".012", ".12e-1", "12e-3" as the same value 0.012.
While flexibility is a great feature, it also enables users to create disorganized but functional models. So we equipped EcoNet a good error tracking feature that generates meaningful error messages when EcoNet notices mistakes in the model. For example, miss-spelling a compartment name, say zooplankton, when defining its initial condition will receive the following complaint from EcoNet: "No initial condition exists for compartment zooplankton".
The rest of the documentation will be available on May 1, 2007 - Sorry for the delay
DHTML Menu By Milonic JavaScript