Release 6.0.5 allows time-dependent rates of Ca2+-buffer binding
CalC ("Calcium Calculator") is a modeling tool for integrating the 3D
reaction-diffusion problem (or the corresponding reduced
1D
and
2D problems) arising in biophysical modeling of intracellular
calcium dynamics.
CalC simulates the entry of calcium into a volume through
point-like
channels, and its diffusion,
buffering and binding to calcium receptors.
An arbitrary number of mobile and/or fixed calcium
buffers may be
included (one-to-one calcium binding stoichiometry is assumed).
The diffusion
volume
is given by a superposition of
rectangular boxes, and may include rectangular
obstacles
to diffusion representing vesicles
or other diffusion barriers (curvilinear geometry is in the works).
Non-uniform diffusion coefficients are allowed (to simulate
tortuosity effects).
CalC runs on
Windows (
cygwin strongly recommended)
and all
UNIX platforms.
On
UNIX platforms (including
the
cygwin Windows-based Linux emulator),
simulation results can be viewed in real time
by piping the output into the
xmgrace / xmgr graphics applications.
Alternatively,
file plots can be produced, in a format readable by
MATLAB and
gnuplot.
CalC reads the definitions specifying a model simulation
from a user-provided ASCII script file. A script file can
import
other script files and can include non-trivial
flow control, which increases the
flexibility and reusability of simulation descriptions.
The
CalC manual
describes the script syntax.
Example script files are provided.
If you prefer a simulation environment controlled by a graphic user interface,
you should check out the
Virtual Cell Project.
CalC uses a variation of the
Alternating Direction Implicit (ADI) finite difference method, which is very CPU-time efficient,
and accurate to 2nd order in time and space.
To preserve the 2nd order accuracy,
the calcium and buffer concentration fields are
calculated on time grids that are staggered by half a time step with respect to each
other. Time-step is varied
adaptively during the simulation. Spatial grid is static,
but can be declared in a non-uniform way by
stretching in each of the 3 directions.
ODEs describing calcium receptor binding are integrated using a standard 5th order
Cash-Karp adaptive step-size Runge-Kutta
scheme.
CalC is written in
C++ and is fully object-oriented.
It was developed by Victor Matveev at the
Mathematical Research Branch,
NIDDK,
NIH, and its development continues here
at the
Department of Mathematical Sciences,
NJIT.
CalC is free (
copylefted)
and is provided on an
as-is basis. I will try to respond to any bug reports or other questions
(e.g. you can send me script files that don't run correctly). If you plan to use
CalC in your work,
please make appropriate attribution by citing this URL, and/or our
2002 Biophys J article.
This material is based upon work supported by the National Science Foundation grants
0417416 and
0817703.
Any findings, recommendations and conclusions provided by this material
do not necessarily reflect the views of the National Science Foundation
|
Additions and modifications as of September 22, 2008 (version 6.0.5)
|
|
Significant improvement of non-uniform grid generation. The uniform interval
in the stretch definition is accurately preserved.
|
|
Time dependent calcium binding and unbinding rates are now allowed.
|
|
Several minor bug fixes and improvements
|
|
Additions and modifications as of April 27, 2008 (version 5.9.1)
|
|
For convenience, Dirichlet boundary conditions has been re-defined, and
by default fixes the calcium and buffer concentrations to their background values, instead of zero.
|
|
A volume-distributed linear calcium uptake process is now implemented.
|
|
Fixed a bug in special buffer obstacle implementation causing segmentation fault in scripts using for
loops. Thanks to Robert Zucker for reporting the bug.
|
|
Additions and modifications as of March 31, 2008 (version 5.7.9)
|
|
Fixed a bug in Dirichlet boundary conditions implementation, introduced in version 5.5.9.
Thanks to Thomas Frank for reporting the bug.
|
|
Additions and modifications as of March 20, 2008 (version 5.7.8)
|
|
Fixed a bug causing segmentation fault with large-size scripts that make use of the
local concentration variables (thanks to Robert Zucker for reporting the bug).
|
|
The constructor code for time-dependent objects was significantly cleaned up
in order to fix a minor bug in initialization of min/max variables.
This bug resulted in the crash of xmgrace graphics application when
auxiliary variables depended on min/max objects (thanks to Robert Zucker once again for reporting).
|
|
Additions and modifications as of Nov 22, 2007 (version 5.7.0)
|
|
Implemented buffer obstacles - diffusion obstacles specific to individual buffers.
These special obstacles are complementing the more complex tortuosity
definition which retards the diffusion of buffers in a specific spatial region.
|
|
Additions and modifications as of Feb 14, 2007 (version 5.5.95)
|
|
Improved handling of viewport coordinates in xmgr/xmgrace graphics
|
|
Additions and modifications as of May 27, 2006 (version 5.5.9)
|
|
Tortuosity has been implemented for all cartesian and
curvilinear geometries; the low-level integration routines
have been streamlined.
|
|
The flux boundary conditions have been redefined to implement
in a more physiological fashion the zero flux at the background level of calcium concentration
|
|
Implemented the continue flow-control statement
|
|
Fixed a bug in the parsing of Ca2+ influx width
values in 1D and 2D geometries, introduced in version 5.1.0.
|
|
Additions and modifications as of October 5, 2005 (version 5.5.0)
|
|
Streamlined the makefiles, which should now be problem-free and work on any UNIX platform including OS X.
Since the supplied Ygl library binary is not compatible with the newer 64-bit systems, Linux compilation
excludes by default the Ygl capabilities.
Use "gmake -f Makegl" to include Ygl graphics on a 32-bit Linux platform.
|
|
The execution status string now wastes much less CPU time, since it only updates once a second.
This eliminates the need for the verbose=0 command to
improve efficiency.
|
When using CalC as an ODE solver, the mode=ODE
command is now not necessary. ODE system is assumed if the grid and the Ca2+ diffusion coefficient
are not defined in the script file.
|
|
Fixed a bug in mute plot data output appearing in the Windows version of the program.
The bug only appears when the numerical engine encounters instability and does back-stepping. The bug is related
to the inability of Windows to properly process the "rename" OS command.
|
Fixed a bug in expression optimizer that affects truncation of mathematical formulas of form
"variable / const * const", "variable / const / const",
"variable - const + const", and "variable - const - const"
|
|
Additions and modifications as of May 24, 2005 (version 5.4.5)
|
|
Fixed a bug that spoiled the accuracy of the total Charge conservation check
after instability recovery during adaptive time-step calculation.
|
|
Fixed a bug causing some scripts to crash when they include both graphics and
Export data dumps (incorrect plot count).
|
|
Minor bug fixed causing some scripts to terminate at very small time steps during
adaptive integration.
|
|
Additions and modifications as of February 4, 2005 (version 5.4.0)
|
|
Implemented several new geometries, such
as 2D polar and cylindrical geometries, and 3D cylindrical and spherical geometries
(note that periodic boundary conditions are not yet implemented). The geometry
implementation code has been considerably streamlined.
|
|
Keyword point is now obsolete: plot
syntax has been simplified.
|
|
Slight change in pump-like Neumann boundary condition definition
(removed the [Ca2+]bgr offset in the denominator pump term - it wasn't
physiological)
|
|
Further changes to the Makefile now allow problem-free compilation on
cygwin, which is a very nice and completely free
Linux emulator for Windows.
|
|
Fixed a bug in expression optimizer:
some expressions containing zeros and ones were truncated incorrectly.
|
|
Additions and modifications as of October 18, 2004 (version 5.1.0)
|
|
Implemented stochastic discrete-state continuous-time Markov
process variables, which allow to model stochastic channel kinetics (see an
example script).
|
|
Implemented distinct Ca2+ currents.
|
|
Click here for a complete list of older versions and changes.
|
To-Do List:
-
Implement periodic boundary conditions (at least for polar, spherical and cylindrical coordinates)
-
Implement non-rectangular (i.e. spherical and cylindrical) diffusion enclosures
(in cartesian coordinates).
-
Make a GUI version of CalC for Windows; implement graphics using the Windows MFC library.
-
Write more example parameter files, in particular parameter files corresponding to published models
-
Implement pseudo-3D graphic plots using the Open GL (glx) graphic library.
-
Implement a method for integrating stiff ODEs, in addition to Runge-Kutta
Victor Matveev
This server is running a
Redhat distribution of
Linux.
Last modified: Apr 7, 2007