<?xml version="1.0"?>
<!-- FILE : smith_crampin_Na_K_pump_2004.xml
CREATED : 26th April 2004
LAST MODIFIED : 26th April 2004
AUTHOR : Alice Boit
Bioengineering Institute
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.
DESCRIPTION : This file contains a CellML description of N. P. Smith' and E. Crampin's 2004 mathematical model of the cardiac sodium-potassium pump.
CHANGES:
-->
<model name="smith_crampin_Na_K_pump_2004" cmeta:id="smith_crampin_Na_K_pump_2004" 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>Boit</vCard:Family>
<vCard:Given>Alice</vCard:Given>
</vCard:N>
<vCard:EMAIL rdf:parseType="Resource">
<rdf:value>a.boit@auckland.ac.nz</rdf:value>
<rdf:type rdf:resource="http://imc.org/vCard/3.0#internet" />
</vCard:EMAIL>
<vCard:ORG rdf:parseType="Resource">
<vCard:Orgname>The University of Auckland</vCard:Orgname>
<vCard:Orgunit>The Bioengineering Institute</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>2004-04-26</dcterms:W3CDTF>
</dcterms:created>
<!-- 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 "smith_crampin_Na_K_pump_2004", which is declared on the
<model> element.
-->
<rdf:Description rdf:about="#smith_crampin_Na_K_pump_2004">
<!-- A human readable name for the model. -->
<dc:title>
N. P. Smith' and E. Crampin's 2004 mathematical model of the cardiac sodium-potassium pump.
</dc:title>
<!-- A comment regarding the model. -->
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
This is the CellML description of N. P. Smith' and E. Crampin's 2004
mathematical model of the cardiac sodium-potassium pump.
</rdf:value>
<!-- The creator of the comment. -->
<dc:creator rdf:parseType="Resource">
<vCard:FN>Alice Boit</vCard:FN>
</dc:creator>
</cmeta:comment>
<cmeta:bio_entity>Cardiac Myocyte</cmeta:bio_entity>
<!-- Keyword(s) -->
<bqs:reference rdf:parseType="Resource">
<dc:subject rdf:parseType="Resource">
<bqs:subject_type>keyword</bqs:subject_type>
<rdf:value>
<rdf:Bag>
<rdf:li>Cardiac Myocyte</rdf:li>
<rdf:li>Cardiac Electrophysiology</rdf:li>
<rdf:li>electrophysiology</rdf:li>
</rdf:Bag>
</rdf:value>
</dc:subject>
</bqs:reference>
<!--
The CellML Metadata Specification recommends that bibliographic metadata
is used to provide information about the original model reference. The
"identifier" attribute on the "BibliographicReference" class provides an
elegant way to identify a cited reference using a database identifier
such as Pubmed. All associated data such as author, journal title,
date, etc can be looked up on the database.
-->
<bqs:reference rdf:parseType="Resource">
<!--In Press at the time the model was coded. Will be added later-->
<bqs:Pubmed_id> </bqs:Pubmed_id>
<bqs:JournalArticle rdf:parseType="Resource">
<dc:creator>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<bqs:Person rdf:parseType="Resource">
<vCard:N rdf:parseType="Resource">
<vCard:Family>Smith</vCard:Family>
<vCard:Given>N</vCard:Given>
<vCard:Other>P</vCard:Other>
</vCard:N>
</bqs:Person>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<bqs:Person rdf:parseType="Resource">
<vCard:N rdf:parseType="Resource">
<vCard:Family>Crampin</vCard:Family>
<vCard:Given>E</vCard:Given>
<vCard:Given>J</vCard:Given>
</vCard:N>
</bqs:Person>
</rdf:li>
</rdf:Seq>
</dc:creator>
<dc:title>
Development of models of active ion transport for whole-cell modelling: cardiac sodium-potassium pump as a case study
</dc:title>
<!--In Press at the time the model was coded. Will be added later-->
<dcterms:issued rdf:parseType="Resource">
<dcterms:W3CDTF>2004</dcterms:W3CDTF>
</dcterms:issued>
<bqs:Journal rdf:parseType="Resource">
<dc:title>Progress in Biophysics & Molecular Biology</dc:title>
</bqs:Journal>
<bqs:volume />
<bqs:first_page />
<bqs:last_page />
</bqs:JournalArticle>
</bqs:reference>
</rdf:Description>
</rdf:RDF>
<units name="ms">
<unit prefix="milli" units="second" />
</units>
<units name="mV">
<unit prefix="milli" units="volt" />
</units>
<units name="mV_per_ms">
<unit units="mV" />
<unit units="ms" exponent="-1" />
</units>
<units name="mM">
<unit prefix="nano" units="mole" />
<unit prefix="milli" units="metre" exponent="-3" />
</units>
<units name="mM_per_ms">
<unit units="mM" />
<unit units="ms" exponent="-1" />
</units>
<units name="uA">
<unit prefix="micro" units="ampere" />
</units>
<!-- Global units used in the NaK_pump-->
<units name="concentration">
<unit prefix="milli" units="mole" />
<unit units="litre" exponent="-3" />
</units>
<units name="energy">
<unit units="joule" />
<unit units="mole" exponent="-1" />
</units>
<units name="gas_constant">
<unit units="joule" />
<unit units="mole" exponent="-1" />
<unit units="kelvin" exponent="-1" />
</units>
<units name="faraday_constant">
<unit units="coulomb" />
<unit units="mole" exponent="-1" />
</units>
<units name="rate">
<unit units="second" exponent="-1" />
</units>
<units name="minus_k1_rate">
<unit units="second" exponent="-1" />
<unit units="mM" exponent="-1" />
</units>
<units name="minus_k3_rate">
<unit units="second" exponent="-1" />
<unit units="mM" exponent="-2" />
</units>
<units name="rate_diagram_sum">
<unit units="second" exponent="-3" />
</units>
<!-- interface component -->
<component name="interface">
<!-- Variables we expect to be set/controlled externally -->
<variable name="t" private_interface="out" units="ms" />
<variable name="Vm" private_interface="out" initial_value="-150" units="mV" />
<!-- Variables used in the NaK_pump we expect to be set/controlled externally -->
<variable name="cMgADP" private_interface="out" initial_value="0.01" units="concentration" />
<variable name="cNa_i" private_interface="out" initial_value="50." units="concentration" />
<!-- Variables used in the NaK_pump we want to make available externally and which are computed by subordinate components-->
<!-- Cycle rate of Na/K-pump -->
<variable name="v_cyc" public_interface="out" private_interface="in" units="rate" />
<!-- Net Free Energy of cycle -->
<variable name="net_free_energy" public_interface="out" private_interface="in" units="energy" />
<!-- Some dummy ODEs as a means to handle the three input variables
(membrane potential, ADP concentration, cytosolic sodium concentration)-->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<apply><diff />
<bvar><ci>t</ci></bvar>
<ci>Vm</ci>
</apply>
<cn cellml:units="mV_per_ms">1.0</cn>
</apply>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<apply><diff />
<bvar><ci>t</ci></bvar>
<ci>cMgADP</ci>
</apply>
<cn cellml:units="concentration">0.0</cn>
</apply>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq />
<apply><diff />
<bvar><ci>t</ci></bvar>
<ci>cNa_i</ci>
</apply>
<cn cellml:units="concentration">0.0</cn>
</apply>
</math>
</component> <!--EO interface-->
<component name="NaK_pump">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#NaK_pump">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
The Na/K-pump is an energy-consuming transporter channel within the membrane.
It is indispensible for maintaining the electrochemical gradients of the involved ions
across the membrane which result in resting Vm. The pump splits up one ATP molecule as it undergoes a
conformational change transporting 3Na outwards and 2K inwards in each cycle.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<!-- Variables and Parameters -->
<!-- Body temperature -->
<variable name="body_temp" private_interface="out" initial_value="310." units="kelvin" />
<!-- General constants -->
<variable name="gas_const" private_interface="out" initial_value="8.314" units="gas_constant" />
<variable name="faraday_const" private_interface="out" initial_value="96485." units="faraday_constant" />
<!-- Foward and backward rate constants of the reduced 4-state cycle. They are named with 'k's. They are used in the calculation of the apparent transition rates (called 'alpha's). Note that two backward reaction rates carry unusual units (minus_k1 and minus_k3). For explanations please read subsequent comments.-->
<variable name="k1" initial_value="1050." units="rate" />
<variable name="minus_k1" initial_value="172.1" units="minus_k1_rate" />
<variable name="k2" initial_value="481." units="rate" />
<variable name="minus_k2" initial_value="40.1" units="rate" />
<variable name="k3" initial_value="2000." units="rate" />
<variable name="minus_k3" initial_value="79287.1" units="minus_k3_rate" />
<variable name="k4" initial_value="320." units="rate" />
<variable name="minus_k4" initial_value="40.1" units="rate" />
<!-- Kinetic parameters (e: extracellular, i: intracellular). They represent the ratio of corresponding 'k's under rapid equilibrium condition. These equilibrium constants are named with 'eq's. The indices 'e' and 'i' still refer to extra-, intracellular side, respectively.
Note:
the Na-equilibrium constants are set to a
baseline level here because they are functions of Vm, see implementation below. -->
<variable name="eq_Na_base_e" initial_value="15.5" units="concentration" />
<variable name="eq_Na_base_i" initial_value="2.49" units="concentration" />
<variable name="eq_K_e" initial_value="0.213" units="concentration" />
<variable name="eq_K_i" initial_value="0.5" units="concentration" />
<variable name="eq_MgATP" initial_value="2.51" units="concentration" />
<variable name="eq_HPi" initial_value="0.000169" units="concentration" />
<variable name="eq_KPi" initial_value="292." units="concentration" />
<variable name="eq_NaPi" initial_value="224." units="concentration" />
<!-- To arrange the calculations for the final transition rates more clearly, we introduce
another parameter set which consists of the ratios between each ion concentration and its
corresponding equilibrium constant. These ratios are dimensionless because we assigned
concentration units to the equilibrium constants.-->
<variable name="dimless_Na_e" initial_value="0." units="dimensionless" />
<variable name="dimless_Na_i" initial_value="0." units="dimensionless" />
<variable name="dimless_K_e" initial_value="0." units="dimensionless" />
<variable name="dimless_K_i" initial_value="0." units="dimensionless" />
<variable name="dimless_MgATP" initial_value="0." units="dimensionless" />
<!-- Apparent transition rates of the lumped scheme. These 'alpha's are the actual rate constants used
in the calculation of the cycle rate v_cyc.
Computing the 'alpha's most times involves the rate constants named with 'k's and the dimensionless ratios
calculated before, so that the outcome is in usual reaction rate units of [1/s]. -->
<variable name="alpha1" initial_value="1.0" units="rate" />
<variable name="alpha2" initial_value="1.0" units="rate" />
<variable name="alpha3" initial_value="1.0" units="rate" />
<variable name="alpha4" initial_value="1.0" units="rate" />
<variable name="minus_alpha1" initial_value="1.0" units="rate" />
<variable name="minus_alpha2" initial_value="1.0" units="rate" />
<variable name="minus_alpha3" initial_value="1.0" units="rate" />
<variable name="minus_alpha4" initial_value="1.0" units="rate" />
<!-- Molecular concentrations -->
<variable name="cNa_e" initial_value="150." units="concentration" />
<variable name="cK_e" initial_value="5.4" units="concentration" />
<variable name="cK_i" initial_value="140." units="concentration" />
<variable name="cMgATP" initial_value="9.8" units="concentration" />
<variable name="cPi_sum" initial_value="4.2" units="concentration" />
<variable name="cPi" initial_value="0." units="concentration" />
<variable name="cH" initial_value="0.000081283" units="concentration" />
<!-- Energy required to run the pump per cycle consists of two terms; the Na and K contributions-->
<variable name="dG_Na" units="energy" />
<variable name="dG_K" units="energy" />
<variable name="dG_pump" units="energy" />
<!-- Free Energy of ATP hydrolysis -->
<variable name="dG_ATP" units="energy" />
<!-- Partition factor that determines how the voltage dependency of the two Na equilibrium constants is distributed between extracellular matrix and cytosol-->
<variable name="partition_factor" initial_value="-0.031288692380984445" units="dimensionless" />
<!-- Diagram sum of the four states for the denominator used in calculation of cycle rate v_cyc. -->
<variable name="diagram_sum" initial_value="0.0" units="rate_diagram_sum" />
<!-- Inputs -->
<!-- Externally set variables: Vm, cMgADP and cNa_i should be regulated via the interface -->
<variable name="Vm" public_interface="in" private_interface="out" units="mV" />
<variable name="cMgADP" public_interface="in" private_interface="out" units="concentration" />
<variable name="cNa_i" public_interface="in" private_interface="out" units="concentration" />
<!-- Outputs computed here -->
<!-- Clockwise cycle rate-->
<variable name="v_cyc" public_interface="out" units="rate" />
<!-- Net Free Energy of cycle -->
<variable name="net_free_energy" public_interface="out" units="energy" />
<!-- compute the concentration of free inorganic phosphate-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#cPi">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of the concentration of free inorganic phosphate cPi
related to the total measurable concentration given by cPi_sum.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="cPi"><eq />
<ci>cPi</ci>
<apply><divide />
<ci>cPi_sum</ci>
<apply><plus />
<cn cellml:units="dimensionless">1.0</cn>
<apply><divide />
<ci>cK_i</ci>
<ci>eq_KPi</ci>
</apply>
<apply><divide />
<ci>cH</ci>
<ci>eq_HPi</ci>
</apply>
<apply><divide />
<ci>cNa_i</ci>
<ci>eq_NaPi</ci>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- compute energy required to run pump in dependence of Vm (a positive term). First, the Na-contribution-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dG_Na_calc_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of the Na contribution to dG_pump.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dG_Na_calc"><eq />
<ci>dG_Na</ci>
<apply><minus />
<apply><times />
<ci>gas_const</ci>
<ci>body_temp</ci>
<apply><ln />
<apply><divide />
<ci>cNa_e</ci>
<ci>cNa_i</ci>
</apply>
</apply>
</apply>
<apply><times />
<ci>faraday_const</ci>
<cn cellml:units="dimensionless">0.001</cn>
<ci>Vm</ci>
</apply>
</apply>
</apply>
</math>
<!--K-contribution-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dG_K_calc_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of the K contribution to dG_pump.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dG_K_calc"><eq />
<ci>dG_K</ci>
<apply><plus />
<apply><times />
<ci>gas_const</ci>
<ci>body_temp</ci>
<apply><ln />
<apply><divide />
<ci>cK_i</ci>
<ci>cK_e</ci>
</apply>
</apply>
</apply>
<apply><times />
<ci>faraday_const</ci>
<cn cellml:units="dimensionless">0.001</cn>
<ci>Vm</ci>
</apply>
</apply>
</apply>
</math>
<!-- compute energy required to run pump by adding the two contributions-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dG_pump_calc_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of dG_pump.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dG_pump_calc"><eq />
<ci>dG_pump</ci>
<apply><plus />
<apply><times />
<cn cellml:units="dimensionless">2.0</cn>
<ci>dG_K</ci>
</apply>
<apply><times />
<cn cellml:units="dimensionless">3.0</cn>
<ci>dG_Na</ci>
</apply>
</apply>
</apply>
</math>
<!-- compute energy released by exergonic hydrolysis of ATP (a negative term).-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dG_ATP_calc">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation the energy released by ATP hydrolysis.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dG_ATP_calc"><eq />
<ci>dG_ATP</ci>
<apply><minus />
<cn cellml:units="energy">-29600.</cn>
<apply><times />
<ci>gas_const</ci>
<ci>body_temp</ci>
<apply><ln />
<apply><divide />
<ci>cMgATP</ci>
<apply><times />
<cn cellml:units="dimensionless">0.001</cn>
<ci>cMgADP</ci>
<ci>cPi</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- compute net free energy by summing up the last two energy terms-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dG_ATP_calc">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation the net free energy of the cycle.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="net_free_energy_calc"><eq />
<ci>net_free_energy</ci>
<apply><plus />
<ci>dG_ATP</ci>
<ci>dG_pump</ci>
</apply>
</apply>
</math>
<!-- compute pump cycle rate in dependence of the rate constants. First, calculate the dimensionless
parameters which represent ratios between each ion concentration and its
corresponding equilibrium constant. Then use these parameters to define the rate constants of the
lumped scheme (the 'alpha's)-->
<!-- calculate dimless_Na_i -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dimless_Na_i">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of the dimless_Na_i parameter which is a function of Vm because the equilibrium constant is
dependent on Vm (which occurs in the denominator's exponential).
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dimless_Na_i_calc"><eq />
<ci>dimless_Na_i</ci>
<apply>
<divide />
<ci>cNa_i</ci>
<apply><times />
<ci>eq_Na_base_i</ci>
<apply><exp />
<apply><divide />
<apply><times />
<ci>partition_factor</ci>
<ci>faraday_const</ci>
<cn cellml:units="dimensionless">0.001</cn>
<ci>Vm</ci>
</apply>
<apply><times />
<cn cellml:units="dimensionless">3.0</cn>
<ci>gas_const</ci>
<ci>body_temp</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- calculate dimless_Na_e -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="#dimless_Na_e">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
Calculation of the dimless_Na_e parameter which is a
function of Vm because the equilibrium constant is
dependent on Vm (which occurs in the denominator's exponential). Note that the partition of the
voltage dependency in the exponential corresponds to the previous calculation of dimless_Na_i.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="dimless_Na_e_calc"><eq />
<ci>dimless_Na_e</ci>
<apply>
<divide />
<ci>cNa_e</ci>
<apply><times />
<ci>eq_Na_base_e</ci>
<apply><exp />
<apply><divide />
<apply><times />
<apply><plus />
<cn cellml:units="dimensionless">1.</cn>
<ci>partition_factor</ci>
</apply>
<ci>