| Alternative Forms of Reaction Specification | |
Author: Warren Hedley (Bioengineering Institute, University of Auckland) Contributor: Melanie Nelson (Physiome Sciences Inc.)
In these meeting minutes we compare some of the solutions developed for specifying reactions using several simple example reactions. These reactions will probably appear as examples in the specification and they have been chosen to demonstrate a wide variety of reaction problems. The solutions developed are discussed in detail in the January 19 meeting minutes.
The delta_variable attributes appear on the <variable_ref> elements, and there is no stoichiometry attributes. All math is defined in a separate <math> element.
Mathematics is moved into each <variable_ref> element adjacent to the <role> elements. We still have delta_variable attributes on <variable_ref> elements.
delta_variable and stoichiometry attributes are moved on to the <role> elements. No mathematics for calculating the value of the delta variables is needed if both delta_variable and stoichiometry attributes exist on the same <role> element.
Equation
A + B <-> 2C + D
Description
A simple reversible reaction.
Picture
XML Formulation One
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_C " variable=" C " >
<role role=" product " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
</variable_ref>
</reaction>
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
XML Formulation Two
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_A </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_B </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_C " variable=" C " >
<role role=" product " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_C </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -2.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_D </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
XML Formulation Three
<reaction reversible=" yes " >
<variable_ref variable=" A " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_A "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" B " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_B "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" C " >
<role
role=" product "
direction=" forward "
delta_variable=" delta_C "
stoichiometry=" 2 " />
</variable_ref>
<variable_ref variable=" D " >
<role
role=" product "
direction=" forward "
delta_variable=" delta_D "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
Equation
A + B <-> D (catalyzed in the forward direction by C )
Description
A reversible reaction where C acts as a catalyst in the forward direction only.
Picture
XML Formulation One
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
</variable_ref>
</reaction>
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
XML Formulation Two
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_A </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_B </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_D </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
XML Formulation Three
<reaction reversible=" yes " >
<variable_ref variable=" A " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_A "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" B " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_B "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref variable=" D " >
<role
role=" product "
direction=" forward "
delta_variable=" delta_D "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
Equation
A + B <-> C (catalyzed by A in the forward direction)
Description
A autocatalyzes a reaction (e.g., an autophosphorylation, where B is phosphate).
Picture
XML Formulation One
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
</variable_ref>
</reaction>
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
XML Formulation Two
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
<role role=" catalyst " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_A </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_B </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_C " variable=" C " >
<role role=" product " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_C </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
XML Formulation Three
<reaction reversible=" yes " >
<variable_ref variable=" A " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_A "
stoichiometry=" 1 " />
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref variable=" B " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_B "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" C " >
<role
role=" product "
direction=" forward "
delta_variable=" delta_C "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
</variable_ref>
</reaction>
Equation
A + B <-> D (catalyzed by C , inhibited by A )
Description
A reversible reaction in which the reverse reaction is inhibited by one of the substrates.
Picture
XML Formulation One
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
<role role=" inhibitor " direction=" reverse " />
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref variable=" D " >
<role role=" product " direction=" forward " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
</variable_ref>
</reaction>
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
XML Formulation Two
<reaction reversible=" yes " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " direction=" forward " />
<role role=" inhibitor " direction=" reverse " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_A </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_B </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_D </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
XML Formulation Three
<reaction reversible=" yes " >
<variable_ref variable=" A " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_A "
stoichiometry=" 1 " />
<role
role=" inhibitor "
direction=" reverse "
delta_variable=" delta_A "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" B " >
<role
role=" reactant "
direction=" forward "
delta_variable=" delta_B "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref variable=" D " >
<role
role=" product "
direction=" forward "
delta_variable=" delta_D "
stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " direction=" forward " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
Equation
A + B -> D (catalyzed by C , inhibited by D )
Description
An irreversible, catalyzed reaction that exhibits product-inhibition.
Picture
XML Formulation One
<reaction reversible=" no " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " />
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " />
<role role=" inhibitor " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " />
</variable_ref>
</reaction>
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
XML Formulation Two
<reaction reversible=" no " >
<variable_ref delta_variable=" delta_A " variable=" A " >
<role role=" reactant " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_A </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref delta_variable=" delta_B " variable=" B " >
<role role=" reactant " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_B </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > 1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " direction=" forward " />
</variable_ref>
<variable_ref delta_variable=" delta_D " variable=" D " >
<role role=" product " />
<role role=" inhibitor " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
<apply > <eq />
<ci > delta_D </ci>
<apply > <times />
<cn cellml:units=" dimensionless " > -1.0 </cn>
<ci > r </ci>
</apply>
</apply>
</math>
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
XML Formulation Three
<reaction reversible=" no " >
<variable_ref variable=" A " >
<role role=" reactant " delta_variable=" delta_A " stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" B " >
<role role=" reactant " delta_variable=" delta_B " stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" C " >
<role role=" catalyst " />
</variable_ref>
<variable_ref variable=" D " >
<role role=" product " delta_variable=" delta_D " stoichiometry=" 1 " />
<role role=" inhibitor " stoichiometry=" 1 " />
</variable_ref>
<variable_ref variable=" r " >
<role role=" rate " />
<math xmlns=" http://www.w3.org/1998/Math/MathML " >
...
</math>
</variable_ref>
</reaction>
|