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

Abstract ChemCell is a particle-based reaction/diffusion simulator designed to model signaling, regulatory, or metabolic networks in biological cells.

It can be run as a spatial simulator where the particles diffuse within the specified geometry of a cell, or as a non-spatial simulator where there is No diffusion and the network of chemical reactions is time-integrated as a set of Ordinary Differential Equations (ODEs) or stochastically via the Gillespie Stochastic Simulation Algorithm (SSA).

For spatial simulations, a single protein, protein complex, or other biomolecule is represented as a dimensionless particle.

The geometry of a cell (membranes, organelles, etc) is represented as simple geometrical objects (spheres, boxes, etc.) or as triangulated surfaces.

Particles diffuse randomly via Brownian motion, either in 3D or on 2D surfaces.

Biochemical reactions occur in accord with chemical rate equations, which are inputs to ChemCell. Monte Carlo rules are used to perform reactions for each time-step between pairs of nearby particles.

For non-spatial simulations, the cell is treated as a well-mixed chemical reactor, and the chemical rate equations can be time-integrated either by a fixed-step or adaptive-time-step ODE solver or by the direct-method variant of the Gillespie Stochastic Simulation Algorithm (SSA) using the Gibson/Bruck methodology.

ChemCell runs on single-processor desktop or laptop machines, and can also be run in parallel --

Multiple runs can be performed on a collection of processors (for statistical purposes), or (for spatial simulations) the simulation domain can be partitioned across processors and a single simulation run in parallel.

For spatial simulations, ChemCell can model systems with only a few particles up to many millions of particles.

ChemCell is written in C++ and No additional software is needed to run ChemCell in serial on a desktop machine.

ChemCell will run on any parallel machine that compiles C++ and supports the MPI message-passing library.

This includes distributed- or shared-memory parallel machines and Beowulf-style clusters.

Message Passing Interface (MPI) - MPI is a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementers, and users.

MPI was designed for high performance on both ‘massively parallel’ machines and on workstation clusters.

To run ChemCell with spatial parallelism, the Zoltan library must also be installed.

Zoltan library - The Zoltan library is a collection of data management services for parallel, unstructured, adaptive, and dynamic applications.

It simplifies the load-balancing, data movement, unstructured communication, and memory usage difficulties that arise in dynamic applications such as adaptive finite-element methods, particle methods, and crash simulations.

Zoltan's data-structure neutral design also lets a wide range of applications use it without imposing restrictions on application data structures.

Its object-based interface provides a simple and inexpensive way for application developers to use the library and researchers to make new capabilities available under a common interface.

ChemCell is designed to be easy to modify --

ChemCell is designed to be easy to modify or extend with new capabilities and functionality, such as modified reaction rules or boundary conditions.

Realistically, the best way to add a new feature is to find a similar feature in ChemCell and look at the corresponding source and header files to figure out what it does.

You will need some knowledge of C++ to be able to understand the hi-level structure of ChemCell and its class organization, but functions (class methods) that do actual computations are written in vanilla C-style code and typically operate on simple C-style data structures (vectors and arrays).

ChemCell does Not have the ability to --

ChemCell does Not have the ability to create cellular geometries or visualize simulation output. Currently, these tasks are handled by pre- and post-processing programs.

The manufacturer has written a separate toolkit called which provides tools for doing setup, analysis, plotting, and visualization for ChemCell simulations. is written in Python. - is a loosely integrated collection of tools, many of which provide pre- and post-processing capability for the LAMMPS molecular dynamics, ChemCell cell modeling, and SPPARKS kinetic Monte Carlo packages (see below…).

There are tools to create input files, convert between file formats, process log and dump files, create plots, and visualize and animate simulation snapshots.

Software packages that are wrapped by, so they can be invoked from Python, include GnuPlot, MATLAB, Raster3d, and RasMol.

SPPARKS - SPPARKS (Stochastic Parallel PARticle Kinetic Simulator) –

SPPARKS is a parallel Monte Carlo program for on-lattice and off-lattice models that includes algorithms for kinetic Monte Carlo (KMC), rejection kinetic Monte Carlo (rKMC), and Metropolis Monte Carlo (MMC).

SPPARKS implements several ‘KMC solvers’ whose serial computational complexity ranges from O(N) to O(NlogN) to O(1) in the number of events N owned by a processor.

In a generic sense, the solvers catalog a list of “events”, each with an associated probability, choose a single event to perform, and advance time by the correct amount.

Events may be chosen individually at random, or by sweeping over sites in a more ordered fashion.

System Requirements

Contact manufacturer.


Manufacturer Web Site ChemCell

Price Contact manufacturer.

G6G Abstract Number 20621

G6G Manufacturer Number 104222