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:

  1. Flows among compartments: A directional flow from compartment A to compartment B is intuitively represented by "A -> B". Environment is represented by "*".
  2. 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".
  3. 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) )
  4. 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:

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