Framework for Evaluation of Reaction Networks (FERN)

Category Cross-Omics>Agent-Based Modeling/Simulation/Tools and Cross-Omics>Pathway Analysis/Gene Regulatory Networks/Tools

Abstract FERN (Framework for Evaluation of Reaction Networks) is a fast, extensible and comprehensive framework for the stochastic simulation and analysis of chemical reaction networks.

A chemical reaction network is composed of several molecular species coupled by reaction channels. The goal of stochastic simulation algorithms (SSAs) is to simulate a trajectory of the species’ populations by a Monte Carlo Markov Chain.

Starting from a vector of initial amounts for each species, the SSA updates these values by firing reaction channels accordingly to a distribution given by their propensities. Additionally it calculates the time between two firings and hence provides a time scale for the events.

FERN is subdivided into three (3) layers for network representation, simulation and visualization of the simulation results each of which can be easily extended.

It provides efficient and accurate state-of-the-art stochastic simulation algorithms for well-mixed chemical systems and an advanced observer system, which makes it possible to track and control the simulation progress on every level.

To illustrate how FERN can be easily integrated into other systems biology applications, plug-ins to Cytoscape (see G6G Abstract Number 20092) and CellDesigner (see G6G Abstract Number 20159) are included.

These plug-ins make it possible to run simulations and to observe the simulation progress in a reaction network in real-time from within the Cytoscape or CellDesigner environment.

FERN Implementation --

FERN is an object oriented (OO) library implemented in Java. Although it consists of more than 100 classes and interfaces, most classes are just implementations of one of three (3) major interfaces and abstract classes:

1) The interface Network provides the network structure of the model.

2) The abstract class Simulator performs simulations on a Network. It additionally calls the registered observers during the simulation run.

3) The abstract class Observer traces the simulation progress and creates the simulation output.

A simple simulation can be performed in only five (5) lines of code, one line for each of: loading a network file, creating a simulator, creating and registering an observer, running the simulations and printing the results.

More complex examples for using FERN can be found in the FERN distribution located at the manufacturer’s web-site.

In the following the three layers of FERN are described in more detail.

FERN Networks -

The interface Network describes the network's structure, i.e. the reactions and species in the networks. For this purpose, each reaction and each species is described by an integer value.

Furthermore, the network stores basic information like species names and their initial molecule numbers. For the simulation more information is necessary which is stored in three (3) additional classes:

1) The AmountManager controls the amount of each molecular species during the course of a simulation.

2) The AnnotationManager can store additional annotations for the network, its species and reactions.

3) The PropensityCalculator calculates the propensities for the reactions by the specified kinetic laws.

There are three (3) types of implementations of the Network interface:

1) Readers which can read network data from files (e.g. FernMLNetwork, SBMLNetwork).

2) Wrappers which redirect method calls to existing network classes (e.g. CytoscapeNetworkWrapper).

3) Evolution algorithms which create networks from scratch by certain rules (e.g. AutocatalyticNetwork).

For each network, stochastic simulations can be performed with all implemented simulation algorithms.

FERN Import and export of networks -

FERN supports two formats for loading and exporting networks: the SBML format and the XML based FernML format. For reading and writing the SBML format, FERN uses the Java bindings of the C library (libSBML).

SBML is an advanced format which can provide lots of information about a model. In contrast, FernML stores only the topology of the reaction network, optional annotations and the simulation parameters. This results in a much more simplified input format.

More complex aspects, such as volume change due to cell growth and division can then be modeled in Java using the FERN library in a straightforward way. As a consequence, arbitrarily complex models can be designed.

FERN is Not restricted to the input formats currently available. Any new input format can be easily included by implementing the Network interface or extending the AbstractNetworkImpl class.

FERN Simulation algorithms -

FERN provides implementations for three (3) exact stochastic simulation algorithms, three (3) state-of-the-art tau leaping procedures and a hybrid method combining SSA and tau-leaping. The exact SSAs implemented include the original direct method of Gillespie, the next reaction method of Gibson and Bruck and an enhanced version of the direct method.

The tau-leaping algorithms are all based on the modified tau-leaping procedure proposed by Cao et al which avoids the problem of negative populations observed for the original tau-leaping procedure.

Furthermore, FERN implements the hybrid method by Puchalka and Kierzek which partitions the system during the simulation into slow reactions which involve only small molecule numbers and fast reactions which involve large molecule numbers.

The slow reactions are then simulated using an exact SSA while the fast reactions are simulated with tau-leaping.

Future developments of the algorithms can easily be included into FERN by extending one of the SSA implementations or the original Simulator class. In the same way Ordinary Differential Equation (ODE) solvers or simulators for spatial models which are Not provided by FERN can be integrated.

FERN Observer system -

FERN uses observers to trace the simulation progress and react to events. For this purpose, each observer has to implement functions which describe its response at specific time points of the simulations.

Such responses may occur either at the beginning or the end of a simulation, before each step, after a reaction is fired or when a certain time is reached. In order to be notified of these events, observers have to be registered with the simulator.

Observer implementations are provided for tracing the molecule numbers for some species in arbitrary intervals, recording the firings of reactions, computing distributions of molecule numbers at a certain time over many simulation runs as well as many others.

Several observers can be registered for a simulation at the same time and most of them can also handle repeated simulation runs, e.g. to create average curves or curves containing all trajectories for the individual simulation runs.

FERN Visualization -

In general, the observers use gnuplot to present their results. Once gnuplot is installed on a system and accessible e.g. via the path variable, the Gnuplot class makes it possible to easily create plots and retrieve them as Image objects, save them as files or present them online in a window. Plots can be customized using appropriate gnuplot commands.

Furthermore, FERN was used to implement Cytoscape and CellDesigner plug-ins (as stated above...) for running and visualizing the simulations from within the Cytoscape or CellDesigner environments.

FERN Stochastics -

An important feature of FERN is that random number generation is handled by the singleton class Stochastics. Accordingly, only one instance of this class is instantiated during a FERN run and all calls for random numbers are referred to this instance. This has several advantages.

First, the underlying random number generator can be easily replaced if faster and better random number generators are developed. Currently, the Mersenne Twister implementation of the Colt Project is used.

Second, by setting the seed value for the random number generator explicitly, the simulation can be made deterministic and e.g. interesting trajectories can be reproduced.

Third, it is possible to count the number of random number generations necessary for different implementations of SSAs.

System Requirements

Contact manufacturer.


Manufacturer Web Site Framework for Evaluation of Reaction Networks (FERN)

Price Contact manufacturer.

G6G Abstract Number 20626

G6G Manufacturer Number 104226