MathSBML Home Page MathSBML Site Map


conservationMatrix[s] returns the conservation matrix of a system of reactions, given the stoichiometry matrix s.

See also SBMLConservationMatrix.

New in MathSBML version 2.5.6.


The equations used in the implementation and given below here are explained and derived in great detail in the following reference which the authors of MathSBML gratefully acknowledge.

Herbert M Sauro & Brian Ingalls, "Conservation analysis in biochemical networks: computational issues for software writers." Biophysical Chemistry 109:1-15 (2004). [publisher's web site]


The stoichiometry matrix is calculated from the stoichiometry values of the reactants and products in a model's reactions. Every species and every reaction in the model is represented in the matrix. The columns represent the reactions, in the order in which they are defined in the model, and the rows represent the species, in order, as they are defined in the model. Verbose listings will identify the species by name in the output.

The mass balance equations are calculated as

where S is a vector of concentrations, N is the stoichiometry matrix, and v is a vector of rates.

The stoichiometry matrix can be partitioned as

where contains the linearly independent rows, and the dependent rows. Then
where we call the link zero matrix, so that
Hence we can decompose the matrix S so that
This can be decomposed into two differential equations, one for the top partition and one for the bottom. They can be integrated to give
where T is a vector of moiety totals and
is called the conservation matrix.

Numerically we can compute

where Echelon represents the row-echelon form of the matrix.