<?xml version=
"1.0"
?>
<!--
FILE : basic_reaction_model.xml
CREATED : 27 November 2000
LAST MODIFIED : 22nd July 2002
AUTHOR : Warren Hedley (w.hedley@auckland.ac.nz)
Department of Engineering Science
The University of Auckland
MODEL STATUS : This model conforms to the CellML 1.0 Specification released on
10th August 2001, and the 16/01/2002 CellML Metadata 1.0
Specification.
ORIGINAL CONCEPT BY :
Melanie Nelson (mnelson@phsyiome.com)
Physiome Sciences, Inc.
DESCRIPTION : This file contains a CellML description of an extremely simple
reaction/pathway cellular model. The model and associated markup have been
created solely for demonstration purposes.
-->
<!--
The root element for our CellML model description is <model>. This contains
a "name" attribute which would be used if the model were to be combined with
another model at a later date, or if the model is to be referenced in some
way by another model.
Two namespaces are declared on the root element. The first sets the default
namespace for the <model> element and all elements contained within the
<model> element to the CellML namespace. The second namespace is again the
CellML namespace, but this time declared with an explicit "cellml" prefix.
This declaration has document-wide scope, so the "cellml" prefix may be used
anywhere to move an element or attribute into the CellML namespace.
-->
<model
name="
basic_reaction_model
"
xmlns="
http://www.cellml.org/cellml/1.0#
"
xmlns:cellml="
http://www.cellml.org/cellml/1.0#
"
xmlns:cmeta="
http://www.cellml.org/metadata/1.0#
"
>
<rdf:RDF
xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#
"
xmlns:bqs="
http://www.cellml.org/bqs/1.0#
"
xmlns:dc="
http://purl.org/dc/elements/1.1/
"
xmlns:dcterms="
http://purl.org/dc/terms/
"
xmlns:vCard="
http://www.w3.org/2001/vcard-rdf/3.0#
"
>
<!--
The following RDF block contains metadata that applies to this document
as a whole, as indicated by the empty about attribute on the
<rdf:Description> element.
-->
<rdf:Description
rdf:about="
"
>
<!--
The Model Builder Metadata. The Dublin Core "creator" element is used
to indicate the person who translated the model into CellML.
-->
<dc:creator
rdf:parseType="
Resource
"
>
<vCard:N
rdf:parseType="
Resource
"
>
<vCard:Family
>
Hedley
</vCard:Family>
<vCard:Given
>
Warren
</vCard:Given>
</vCard:N>
<vCard:ORG
rdf:parseType="
Resource
"
>
<vCard:Orgname
>
The University of Auckland
</vCard:Orgname>
<vCard:Orgunit
>
The Engineering Science Department
</vCard:Orgunit>
</vCard:ORG>
</dc:creator>
<!--
The Creation Date metadata. This is the date on which the model
was translated into CellML.
-->
<dcterms:created
rdf:parseType="
Resource
"
>
<dcterms:W3CDTF
>
2000-11-20
</dcterms:W3CDTF>
</dcterms:created>
<!--
The Last Modified Date metadata. This is the date on which
the model was last changed.
-->
<cmeta:modification
rdf:parseType="
Resource
"
>
<rdf:value
>
Added metadata.
</rdf:value>
<cmeta:modifier
rdf:parseType="
Resource
"
>
<vCard:N
rdf:parseType="
Resource
"
>
<vCard:Family
>
Lloyd
</vCard:Family>
<vCard:Given
>
Catherine
</vCard:Given>
<vCard:Other
>
May
</vCard:Other>
</vCard:N>
</cmeta:modifier>
<dcterms:modified
rdf:parseType="
Resource
"
>
<dcterms:W3CDTF
>
2002-07-22
</dcterms:W3CDTF>
</dcterms:modified>
</cmeta:modification>
<!-- The Publisher metadata. -->
<dc:publisher
>
The University of Auckland, Bioengineering Institute
</dc:publisher>
</rdf:Description>
<!--
The following metadata refers to the model itself, as indicated by the
reference to the ID "basic_reaction_model", which is declared on the <model> element.
-->
<rdf:Description
rdf:about="
#basic_reaction_model
"
>
<!-- A human readable name for the model. -->
<dc:title
>
A Simple Reaction Model
</dc:title>
<!-- A comment regarding the model. -->
<cmeta:comment
rdf:parseType="
Resource
"
>
<rdf:value
>
Below is a CellML description of a simple reaction model.
The purpose of this description is to illustrate how CellML can be
used to model metabolic and signal transduction pathways within a cell.
</rdf:value>
<!-- The creator of the comment. -->
<dc:creator
>
<vCard:FN
>
Catherine Lloyd
</vCard:FN>
</dc:creator>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<!--
The following <units> elements are used to declare a set of unit names
that can be referenced by units attributes on <variable> and <cn> elements
elsewhere in the model. See the example documentation of the simple
electro-physiological model for more details. Note that the empty prefix
attributes could have been omitted. They are included here for clarity.
-->
<units
name="
concentration_units
"
>
<unit
prefix="
milli
"
units="
mole
"
/>
<unit
units="
litre
"
exponent="
-1
"
/>
</units>
<units
name="
flux_units
"
>
<unit
units="
concentration_units
"
exponent="
1
"
/>
<unit
units="
second
"
exponent="
-1
"
/>
</units>
<units
name="
second_order_rate_constant
"
>
<unit
units="
concentration_units
"
exponent="
-1
"
/>
<unit
units="
second
"
exponent="
-1
"
/>
</units>
<units
name="
third_order_rate_constant
"
>
<unit
units="
concentration_units
"
exponent="
-2
"
/>
<unit
units="
second
"
exponent="
-1
"
/>
</units>
<!--
The environment component is used to declare variables that are used
by all or most of the other components. Variables must be declared inside
of a component element. Note that the name "global_variables" should not
be interpreted in any way other than as an name, i.e., it has no special
significance.
-->
<component
name="
environment
"
>
<variable
name="
time
"
public_interface="
out
"
units="
second
"
/>
</component>
<!--
The first four components correspond to the reactants and products in
the simple reaction model. They are primarily used to store the
concentrations of each of the species. These variables are given the
same name as their parent component, and exposed to the rest of the model
by having a public_interface value of "out". The reaction calculates the
rate of change of concentration of each of the species as a result
of that reaction, and the results (the "delta" variables) are passed back
to the components representing the chemical species. These variables
therefore have a public_interface value of in. Because the concentration
variables are continuous functions of time, the time variable must also
be declared.
Although it would be possible to define all of the chemical species and
the reaction in the same component, it is recommended best practice to
put each chemical species and each reaction in its own component. This
makes it easier to combine this model with other pathway models, or merge
it with electro-physiological or other classes of model.
-->
<component
name="
A
"
>
<variable
name="
A
"
public_interface="
out
"
units="
concentration_units
"
/>
<variable
name="
delta_A
"
public_interface="
in
"
units="
flux_units
"
/>
<variable
name="
time
"
public_interface="
in
"
units="
second
"
/>
<math
xmlns="
http://www.w3.org/1998/Math/MathML
"
>
<apply
>
<eq
/>
<apply
>
<diff
/>
<bvar
>
<ci
>
time
</ci>
</bvar>
<ci
>
A
</ci>
</apply>
<ci
>
delta_A
</ci>
</apply>
</math>
</component>
<component
name="
B
"
>
<variable
name="
B
"
public_interface="
out
"
units="
concentration_units
"
/>
<variable
name="
delta_B
"
public_interface="
in
"
units="
flux_units
"
/>
<variable
name="
time
"
public_interface="
in
"
units="
second
"
/>
<math
xmlns="
http://www.w3.org/1998/Math/MathML
"
>
<apply
>
<eq
/>
<apply
>
<diff
/>
<bvar
>
<ci
>
time
</ci>
</bvar>
<ci
>
B
</ci>
</apply>
<ci
>
delta_B
</ci>
</apply>
</math>
</component>
<component
name="
C
"
>
<variable
name="
C
"
public_interface="
out
"
units="
concentration_units
"
/>
<variable
name="
delta_C
"
public_interface="
in
"
units="
flux_units
"
/>
<variable
name="
time
"
public_interface="
in
"
units="
second
"
/>
<math
xmlns="
http://www.w3.org/1998/Math/MathML
"
>
<apply
>
<eq
/>
<apply
>
<diff
/>
<bvar
>
<ci
>
time
</ci>
</bvar>
<ci
>
C
</ci>
</apply>
<ci
>
delta_C
</ci>
</apply>
</math>
</component>
<component
name="
D
"
>
<variable
name="
D
"
public_interface="
out
"
units="
concentration_units
"
/>
<variable
name="
delta_D
"
public_interface="
in
"
units="
flux_units
"
/>
<variable
name="
time
"
public_interface="
in
"
units="
second
"
/>
<math
xmlns="
http://www.w3.org/1998/Math/MathML
"
>
<apply
>
<eq
/>
<apply
>
<diff
/>
<bvar
>
<ci
>
time
</ci>
</bvar>
<ci
>
D
</ci>
</apply>
<ci
>
delta_D
</ci>
</apply>
</math>
</component>
<!--
The basic reaction component contains the definition of the only actual
reaction in our simple model, importing the concentrations of the reactants
(A and B) and products (C and D) and calculating the change in these
concentrations (the delta variables) for export back to the components
where these concentrations are declared (defined above).
-->
<component
name="
basic_reaction
"
>
<!-- These variables are modifiable elsewhere and imported. -->
<variable
name="
A
"
public_interface="
in
"
units="
concentration_units
"
/>
<variable
name="
B
"
public_interface="
in
"
units="
concentration_units
"
/>
<variable
name="
C
"
public_interface="
in
"
units="
concentration_units
"
/>
<variable
name="
D
"
public_interface="
in
"
units="
concentration_units
"
/>
<!-- These variables are modifiable in this component and exported. -->
<variable
name="
delta_A
"
public_interface="
out
"
units="
flux_units
"
/>
<variable
name="
delta_B
"
public_interface="
out
"
units="
flux_units
"
/>
<variable
name="
delta_C
"
public_interface="
out
"
units="
flux_units
"
/>
<variable
name="
delta_D
"
public_interface="
out
"
units="
flux_units
"
/>
<!--
k_forward and k_reverse are the forward and reverse rate constants,
respectively. "r" is the reaction rate, or extent of the reaction.
They are not used by any other component in the model, and therefore
have no public or private interface.
-->
<variable
name="
k_forward
"
units="
second_order_rate_constant
"
/>
<variable
name="
k_reverse
"
units="
third_order_rate_constant
"
/>
<variable
name="
r
"
units="
flux_units
"
/>
<!--
The <reaction> element is used to indicate which chemical species are
participating in this reaction, and what role they play in the reaction.
When the "delta_variable" and "stoichiometry" attributes are both
specified on a <role> element, it implies an equation defining the delta
variable's value in terms of the stoichiometry and the reaction rate.
The reaction rate is determined by the variable with a role of "rate"
(in this case "r"), and the equation determining the value of "r" is
defined using MathML inside that variable reference.
So <role delta_variable="delta_A" stoichiometry="1"> implies
<apply><eq />
<ci> delta_A </ci>
<apply><times />
<cn cellml:units="dimensionless"> 1.0 </cn>
<ci> r </ci>
</apply>
</apply>
Note that the "direction" attributes on the <role> elements defaults to
"forward" so could have been omitted on the <role> elements below.
-->
<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
"
>
<math
xmlns="
http://www.w3.org/1998/Math/MathML
"
>
<apply
>
<eq
/>
<ci
>
r
</ci>
<apply
>
<plus
/>
<apply
>
<minus
/>
<apply
>
<times
/>
<ci
>
k_forward
</ci>
<ci
>
A
</ci>
<ci
>
B
</ci>
</apply>
</apply>
<apply
>
<times
/>
<ci
>
k_reverse
</ci>
<apply
>
<power
/>
<ci
>
C
</ci>
<cn
cellml:units="
dimensionless
"
>
2.0
</cn>
</apply>
<ci
>
D
</ci>
</apply>
</apply>
</apply>
</math>
</role>
</variable_ref>
</reaction>
</component>
<!--
The connections define the mappings between variables declared in
different components. When more than one variable is mapped between
two components, all variable mappings must be listed in the same
connection element (there can only be one connection between two
components).
-->
<connection
>
<map_components
component_1="
A
"
component_2="
basic_reaction
"
/>
<map_variables
variable_1="
A
"
variable_2="
A
"
/>
<map_variables
variable_1="
delta_A
"
variable_2="
delta_A
"
/>
</connection>
<connection
>
<map_components
component_1="
B
"
component_2="
basic_reaction
"
/>
<map_variables
variable_1="
B
"
variable_2="
B
"
/>
<map_variables
variable_1="
delta_B
"
variable_2="
delta_B
"
/>
</connection>
<connection
>
<map_components
component_1="
C
"
component_2="
basic_reaction
"
/>
<map_variables
variable_1="
C
"
variable_2="
C
"
/>
<map_variables
variable_1="
delta_C
"
variable_2="
delta_C
"
/>
</connection>
<connection
>
<map_components
component_1="
D
"
component_2="
basic_reaction
"
/>
<map_variables
variable_1="
D
"
variable_2="
D
"
/>
<map_variables
variable_1="
delta_D
"
variable_2="
delta_D
"
/>
</connection>
<connection
>
<map_components
component_1="
A
"
component_2="
environment
"
/>
<map_variables
variable_1="
time
"
variable_2="
time
"
/>
</connection>
<connection
>
<map_components
component_1="
B
"
component_2="
environment
"
/>
<map_variables
variable_1="
time
"
variable_2="
time
"
/>
</connection>
<connection
>
<map_components
component_1="
C
"
component_2="
environment
"
/>
<map_variables
variable_1="
time
"
variable_2="
time
"
/>
</connection>
<connection
>
<map_components
component_1="
D
"
component_2="
environment
"
/>
<map_variables
variable_1="
time
"
variable_2="
time
"
/>
</connection>
</model>