## Stochastic Simulation Kit (StochKit)

** Category** Cross-Omics>Agent-Based Modeling/Simulation/Tools

** Abstract** StochKit (Stochastic Simulation Kit) is an efficient, extensible software toolkit for discrete stochastic and multiscale simulation of chemically reacting systems.

StochKit aims to make stochastic simulation accessible to practicing biologists and chemists, while remaining open to extension via new stochastic and multiscale algorithms.

StochKit includes basic simulation modules such as Gillespie’s SSA algorithm, Optimized Direct Method Stochastic Simulation Algorithm (SSA), explicit tau-leaping, implicit tau-leaping and trapezoidal tau-leaping methods.

It also includes adaptive-stepsize, non-negativity-preserving tau-leaping/SSA, and an implementation of the Slow-Scale SSA method (ssSSA).

The manufacturer's also provide some basic tools to solve a question of great concern to developers of accelerated stochastic algorithms -- how can one verify the accuracy of a stochastic solver, given the inherently random nature of stochastic simulation?

The Kolmogorov distance and histogram distance for quantifying differences in statistical distribution shapes are provided in the MATLAB language.

For users who need to run Monte Carlo simulations, a large number of times to collect the ensemble, the manufacturers provide a MPI interface enabling the Monte Carlo simulation to run on a parallel cluster.

StochKit’s core computational modules are written in the C++ language.

StochKit MATH --

Random Number Generation -

The default random number generation in StochKit is Rand() from C. However, users should be aware that the availability and quality of different implementations varies widely.

A second option is the high quality random number generator provided in the Scalable Parallel Random Number Generator Library (SPRNG).

Among its many features, SPRNG can provide essentially uncorrelated sequences of random numbers for parallel implementation.

Basic Linear Algebra Model -

If you want to develop your own solver within the context of the StochKit framework, the basic linear algebra models may be useful to you.

Because StochKit was initially developed in the MATLAB language, the manufacturer's supply this math model to provide a set of operations to ease the transition from MATLAB to C++ development.

It is Not intended to serve as a general purpose high-performance linear algebra library, but rather to minimize surprises for experienced MATLAB programmers while remaining as efficient as possible.

STOCHRXN --

STOCHRXN is the primary tool to run all the stochastic algorithms.

The simulation methods and major drivers are provided as functions, and the code is designed to be as modular as possible for further extension. The users can even call these functions in their own code.

StochKit Tools --

The StochKit package includes three (3) tools which are provided to complement the stochastic simulation solvers:

1) The SBML2StochKit Converter converts an SBML file to the input files required by StochKit.

SBML2StochKit Converter - For the convenience of SBML users, the manufacturers provide an easy SBML to StochKit Converter using Java.

SBML (Systems Biology Makeup Language) is a computer-readable format for representing models of biochemical reaction networks.

SBML can enable the convenient description of metabolic networks, cell-signaling pathways, regulatory networks, and many others.

Multiple software packages support this format. Many biochemical problems are written as SBML files.

2) The Data Analyzer is in the MATLAB language. It assists with collecting and analyzing statistics generated by making ensemble runs of the solver on a given problem. This is useful for comparing the accuracy of various algorithms.

Data Analyzer - A question that often arises in the education of stochastic simulation results is how to measure the error of the stochastic simulation.

One may compare the ensemble from the simulation with the ensemble from the experimental data, or compare it with the ensemble from an “exact'” simulation such as SSA.

In either way, the answer requires calculation of the distance between two (2) distributions.

The manufacturers provide several functions to calculate two distribution distances.

The first is the total variance distance, which is related to a histogram and the second is the Kolmogorov distance, which is related to a cumulative distribution function.

3) The MPI interface is provided to enable the parallel solution of StochKit simulations. The parallelization is across the ensemble.

MPI interface - Monte Carlo simulation is naturally suited to parallel computation. In StochKit the manufacturers provide a Message Passing Interface (MPI) toolbox which enables users to parallelize the collection of Monte Carlo ensembles.

Although it is part of the StochKit package, the application of this toolbox is Not limited to StochKit. Any Monte Carlo ensemble collection software can be parallelized after small modifications to its code.

StochKit Documentaion --

The Users Guide to StochKit provides a detailed introduction to the software.

*System Requirements*

Contact manufacturer.

*Manufacturer*

- Dept. of Computer Science
- University of California, Santa Barbara
- Santa Barbara, CA 93106-5070 USA
- Tel: 1-805-893-5362
- Fax: 1-805-893-5435

** Manufacturer Web Site**
Stochastic Simulation Kit (StochKit)

** Price** Contact manufacturer.

** G6G Abstract Number** 20627

** G6G Manufacturer Number** 104227