Chemical Reaction Network Software (under Mathematica)

1.     Chemical Reaction Network Jacobian

2.     Deficiency and YAk Representation of Chemical Network




1.     Chemical Reaction Network Jacobian

        Igor Klep, Karl Fredrickson, Bill Helton

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

  • compute the Jacobian f ' of f (given say the stoichiometric matrix)
  • compute the Craciun-Feinberg (CF) determinant of f ' (governs systems with outflows for all species with outflow rate constants equal to one)
  • compute the more general Helton-Klep-Gomez core determinant of f ' (governs systems with any number of outflows)
  • check existence of a sign pattern for f '(x) (under development).

    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.


    2.     Deficiency and YAk Representation of Chemical Network

            Igor Klep, Vitaly Katsnelson, Bill Helton


    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:

  • dx/dt = Sv(x)

  • Our program produces the representation

  • Sv(x) = YAk ψ(x)
  • where Ak is the Laplacian of the "complexes graph" of the chemical reaction network. Y is the matrix whose columns are indexed by complexes and which contain nonzero entries corresponding to chemical species which enter the complex. Our commands also allows you to:

  • factor Ak further according to V. Katsnelson's UCSD undergraduate honors thesis
  • compute the components of the complexes graph.

  • 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.

    A FEW CHEMICAL NETWORK SITES:
    Bernhard Palsson's Systems Biology Group at UCSD
    Eduardo D. Sontag
    Martin Feinberg
    Gheorghe Craciun