- Author:
- David Nickerson <david.nickerson@gmail.com>
- Date:
- 2021-09-16 01:20:40+12:00
- Desc:
- Upadte jupyter notebook with MNT and DFN comparison figure
- Permanent Source URI:
- https://models.fieldml.org/workspace/a1/rawfile/ae7a0b93f4ee5fda3d81ba97eb459f958b2819c9/models/1994_rogers/model.xml
<?xml version='1.0' encoding='UTF-8'?>
<model cmeta:id="rogers_mcculloch" name="Rogers_McCulloch_1994" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<!--
Generally, we want to move away from initial/default values being
stored in the model directly. But until we are using CellML 1.1
it is probably quite useful to include the values in the model.
-->
<!-- Global units -->
<units name="mV">
<unit prefix="milli" units="volt"/>
</units>
<units name="uApmmsq">
<unit prefix="micro" units="ampere"/>
<unit exponent="-2" prefix="milli" units="metre"/>
</units>
<units name="uFpmmsq">
<unit prefix="micro" units="farad"/>
<unit exponent="-2" prefix="milli" units="metre"/>
</units>
<units name="ms">
<unit prefix="milli" units="second"/>
</units>
<units name="pms">
<unit exponent="-1" prefix="milli" units="second"/>
</units>
<component cmeta:id="interface" name="interface">
<!-- Variables we expect to be set/controlled externally -->
<variable name="t" private_interface="out" public_interface="in" units="ms"/>
<variable initial_value="0.01" name="Cm" private_interface="out" units="uFpmmsq"/>
<variable initial_value="-85.0" name="Vr" private_interface="out" units="mV"/>
<variable initial_value="-75.0" name="Vth" private_interface="out" units="mV"/>
<variable initial_value="15.0" name="Vp" private_interface="out" units="mV"/>
<variable initial_value="0.26" name="c1" private_interface="out" units="uApmmsq"/>
<variable initial_value="0.1" name="c2" private_interface="out" units="uApmmsq"/>
<variable initial_value="0.013" name="b" private_interface="out" units="pms"/>
<variable initial_value="0.8" name="d" private_interface="out" units="dimensionless"/>
<variable name="Istim" private_interface="out" public_interface="in" units="uApmmsq"/>
<!-- Variables we want to make available externally -->
<variable cmeta:id="Vm" name="Vm" private_interface="in" public_interface="out" units="mV"/>
<variable name="v" private_interface="in" public_interface="out" units="dimensionless"/>
<variable name="Iion" private_interface="in" public_interface="out" units="uApmmsq"/>
</component>
<!--interface-->
<component cmeta:id="membrane_potential" name="membrane_potential">
<!-- Inputs -->
<variable name="t" public_interface="in" units="ms"/>
<variable name="Cm" public_interface="in" units="uFpmmsq"/>
<variable name="Vr" public_interface="in" units="mV"/>
<variable name="Vth" public_interface="in" units="mV"/>
<variable name="Vp" public_interface="in" units="mV"/>
<variable name="Istim" public_interface="in" units="uApmmsq"/>
<variable name="Iion" public_interface="in" units="uApmmsq"/>
<!-- Outputs computed here -->
<variable initial_value="-85" name="Vm" private_interface="out" public_interface="out" units="mV"/>
<variable name="u" public_interface="out" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="Vm_diff_calculation">
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>Vm</ci>
</apply>
<apply>
<divide/>
<apply>
<minus/>
<ci>Istim</ci>
<ci>Iion</ci>
</apply>
<ci>Cm</ci>
</apply>
</apply>
<apply id="u_calculation">
<eq/>
<ci>u</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>Vm</ci>
<ci>Vr</ci>
</apply>
<apply>
<minus/>
<ci>Vp</ci>
<ci>Vr</ci>
</apply>
</apply>
</apply>
</math>
</component>
<!--membrane_potential-->
<component cmeta:id="ionic_current" name="ionic_current">
<!-- Inputs -->
<variable name="Vr" public_interface="in" units="mV"/>
<variable name="Vth" public_interface="in" units="mV"/>
<variable name="Vp" public_interface="in" units="mV"/>
<variable name="c1" public_interface="in" units="uApmmsq"/>
<variable name="c2" public_interface="in" units="uApmmsq"/>
<variable name="v" public_interface="in" units="dimensionless"/>
<variable name="u" public_interface="in" units="dimensionless"/>
<!-- Outputs computed here -->
<variable name="Iion" private_interface="out" public_interface="out" units="uApmmsq"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="Iion_calculation">
<eq/>
<ci>Iion</ci>
<apply>
<plus/>
<apply>
<times/>
<ci>c1</ci>
<ci>u</ci>
<apply>
<minus/>
<ci>u</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>Vth</ci>
<ci>Vr</ci>
</apply>
<apply>
<minus/>
<ci>Vp</ci>
<ci>Vr</ci>
</apply>
</apply>
</apply>
<apply>
<minus/>
<ci>u</ci>
<cn cellml:units="dimensionless">1.0</cn>
</apply>
</apply>
<apply>
<times/>
<ci>c2</ci>
<ci>u</ci>
<ci>v</ci>
</apply>
</apply>
</apply>
</math>
</component>
<!--ionic_current-->
<component cmeta:id="recovery_variable" name="recovery_variable">
<!-- Inputs -->
<variable name="t" public_interface="in" units="ms"/>
<variable name="b" public_interface="in" units="pms"/>
<variable name="d" public_interface="in" units="dimensionless"/>
<variable name="u" public_interface="in" units="dimensionless"/>
<!-- Outputs computed here -->
<variable initial_value="0.0" name="v" private_interface="out" public_interface="out" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="v_diff">
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>v</ci>
</apply>
<apply>
<times/>
<ci>b</ci>
<apply>
<minus/>
<ci>u</ci>
<apply>
<times/>
<ci>d</ci>
<ci>v</ci>
</apply>
</apply>
</apply>
</apply>
</math>
</component>
<!--ionic_current-->
<connection>
<map_components component_1="interface" component_2="membrane_potential"/>
<map_variables variable_1="t" variable_2="t"/>
<map_variables variable_1="Cm" variable_2="Cm"/>
<map_variables variable_1="Vr" variable_2="Vr"/>
<map_variables variable_1="Vth" variable_2="Vth"/>
<map_variables variable_1="Vp" variable_2="Vp"/>
<map_variables variable_1="Vm" variable_2="Vm"/>
<map_variables variable_1="Istim" variable_2="Istim"/>
</connection>
<connection>
<map_components component_1="interface" component_2="ionic_current"/>
<map_variables variable_1="Vr" variable_2="Vr"/>
<map_variables variable_1="Vth" variable_2="Vth"/>
<map_variables variable_1="Vp" variable_2="Vp"/>
<map_variables variable_1="c1" variable_2="c1"/>
<map_variables variable_1="c2" variable_2="c2"/>
<map_variables variable_1="Iion" variable_2="Iion"/>
</connection>
<connection>
<map_components component_1="interface" component_2="recovery_variable"/>
<map_variables variable_1="t" variable_2="t"/>
<map_variables variable_1="b" variable_2="b"/>
<map_variables variable_1="d" variable_2="d"/>
<map_variables variable_1="v" variable_2="v"/>
</connection>
<connection>
<map_components component_1="membrane_potential" component_2="ionic_current"/>
<map_variables variable_1="u" variable_2="u"/>
<map_variables variable_1="Iion" variable_2="Iion"/>
</connection>
<connection>
<map_components component_1="membrane_potential" component_2="recovery_variable"/>
<map_variables variable_1="u" variable_2="u"/>
</connection>
<connection>
<map_components component_1="ionic_current" component_2="recovery_variable"/>
<map_variables variable_1="v" variable_2="v"/>
</connection>
<group>
<relationship_ref relationship="encapsulation"/>
<component_ref component="interface">
<component_ref component="membrane_potential"/>
<component_ref component="ionic_current"/>
<component_ref component="recovery_variable"/>
</component_ref>
</group>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!-- metadata about the CellML document itself -->
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="">
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:N xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:Family xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">Nickerson</vCard:Family>
<vCard:Given xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">David</vCard:Given>
</vCard:N>
<vCard:EMAIL xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">d.nickerson@auckland.ac.nz</rdf:value>
<rdf:type xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:resource="http://imc.org/vCard/3.0#internet"/>
</vCard:EMAIL>
<vCard:ORG xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:Orgname xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">The University of Auckland</vCard:Orgname>
<vCard:Orgunit xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">The Bioengineering Institute</vCard:Orgunit>
</vCard:ORG>
</dc:creator>
<dcterms:created xmlns:dcterms="http://purl.org/dc/terms/" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<dcterms:W3CDTF xmlns:dcterms="http://purl.org/dc/terms/">2003-06-10</dcterms:W3CDTF>
</dcterms:created>
</rdf:Description>
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#1994_rogers_mcculloch">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
This is a CellML version of the modified FitzHugh-Nagumo model, 
published by Rogers and McCulloch in 1994. While the
original two-variable model described a non-dimensional activation 
variable (u) and a non-dimensional recovery variable (v), 
here we formulate the model in terms of the `real' action potential
given by the time course of the transmembrane potential (Vm). In so
doing, the time rate of change of the activation variable describes
the total `ionic current' through the membrane with the original
model parameters adjusted to give the correct dimensionality.
</rdf:value>
</cmeta:comment>
<bqs:reference xmlns:bqs="http://www.cellml.org/bqs/1.0#">
<bqs:Pubmed_id xmlns:bqs="http://www.cellml.org/bqs/1.0#">7927397</bqs:Pubmed_id>
<bqs:JournalArticle xmlns:bqs="http://www.cellml.org/bqs/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Seq xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:li xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:parseType="Resource">
<bqs:Person xmlns:bqs="http://www.cellml.org/bqs/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:N xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:Family xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">Rogers</vCard:Family>
<vCard:Given xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">J</vCard:Given>
<vCard:Other xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">M</vCard:Other>
</vCard:N>
</bqs:Person>
</rdf:li>
<rdf:li xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:parseType="Resource">
<bqs:Person xmlns:bqs="http://www.cellml.org/bqs/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:N xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<vCard:Family xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">McCulloch</vCard:Family>
<vCard:Given xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">A</vCard:Given>
<vCard:Other xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">D</vCard:Other>
</vCard:N>
</bqs:Person>
</rdf:li>
</rdf:Seq>
</dc:creator>
<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">
A collocation--Galerkin finite element model of cardiac 
action potential propagation
</dc:title>
<dcterms:issued xmlns:dcterms="http://purl.org/dc/terms/" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<dcterms:W3CDTF xmlns:dcterms="http://purl.org/dc/terms/">1994</dcterms:W3CDTF>
</dcterms:issued>
<bqs:Journal xmlns:bqs="http://www.cellml.org/bqs/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">IEEE Transactions on Biomedical Engineering 
</dc:title>
</bqs:Journal>
<bqs:volume xmlns:bqs="http://www.cellml.org/bqs/1.0#">41</bqs:volume>
<bqs:first_page xmlns:bqs="http://www.cellml.org/bqs/1.0#">743</bqs:first_page>
<bqs:last_page xmlns:bqs="http://www.cellml.org/bqs/1.0#">757</bqs:last_page>
</bqs:JournalArticle>
</bqs:reference>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#interface">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
We'll use this component as the "interface" to the model, all 
other components are hidden via encapsulation in this component.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#membrane_potential">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
The component which defines the kinetics of the transmembrane potential.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#Vm_diff_calculation_eq">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
This equation describes the kinetics of the transmembrane,
potential - the action potential.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#u_calculation_eq">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
The non-dimensional and scaled potential value.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#ionic_current">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
Here we define the total ionic current through the cellular
membrane - equivalent to the temporal derivative of the original
activation variable. The modification of Rogers and McCulloch is
in this equation, with the additional multiplication of recovery 
variable with the normalised potential.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#Iion_calculation_eq">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
The calcuation of the total ionic current.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#recovery_variable">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
Here we define the non-dimensional recovery variable, v.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#v_diff_eq">
<cmeta:comment xmlns:cmeta="http://www.cellml.org/metadata/1.0#" rdf:parseType="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:value xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
The kinetics of the recovery variable.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
</model>