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

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2022-03-31 10:48:40+13:00
Desc:
Add open channel IV of HH models; Add simulation and plot python scripts
Permanent Source URI:
https://models.fieldml.org/workspace/64f/rawfile/ab2962b8796666ad9938a2577611c954f006b5fd/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="../cellLib/Components/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="T0K" private_interface="out" public_interface="in" units="kelvin"/>
        <variable name="Q10K" private_interface="out" public_interface="in" units="dimensionless"/>
        <variable name="T0Na" private_interface="out" public_interface="in" units="kelvin"/>
        <variable name="Q10Na" private_interface="out" public_interface="in" units="dimensionless"/>
        <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"/>
        <map_variables variable_1="T0Na" variable_2="T0Na"/>
        <map_variables variable_1="Q10Na" variable_2="Q10Na"/>
    </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"/>
        <map_variables variable_1="T0K" variable_2="T0K"/>
        <map_variables variable_1="Q10K" variable_2="Q10K"/>
    </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>