The Mathematica files provided on this page contain software
for dealing with equations
that come from chemical reaction networks.
These equations are ordinary differential equations of the
form *dx/dt=f(x)*;
some properties
of these equations relating to steady states are often discernable from the Jacobian, *f '*,
of *f*.
Our main purpose is to

The CF determinant and core determinants are used in tests to
count the number of positive steady states, namely *x*>0* such that *f(x*)=0*.
(For more information, please look at the papers by
Craciun, Helton and Williams and
Helton, Klep and Gomez,
and the original
Craciun, Feinberg et al. papers,
CF05, CF06, and CTF06.)

** BASIC NOTEBOOKS: **

chemdemo.nb is a self-contained
demo notebook that contains all the commands we have implemented,
along with potentially helpful comments.
It also contains an example stoichiometric matrix illustrating
the procedure one would use to compute the Craciun-Feinberg determinant.
To run the notebook, just evaluate each cell in order.

chemJac.m is a command file
that contains the same commands as in the chemdemo file.
It is required for the following files and should probably be used
if you want to run the commands in your own notebooks.
To use it, download the file and place it in a directory where
Mathematica looks for files (you can get a list of such
directories by entering "$Path" in a Mathematica notebook).
Putting in your notebook the
Mathematica command SetDirectory["ADirectoryYouLike"] makes the notebook
look in ADirectoryYouLike. After setting paths,
enter <<"chemJac.m" in the notebook where you want to
use the commands.

** EXAMPLES: ** From Craciun, Helton and Williams,
"Homotopy Methods For Counting Reaction Network Equilibria"

The following notebooks contain the examples in Sec. 6 (as well as one from Sec. 2) of the
paper "Homotopy Methods For Counting Reaction Network Equilibria"
by Craciun, Helton and Williams (the paper is available
here).
To run the notebooks you need to have the "chemJac.m"
file downloaded and placed in an appropriate directory.
After this has been done, you can run the notebooks by evaluating
each cell in order.

Example 6.1

Example 6.2
(examples from the table in Craciun-Feinberg '05)

Example 6.2
(examples 1-5 from the table in Craciun-Tang-Feinberg '06)

Example 6.2
(examples 6-8 from the table in Craciun-Tang-Feinberg '06)

Example 6.5

Example 6.6

Example 2.3 (an example taken from Arcak-Sontag '08)

Example 2.4 (another example taken from Arcak-Sontag '08)

** EXAMPLES: ** From other places.

** PDF FILES: ** Here are some samples of the above Mathematica files in PDF format, in case you do not have Mathematica:

chemdemo - the demo file

Example 6.1 - a mass-action example

Example 6.5 - a non-mass-action example

** ACKNOWLEDGEMENTS: **
Development of this software was supported by J. W. Helton's NSF grants
DMS - 0700758 and DMS 0757212.

Vitaly Katsnelson contributed suggestions and debugging.

Gheorghe Craciun originally computed some of the CF determinants
for examples in the Craciun, Helton and Williams paper symbolically.
We are grateful to him
for sharing his computations with us.

This Mathematica software allows us to compute the deficiency of a chemical reaction network
as well as conversion of representations as follows.
One starts with the traditional representation with *S* the stoichiometric
matrix and *v(x)* the flux vector:

Our program produces the representation

where *A _{k}* is the Laplacian of the "complexes graph" of the chemical reaction network.

** BASIC NOTEBOOKS: **

chemYAk.m is a command file
that contains the same commands as in the chemYAk.nb notebook file.
It is required for the following files and should probably be used
if you want to run the commands in your own notebooks.
To use it, download the file and place it in a directory where
Mathematica looks for files (you can get a list of such
directories by entering "$Path" in a Mathematica notebook).
Putting in your notebook the
Mathematica command SetDirectory["ADirectoryYouLike"] makes the notebook
look in ADirectoryYouLike. After setting paths,
enter <<"chemiYAk.m" in the notebook where you want to
use the commands.

chemYAkdemo.nb is a demo notebook that illustrates all the commands we have implemented. It is for users.

chemYAk.nb is a self-contained demo notebook that contains all the commands we have implemented. It is for geeks who want to fiddle with the program. It is not so much for users.

A Mathematica BEGINNER MIGHT FIND THE NOTEBOOKS IN PART 1, a bit more gentilely
documented.

** PDF FILES: ** Here are some samples of the above
Mathematica files in PDF format, in case you do not have Mathematica:

chemYAkdemo - the demo notebook

chemYAk - the expanded demo notebook containing all the command implementations

** ACKNOWLEDGEMENTS: **
Development of this software was supported by J. W. Helton's NSF grants
DMS - 0700758 and DMS 0757212.

Rohun Kshirsager
contributed suggestions.