Location: Hodgkin & Huxley (1952) model @ c56e1d025518 / components / propagated_AP.cellml

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2021-04-28 18:15:33+12:00
Desc:
Change the unit of T from celsius to kelvin to in line with CellML2.0 spec (but the real temperature unit is still celsius, no need to do conversion when setting the temperature parameter for simulation)
Permanent Source URI:
https://models.fieldml.org/workspace/64f/rawfile/c56e1d0255183a1d725eec025cbe79eeee2c8087/components/propagated_AP.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="propagated_AP" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- propagated action potential along 1D cable-->
    <import xlink:href="units.cellml">
        <units name="mV" units_ref="mV"/>
        <units name="ms" units_ref="ms"/>
        <units name="per_ms" units_ref="per_ms"/>
        <units name="mV_per_ms" units_ref="mV_per_ms"/>
        <units name="uA_per_cmsq" units_ref="uA_per_cmsq"/>
        <units name="mS_per_cmsq" units_ref="mS_per_cmsq"/>
        <units name="uF_per_cmsq" units_ref="uF_per_cmsq"/>
    </import>
    <import xlink:href="INa.cellml">
        <component component_ref="INa" name="INa"/>
    </import>
    <import xlink:href="IK.cellml">
        <component component_ref="IK" name="IK"/>
    </import>
    <import xlink:href="Ileak.cellml">
        <component component_ref="Ileak" name="Ileak"/>
    </import>
    <component name="propagated_AP">
        <variable name="V_initial" private_interface="out" public_interface="in" units="mV"/>
        <variable name="n_initial" private_interface="out" public_interface="in" units="dimensionless"/>
        <variable name="m_initial" private_interface="out" public_interface="in" units="dimensionless"/>
        <variable name="h_initial" private_interface="out" public_interface="in" units="dimensionless"/>
        <variable initial_value="V_initial" name="V" private_interface="out" public_interface="out" units="mV"/>
        <variable name="INa" private_interface="in" public_interface="out" units="uA_per_cmsq"/>
        <variable name="IK" private_interface="in" public_interface="out" units="uA_per_cmsq"/>
        <variable name="Ileak" private_interface="in" public_interface="out" units="uA_per_cmsq"/>
        <variable name="Ii" public_interface="out" units="uA_per_cmsq"/>
        <variable name="Im" public_interface="out" units="uA_per_cmsq"/>
        <variable name="I" public_interface="out" units="uA_per_cmsq"/>
        <variable name="gK" private_interface="in" public_interface="out" units="mS_per_cmsq"/>
        <variable name="gNa" private_interface="in" public_interface="out" units="mS_per_cmsq"/>
        <variable name="g" public_interface="out" units="mS_per_cmsq"/>
        <variable name="h" private_interface="in" public_interface="out" units="dimensionless"/>
        <variable name="m" private_interface="in" public_interface="out" units="dimensionless"/>
        <variable name="n" private_interface="in" public_interface="out" units="dimensionless"/>
        <variable name="T" private_interface="out" public_interface="in" units="kelvin" />
        <variable name="VNa" private_interface="out" public_interface="in" units="mV"/>
        <variable name="VK" private_interface="out" public_interface="in" units="mV"/>
        <variable name="Vleak" private_interface="out" public_interface="in" units="mV"/>
        <variable name="minus_V" public_interface="out" units="mV"/>
        <variable name="gNa_max" private_interface="out" public_interface="in" units="mS_per_cmsq"/>
        <variable name="gK_max" private_interface="out" public_interface="in" units="mS_per_cmsq"/>
        <variable name="gleak_max" private_interface="out" public_interface="in" units="mS_per_cmsq"/>
        <variable name="Cm" private_interface="out" public_interface="in" units="uF_per_cmsq"/>
        <variable name="K" public_interface="in" units="per_ms"/>
        <variable name="time" private_interface="out" public_interface="in" units="ms"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>Ii</ci>
                <apply>
                    <plus/>
                    <ci>INa</ci>
                    <ci>IK</ci>
                    <ci>Ileak</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                        <degree>
                            <cn cellml:units="dimensionless">2</cn>
                        </degree>
                    </bvar>
                    <ci>V</ci>
                </apply>
                <apply>
                    <times/>
                    <ci>K</ci>
                    <apply>
                        <plus/>
                        <apply>
                            <diff/>
                            <bvar>
                                <ci>time</ci>
                            </bvar>
                            <ci>V</ci>
                        </apply>
                        <apply>
                            <times/>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>Cm</ci>
                            </apply>
                            <ci>Ii</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>Im</ci>
                <apply>
                    <times/>
                    <apply>
                        <minus/>
                        <ci>Cm</ci>
                    </apply>
                    <apply>
                        <diff/>
                        <bvar>
                            <ci>time</ci>
                        </bvar>
                        <ci>V</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>I</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <ci>Cm</ci>
                        <ci>K</ci>
                    </apply>
                    <apply>
                        <diff/>
                        <bvar>
                            <ci>time</ci>
                            <degree>
                                <cn cellml:units="dimensionless">2</cn>
                            </degree>
                        </bvar>
                        <ci>V</ci>
                    </apply>
                </apply>
            </apply>
            <apply id="minus_V_calculation">
                <eq/>
                <ci>minus_V</ci>
                <apply>
                    <minus/>
                    <ci>V</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>g</ci>
                <apply>
                    <plus/>
                    <ci>gK</ci>
                    <ci>gNa</ci>
                    <ci>gleak_max</ci>
                </apply>
            </apply>
        </math>
    </component>
    <group>
        <relationship_ref relationship="encapsulation"/>
        <component_ref component="propagated_AP">
            <component_ref component="INa"/>
            <component_ref component="IK"/>
            <component_ref component="Ileak"/>
        </component_ref>
    </group>
    <connection>
        <map_components component_1="propagated_AP" component_2="INa"/>
        <map_variables variable_1="INa" variable_2="INa"/>
        <map_variables variable_1="h" variable_2="h"/>
        <map_variables variable_1="m" variable_2="m"/>
        <map_variables variable_1="m_initial" variable_2="m_initial"/>
        <map_variables variable_1="h_initial" variable_2="h_initial"/>
        <map_variables variable_1="time" variable_2="time"/>
        <map_variables variable_1="V" variable_2="V"/>
        <map_variables variable_1="T" variable_2="T"/>
        <map_variables variable_1="VNa" variable_2="VNa"/>
        <map_variables variable_1="gNa_max" variable_2="gNa_max"/>
        <map_variables variable_1="gNa" variable_2="gNa"/>
    </connection>
    <connection>
        <map_components component_1="propagated_AP" component_2="IK"/>
        <map_variables variable_1="IK" variable_2="IK"/>
        <map_variables variable_1="n" variable_2="n"/>
        <map_variables variable_1="n_initial" variable_2="n_initial"/>
        <map_variables variable_1="time" variable_2="time"/>
        <map_variables variable_1="V" variable_2="V"/>
        <map_variables variable_1="T" variable_2="T"/>
        <map_variables variable_1="VK" variable_2="VK"/>
        <map_variables variable_1="gK_max" variable_2="gK_max"/>
        <map_variables variable_1="gK" variable_2="gK"/>
    </connection>
    <connection>
        <map_components component_1="propagated_AP" component_2="Ileak"/>
        <map_variables variable_1="Ileak" variable_2="Ileak"/>
        <map_variables variable_1="V" variable_2="V"/>
        <map_variables variable_1="Vleak" variable_2="Vleak"/>
        <map_variables variable_1="gleak_max" variable_2="gleak_max"/>
    </connection>
</model>