<?xml version="1.0"?>
<!--
FILE : basic_ep_model_with_encapsulation.xml
CREATED : 29 December 2000
LAST MODIFIED : 22nd July 2002
AUTHOR : Warren Hedley (w.hedley@auckland.ac.nz)
Department of Engineering Science
The University of Auckland
DESCRIPTION : In this CellML file, the simple electro-physiological/membrane
model presented in the examples section of the CellML website is extended
to introduce the grouping concept, with particular emphasis on the
encapsulation relationship. The model and associated markup have been
created solely for demonstration purposes and is not expected to behave
physiologically realistically.
Only features that weren't in the original basic e-p model are commented
in this file.
-->
<model name="basic_ep_model_with_encapsulation" 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_ep_model_with_encapsulation", which is
declared on the <model> element.
-->
<rdf:Description rdf:about="#basic_ep_model_with_encapsulation">
<!-- A human readable name for the model. -->
<dc:title>A Simple Electrophysiological Model With Encapsulation</dc:title>
<!-- A comment regarding the model. -->
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Below is a CellML description of a simple electrophysiological model with encapsulation.
The purpose of this description is to illustrate how CellML can be
used to model ionic currents and changes in ionic concentrations 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>
<units name="concentration_units">
<unit prefix="milli" units="mole" />
<unit units="litre" exponent="-1" />
</units>
<units name="flux_units">
<unit units="concentration_units" />
<unit units="second" exponent="-1" />
</units>
<units name="rate_constant">
<unit units="second" exponent="-1" />
</units>
<component name="environment">
<variable name="time" public_interface="out" units="second" />
</component>
<component name="intra_cellular_space">
<!-- the following variables are used in other components -->
<variable name="Na" public_interface="out" units="concentration_units" />
<variable name="Ca" public_interface="out" units="concentration_units" />
<!-- the following variables are imported from other components -->
<variable name="time" public_interface="in" units="second" />
<variable name="I_Na" public_interface="in" units="flux_units" />
<variable name="I_Ca" public_interface="in" units="flux_units" />
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<apply><diff />
<bvar><ci> time </ci></bvar>
<ci> Na </ci>
</apply>
<ci> I_Na </ci>
</apply>
<apply><eq />
<apply><diff />
<bvar><ci> time </ci></bvar>
<ci> Ca </ci>
</apply>
<ci> I_Ca </ci>
</apply>
</math>
</component>
<component name="extra_cellular_space">
<!-- the following variables are used in other components -->
<variable name="Na" public_interface="out" units="concentration_units" />
<variable name="Ca" public_interface="out" units="concentration_units" />
<!-- the following variables are imported from other components -->
<variable name="time" public_interface="in" units="second" />
<variable name="I_Na" public_interface="in" units="flux_units" />
<variable name="I_Ca" public_interface="in" units="flux_units" />
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<apply><diff />
<bvar><ci> time </ci></bvar>
<ci> Na </ci>
</apply>
<apply><times />
<cn cellml:units="dimensionless"> -1.0 </cn>
<ci> I_Na </ci>
</apply>
</apply>
<apply><eq />
<apply><diff />
<bvar><ci> time </ci></bvar>
<ci> Ca </ci>
</apply>
<apply><times />
<cn cellml:units="dimensionless"> -1.0 </cn>
<ci> I_Ca </ci>
</apply>
</apply>
</math>
</component>
<!--
In the extended e-p model, the membrane encapsulates two components
representing the sodium and calcium channels. The rate constants and
math for the fluxes is now in the channel components.
-->
<component name="cell_membrane">
<!--
The sodium and calcium fluxes are calculated in the encapsulated
components and passed up to the membrane component and then out to the
intra- and extra-cellular subspaces, so the fluxes have a private
interface value of "in" and a public interface value of "out".
-->
<variable name="I_Na" public_interface="out" private_interface="in" units="flux_units" />
<variable name="I_Ca" public_interface="out" private_interface="in" units="flux_units" />
<!--
The concentrations of the ions in the intra- and extra-cellular
subspaces is needed for the flux calculations, so these have a public
interface value of "in" and a private interface value of "out".
-->
<variable name="Na_i" public_interface="in" private_interface="out" units="concentration_units" />
<variable name="Na_e" public_interface="in" private_interface="out" units="concentration_units" />
<variable name="Ca_i" public_interface="in" private_interface="out" units="concentration_units" />
<variable name="Ca_e" public_interface="in" private_interface="out" units="concentration_units" />
</component>
<!--
The sodium channel component doesn't know that it is encapsulated, and
the variables that declare a public interface are visible to both sibling
components (components encapsulated in the same group) as well as the
parent encapsulating component.
-->
<component name="sodium_channel">
<variable name="I_Na" public_interface="out" units="flux_units" />
<variable name="Na_i" public_interface="in" units="concentration_units" />
<variable name="Na_e" public_interface="in" units="concentration_units" />
<!-- The rate constant is only used internally so has no interface -->
<variable name="v_Na" initial_value="1.0e-8" units="rate_constant" />
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<ci> I_Na </ci>
<apply><times />
<ci> v_Na </ci>
<apply><minus />
<ci> Na_i </ci>
<ci> Na_e </ci>
</apply>
</apply>
</apply>
</math>
</component>
<!--
The calcium channel is identical to the sodium channel. Note that when
the component re-use scheme for CellML is properly defined, we would
declare one generic channel component class, and then create two instances
of that class, setting the rate constant appropriately for each channel.
-->
<component name="calcium_channel">
<variable name="I_Ca" public_interface="out" units="flux_units" />
<variable name="Ca_i" public_interface="in" units="concentration_units" />
<variable name="Ca_e" public_interface="in" units="concentration_units" />
<variable name="v_Ca" initial_value="1.5e-8" units="rate_constant" />
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<ci> I_Ca </ci>
<apply><times />
<ci> v_Ca </ci>
<apply><minus />
<ci> Ca_i </ci>
<ci> Ca_e </ci>
</apply>
</apply>
</apply>
</math>
</component>
<!--
The encapsulation relationship between the cell membrane and the sodium
and calcium channels is defined inside the following <group> element. The
group references the membrane as a major component and the two channels as
minor components and references two relationships between the minor
components and the major component: "is_encapsulated_by" and
"is_contained_in".
-->
<group>
<relationship_ref relationship="encapsulation" />
<relationship_ref relationship="containment" />
<component_ref component="cell_membrane">
<component_ref component="sodium_channel" />
<component_ref component="calcium_channel" />
</component_ref>
</group>
<connection>
<map_components component_1="intra_cellular_space" component_2="cell_membrane" />
<map_variables variable_1="Na" variable_2="Na_i" />
<map_variables variable_1="Ca" variable_2="Ca_i" />
<map_variables variable_1="I_Na" variable_2="I_Na" />
<map_variables variable_1="I_Ca" variable_2="I_Ca" />
</connection>
<connection>
<map_components component_1="extra_cellular_space" component_2="cell_membrane" />
<map_variables variable_1="Na" variable_2="Na_e" />
<map_variables variable_1="Ca" variable_2="Ca_e" />
<map_variables variable_1="I_Na" variable_2="I_Na" />
<map_variables variable_1="I_Ca" variable_2="I_Ca" />
</connection>
<connection>
<map_components component_1="environment" component_2="intra_cellular_space" />
<map_variables variable_1="time" variable_2="time" />
</connection>
<connection>
<map_components component_1="environment" component_2="extra_cellular_space" />
<map_variables variable_1="time" variable_2="time" />
</connection>
<!--
The two new connections in the extended e-p model are between the cell
membrane and the sodium and calcium channels. The mappings of fluxes and
ionic concentrations are straightforward.
-->
<connection>
<map_components component_1="cell_membrane" component_2="sodium_channel" />
<map_variables variable_1="Na_i" variable_2="Na_i" />
<map_variables variable_1="Na_e" variable_2="Na_e" />
<map_variables variable_1="I_Na" variable_2="I_Na" />
</connection>
<connection>
<map_components component_1="cell_membrane" component_2="calcium_channel" />
<map_variables variable_1="Ca_i" variable_2="Ca_i" />
<map_variables variable_1="Ca_e" variable_2="Ca_e" />
<map_variables variable_1="I_Ca" variable_2="I_Ca" />
</connection>
</model>