These sections provide an overview of what ChemCell can do, describe what it means for ChemCell to be an open-source code, and acknowledge the funding and people who have contributed to ChemCell.1.1 What is ChemCell
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 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 each timestep 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-timestep 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, but 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.
ChemCell is a freely-available open-source code, distributed under the terms of the GNU Public License, which means you can use or modify the code however you wish. See this section for a brief discussion of the open-source philosophy.
ChemCell is designed to be easy to modify or extend with new capabilities, such as modified reaction rules or boundary conditions. See this section for more details.
ChemCell is written in C++ and can be downloaded from the ChemCell WWW Site. 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. To run with spatial parallelism, the Zoltan library must also be installed.
ChemCell does not have the ability to create cellular geometries or visualize simulation output. Currently, these tasks are handled by pre- and post-processing codes. Our group has written a separate toolkit called Pizza.py which provides tools for doing setup, analysis, plotting, and visualization for ChemCell simulations. Pizza.py is written in Python and is available for download from the Pizza.py WWW site.
These are other cell-modeling simulation codes. The first 3 are similar in spirit to ChemCell, meaning they model biochemical networks of reacting/diffusing chemical species within a spatial geometry via particles. VCell uses continuum PDEs for reaction/diffusion in a spatial representation of the cell. E-Cell provides a rich set of continuum and stochastic solvers for non-spatial cell models.
ChemCell comes with no warranty of any kind. As each source file states in its header, it is a copyrighted code that is distributed free-of- charge, under the terms of the GNU Public License (GPL). This is often referred to as open-source distribution - see www.gnu.org or www.opensource.org for more details. The legal text of the GPL is in the LICENSE file that is included in the ChemCell distribution.
Here is a summary of what the GPL means for ChemCell users:
(1) Anyone is free to use, modify, or extend ChemCell in any way they choose, including for commercial purposes.
(2) If you distribute a modified version of ChemCell, it must remain open-source, meaning you distribute it under the terms of the GPL. You should clearly annotate such a code as a derivative version of ChemCell.
(3) If you release any code that includes ChemCell source code, then it must also be open-sourced, meaning you distribute it under the terms of the GPL.
(4) If you give ChemCell files to someone else, the GPL LICENSE file and source file headers (including the copyright and GPL notices) should remain part of the code.
In the spirit of an open-source code, if you use ChemCell for something useful or if you fix a bug or add a new feature or applicaton to the code, let us know. We would like to include your contribution in the released version of the code and/or advertise your success on our WWW page.
ChemCell is distributed by Sandia National Laboratories. ChemCell development has been funded by the US Department of Energy (DOE), through its LDRD program and through its Genomes-to-Life program via the ASCR and BER offices.
The original version of ChemCell was part of the GTL project "Carbon Sequestration in Synechococcus Sp.: From Molecular Machines to Hierarchical Modeling".
If you use ChemCell results in your published work, please provide a link to the ChemCell WWW page and cite one of the ChemCell papers listed there.
If you send information about your publication, we'll be pleased to add it to the Publications page of the ChemCell WWW Site. Ditto for a picture or movie for the Pictures or Movies pages.
The authors of ChemCell are Steve Plimpton and Alex Slepoy of Sandia National Labs who can be contacted via email at sjplimp at sandia.gov or alexander.slepoy at nnsa.doe.gov.
We thank Larry Lok and Roger Brent at the Molecular Sciences Institute (TMSI) for help in designing ChemCell. We also thank Dan Gillespie for constructive feedback on algorithms and Steve Andrews (LBNL, now TMSI) for helping us understand and use output from his Smoldyn code in ChemCell.