- Author:
- David Nickerson <nickerso@users.sourceforge.net>
- Date:
- 2009-07-16 02:00:03+12:00
- Desc:
- the starting point for the HH tutorial example
- Permanent Source URI:
- https://models.fieldml.org/workspace/a1/rawfile/f6a8f90307388eb4b040ee3566b84d88b59247f7/models/1996_aliev/model.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<model
name="Aliev_Panfilov_1996"
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#"
cmeta:id="1996_aliev_panfilov">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
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#">
<!-- metadata about the CellML document itself -->
<rdf:Description rdf:about="">
<dc:creator rdf:parseType="Resource">
<vCard:N rdf:parseType="Resource">
<vCard:Family>Nickerson</vCard:Family>
<vCard:Given>David</vCard:Given>
</vCard:N>
<vCard:EMAIL rdf:parseType="Resource">
<rdf:value>d.nickerson@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>
<dcterms:created rdf:parseType="Resource">
<dcterms:W3CDTF>2003-06-10</dcterms:W3CDTF>
</dcterms:created>
</rdf:Description>
<rdf:Description rdf:about="#1996_aliev_panfilov">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
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>
<bqs:JournalArticle rdf:parseType="Resource">
<dc:creator rdf:parseType="Resource">
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<bqs:Person rdf:parseType="Resource">
<vCard:N rdf:parseType="Resource">
<vCard:Family>Aliev</vCard:Family>
<vCard:Given>R</vCard:Given>
<vCard:Other>R</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>Panfilov</vCard:Family>
<vCard:Given>A</vCard:Given>
<vCard:Other>V</vCard:Other>
</vCard:N>
</bqs:Person>
</rdf:li>
</rdf:Seq>
</dc:creator>
<dc:title>
A Simple Two-variable Model of Cardiac Excitation
</dc:title>
<dcterms:issued rdf:parseType="Resource">
<dcterms:W3CDTF>1996</dcterms:W3CDTF>
</dcterms:issued>
<bqs:Journal rdf:parseType="Resource">
<dc:title>Chaos, Solitons & Fractals
</dc:title>
</bqs:Journal>
<bqs:volume>7</bqs:volume>
<bqs:first_page>293</bqs:first_page>
<bqs:last_page>301</bqs:last_page>
</bqs:JournalArticle>
</bqs:reference>
</rdf:Description>
</rdf:RDF>
<!--
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 units="volt" prefix="milli"/>
</units>
<units name="uApmmsq">
<unit units="ampere" prefix="micro"/>
<unit units="metre" prefix="milli" exponent="-2"/>
</units>
<units name="uFpmmsq">
<unit units="farad" prefix="micro"/>
<unit units="metre" prefix="milli" exponent="-2"/>
</units>
<units name="ms">
<unit units="second" prefix="milli"/>
</units>
<units name="pms">
<unit units="second" prefix="milli" exponent="-1"/>
</units>
<component name="interface" cmeta:id="interface">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#interface">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
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>
<!-- Variables we expect to be set/controlled externally -->
<variable name="t" units="ms" public_interface="in" private_interface="out"/>
<variable name="Cm" units="uFpmmsq" private_interface="out" initial_value="0.01"/>
<variable name="Vr" units="mV" private_interface="out" initial_value="-85.0"/>
<variable name="Vth" units="mV" private_interface="out" initial_value="-75.0"/>
<variable name="Vp" units="mV" private_interface="out" initial_value="15.0"/>
<variable name="c1" units="uApmmsq" private_interface="out" initial_value="8.0"/>
<variable name="b" units="pms" private_interface="out" initial_value="0.000155"/>
<variable name="d" units="pms" private_interface="out" initial_value="0.0155"/>
<variable name="mu2" units="dimensionless" private_interface="out" initial_value="0.3"/>
<variable name="Istim" units="uApmmsq" public_interface="in" private_interface="out"/>
<!-- Variables we want to make available externally -->
<variable name="Vm" units="mV" public_interface="out" private_interface="in"/>
<variable name="v" units="dimensionless" public_interface="out" private_interface="in"/>
<variable name="Iion" units="uApmmsq" public_interface="out" private_interface="in"/>
</component> <!--interface-->
<component name="membrane_potential" cmeta:id="membrane_potential">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#membrane_potential">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
The component which defines the kinetics of the transmembrane potential.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<!-- Inputs -->
<variable name="t" units="ms" public_interface="in"/>
<variable name="Cm" units="uFpmmsq" public_interface="in"/>
<variable name="Vr" units="mV" public_interface="in"/>
<variable name="Vth" units="mV" public_interface="in"/>
<variable name="Vp" units="mV" public_interface="in"/>
<variable name="Istim" units="uApmmsq" public_interface="in"/>
<variable name="Iion" units="uApmmsq" public_interface="in"/>
<!-- Outputs computed here -->
<variable name="Vm" cmeta:id="Vm" units="mV" public_interface="out" private_interface="out" initial_value="-85"/>
<variable name="u" units="dimensionless" public_interface="out"/>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#Vm_diff_calculation_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
This equation describes the kinetics of the transmembrane,
potential - the action potential.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="Vm_diff_calculation_eq">
<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>
</math>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#u_calculation_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
The non-dimensional and scaled potential value.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="u_calculation_eq">
<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 name="ionic_current" cmeta:id="ionic_current">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#ionic_current">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
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>
<!-- Inputs -->
<variable name="Vr" units="mV" public_interface="in"/>
<variable name="Vth" units="mV" public_interface="in"/>
<variable name="Vp" units="mV" public_interface="in"/>
<variable name="c1" units="uApmmsq" public_interface="in"/>
<variable name="v" units="dimensionless" public_interface="in"/>
<variable name="u" units="dimensionless" public_interface="in"/>
<!-- Outputs computed here -->
<variable name="Iion" units="uApmmsq" public_interface="out" private_interface="out"/>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#Iion_calculation_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
The calcuation of the total ionic current.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="Iion_calculation_eq">
<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 name="recovery_variable" cmeta:id="recovery_variable">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#recovery_variable">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
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>
<!-- Inputs -->
<variable name="t" units="ms" public_interface="in"/>
<variable name="c1" units="uApmmsq" public_interface="in"/>
<variable name="b" units="pms" public_interface="in"/>
<variable name="d" units="pms" public_interface="in"/>
<variable name="u" units="dimensionless" public_interface="in"/>
<variable name="mu2" units="dimensionless" public_interface="in"/>
<variable name="Vr" units="mV" public_interface="in"/>
<variable name="Vp" units="mV" public_interface="in"/>
<variable name="Vth" units="mV" public_interface="in"/>
<variable name="Vm" units="mV" public_interface="in"/>
<!-- Outputs computed here -->
<variable name="v" units="dimensionless" public_interface="out" private_interface="out" initial_value="0.0"/>
<!-- Local variables -->
<units name="uApmmsqpmVsq">
<unit units="uApmmsq"/>
<unit units="mV" exponent="-2"/>
</units>
<variable name="eps" units="pms"/>
<variable name="vstar" units="mV"/>
<variable name="rate" units="uApmmsqpmVsq"/>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cmeta="http://www.cellml.org/metadata/1.0#">
<rdf:Description rdf:about="#v_diff_eq">
<cmeta:comment rdf:parseType="Resource">
<rdf:value>
The kinetics of the recovery variable.
</rdf:value>
</cmeta:comment>
</rdf:Description>
</rdf:RDF>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="v_diff_eq">
<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>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="eps_calculation_eq">
<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>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="rate_calculation_eq">
<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.0</cn>
</apply>
</apply>
</apply>
</math>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="vstar_calculation_eq">
<apply id="vstar_calculation"><eq/>
<ci>vstar</ci>
<apply><plus/>
<ci>Vm</ci>
<apply><minus/>
<apply><minus/>
<ci>Vr</ci>
<ci>Vp</ci>
</apply>
<ci>Vth</ci>
</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="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>
</model>