StochPyStochPy is a versatile stochastic modeling package which is designed for stochastic simulation of molecular control networks inside living cells. Its integration with Python’s scientific libraries and PySCeS makes it an easily extensible and a user-friendly simulator. The high-level statistical and plotting functions of StochPy allow for quick and interactive model interrogation at the command line. Python’s scripting capabilities allow for more complicated and in-depth analysis of stochastic models.
StochPy allows stochastic simulations with Cain and StochKit fixed-interval output solvers
Because of the flexible design of StochPy, we decided to offer users of StochPy interfaces to both Cain and StochKit solvers. Users can benefit from the speed advantage of both the Cain and StochKit fixed-interval output solvers in the interactive modeling environment of StochPy. Note that these fixed-interval output solvers give incorrect output if net stoichiometric coefficients are used in the model description. The following movie illustrates some of the differences between explicit and fixed-interval stochastic output. See our user guide for more information about the the StochPy solvers and these fixed-interval output solvers.
Using StochPy as a Library
It is straightforward to use StochPy as a library in your project. A data object, data_stochsim, is created for those that want to use StochPy as a library or for those that want to do their own analysis. Species, distributions, propensities, simulation time, and waiting times are stored in NumPy arrays and lists. In addition, labels are stored for each of these data types in separate lists. Data is, of course, only available if it is calculated. Furthermore, determined means and standard deviations are stored in dictionaries and information about the stochastic simulation such as the number of time steps, the simulation end time, and the trajectory is stored. This data object (data_stochsim) is written to disk space if multiple trajectories are generated. The high-level function GetTrajectoryData(n) can be used to access the simulation data of a specific trajectory. By default the latest generated trajectory is not written to disk space, thus is accessible without using the high-level function GetTrajectoryData().