- Author:
- David Nickerson <david.nickerson@gmail.com>
- Date:
- 2021-09-16 00:41:19+12:00
- Desc:
- Updating Noble 1962 model:
* Exposing the membrane potential to the top-level model;
* adding SED-ML for the paced and pacemaker variants of the model.
Using OpenCOR Snapshot release 2021-09-14.
- Permanent Source URI:
- https://models.fieldml.org/workspace/a1/rawfile/f954e59183314cd37f86c8832dc81317d01c8ec5/models/1996_aliev/model.xml
<?xml version='1.0' encoding='UTF-8'?>
<model cmeta:id="aliev_panfilov" name="Aliev_Panfilov_1996" 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="8.0" name="c1" private_interface="out" units="uApmmsq"/>
<variable initial_value="0.000155" name="b" private_interface="out" units="pms"/>
<variable initial_value="0.0155" name="d" private_interface="out" units="pms"/>
<variable initial_value="0.3" name="mu2" private_interface="out" units="dimensionless"/>
<variable name="Istim" private_interface="out" public_interface="in" units="uApmmsq"/>
<!-- Variables we want to make available externally -->
<variable 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 cmeta:id="Vm" 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="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>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="c1" public_interface="in" units="uApmmsq"/>
<variable name="b" public_interface="in" units="pms"/>
<variable name="d" public_interface="in" units="pms"/>
<variable name="u" public_interface="in" units="dimensionless"/>
<variable name="mu2" public_interface="in" units="dimensionless"/>
<variable name="Vr" public_interface="in" units="mV"/>
<variable name="Vp" public_interface="in" units="mV"/>
<variable name="Vth" public_interface="in" units="mV"/>
<variable name="Vm" public_interface="in" units="mV"/>
<!-- Outputs computed here -->
<variable initial_value="0.0" name="v" private_interface="out" public_interface="out" units="dimensionless"/>
<!-- Local variables -->
<units name="uApmmsqpmVsq">
<unit units="uApmmsq"/>
<unit exponent="-2" units="mV"/>
</units>
<variable name="eps" units="pms"/>
<variable name="vstar" units="mV"/>
<variable name="rate" units="uApmmsqpmVsq"/>
<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>eps</ci>
<apply>
<minus/>
<apply>
<minus/>
<ci>v</ci>
</apply>
<apply>
<times/>
<ci>rate</ci>
<ci>vstar</ci>
<apply>
<minus/>
<ci>Vm</ci>
<ci>Vr</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply id="eps_calculation">
<eq/>
<ci>eps</ci>
<apply>
<plus/>
<ci>b</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>d</ci>
<ci>v</ci>
</apply>
<apply>
<plus/>
<ci>u</ci>
<ci>mu2</ci>
</apply>
</apply>
</apply>
</apply>
<apply id="rate_calculation">
<eq/>
<ci>rate</ci>
<apply>
<divide/>
<ci>c1</ci>
<apply>
<power/>
<apply>
<minus/>
<ci>Vp</ci>
<ci>Vr</ci>
</apply>
<cn cellml:units="dimensionless">2</cn>
</apply>
</apply>
</apply>
<apply id="vstar_calculation">
<eq/>
<ci>vstar</ci>
<apply>
<minus/>
<apply>
<minus/>
<apply>
<plus/>
<ci>Vm</ci>
<ci>Vr</ci>
</apply>
<ci>Vp</ci>
</apply>
<ci>Vth</ci>
</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="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="c1" variable_2="c1"/>
<map_variables variable_1="b" variable_2="b"/>
<map_variables variable_1="d" variable_2="d"/>
<map_variables variable_1="v" variable_2="v"/>
<map_variables variable_1="mu2" variable_2="mu2"/>
<map_variables variable_1="Vr" variable_2="Vr"/>
<map_variables variable_1="Vp" variable_2="Vp"/>
<map_variables variable_1="Vth" variable_2="Vth"/>
</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"/>
<map_variables variable_1="Vm" variable_2="Vm"/>
</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="#1996_aliev_panfilov">
<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 Aliev and Panfilov in 1996. 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: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#">Aliev</vCard:Family>
<vCard:Given xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">R</vCard:Given>
<vCard:Other xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">R</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#">Panfilov</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#">V</vCard:Other>
</vCard:N>
</bqs:Person>
</rdf:li>
</rdf:Seq>
</dc:creator>
<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">
A Simple Two-variable Model of Cardiac Excitation
</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/">1996</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/">Chaos, Solitons & Fractals 
</dc:title>
</bqs:Journal>
<bqs:volume xmlns:bqs="http://www.cellml.org/bqs/1.0#">7</bqs:volume>
<bqs:first_page xmlns:bqs="http://www.cellml.org/bqs/1.0#">293</bqs:first_page>
<bqs:last_page xmlns:bqs="http://www.cellml.org/bqs/1.0#">301</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. One modification of Aliev and Panfilov is
in this equation, with the additional multiplication of the recovery 
variable with the normalised potential and removal of the scalar
multiplier.
</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. The kinetics
of the recovery variable have been reworked by Aliev and Panfilov to
provide more realistic restitution properties.
</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>