Location: BG_BK @ c6743a418d2f / BG_BK.cellml

Author:
Shelley Fong <sfon036@UoA.auckland.ac.nz>
Date:
2025-07-24 14:40:41+12:00
Desc:
Starting to add gate, in kinetic HH form
Permanent Source URI:
https://staging.physiomeproject.org/workspace/d47/rawfile/c6743a418d2f277439df9e326b2dff08b3209d9d/BG_BK.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="individual_BK" 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">
    <import xlink:href="units_and_constants/units.cellml">
        <units name="mM" units_ref="mM"/>
        <units name="fmol" units_ref="fmol"/>
        <units name="per_fmol" units_ref="per_fmol"/>
        <units name="J_per_mol" units_ref="J_per_mol"/>
        <units name="fmol_per_sec" units_ref="fmol_per_s"/>
        <units name="C_per_mol" units_ref="C_per_mol"/>
        <units name="J_per_C" units_ref="J_per_C"/>
        <units name="microm3" units_ref="microm3"/>
        <units name="fF" units_ref="fF"/>
        <units name="fC" units_ref="fC"/>
        <units name="fA" units_ref="fA"/>
        <units name="per_second" units_ref="per_second"/>
        <units name="millivolt" units_ref="millivolt"/>
        <units name="per_sec" units_ref="per_sec"/>
        <units name="J_per_K_per_mol" units_ref="J_per_K_mol"/>
        <units name="fmol_per_L" units_ref="fmol_per_L"/>
        <units name="fmol_per_L_per_sec" units_ref="fmol_per_L_per_sec"/>
        <units name="per_sec_per_fmol_per_L" units_ref="per_sec_per_fmol_per_L"/>
        <units name="uM" units_ref="uM"/>
        <units name="mM_per_sec" units_ref="mM_per_sec"/>
        <units name="uM_per_sec" units_ref="uM_per_sec"/>
        <units name="pL" units_ref="pL"/>
        <units name="m_to_u" units_ref="m_to_u"/>
    </import>
    <import xlink:href="units_and_constants/constants.cellml">
        <component component_ref="constants" name="constants"/>
    </import>
    <component name="environment">
        <variable name="time" public_interface="out" units="second"/>
        <variable initial_value="-381" name="q_mem" public_interface="out" units="fC"/>
        <variable initial_value="7070" name="C_m" public_interface="out" units="fF"/>
        <!-- initial values-->
        <variable initial_value="98" name="q_K_i" public_interface="out" units="fmol"/>
        <variable initial_value="0.753197674" name="q_K_o" public_interface="out" units="fmol"/>
        <!-- From submodule-->
        <variable name="v_rBKa" public_interface="in" units="fmol_per_sec"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_K_i</ci>
                </apply>
                <apply>
                    <minus/>
                    <ci>v_rBKa</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q_K_o</ci>
                </apply>
                <ci>v_rBKa</ci>
            </apply>
        </math>
    </component>
    <component name="BK_parameters">
        <variable initial_value="0.161965" name="kappa_rBKa" public_interface="out" units="fmol_per_sec"/>
        <variable initial_value="0.574926" name="K_K_i" public_interface="out" units="per_fmol"/>
        <variable initial_value="2.6716" name="K_K_o" public_interface="out" units="per_fmol"/>
    </component>
    <component name="BK">
        <variable name="time" public_interface="in" units="second"/>
        <variable name="R" public_interface="in" units="J_per_K_per_mol"/>
        <variable name="T" public_interface="in" units="kelvin"/>
        <variable name="F" private_interface="out" public_interface="in" units="C_per_mol"/>
        <variable name="V_mem" units="J_per_C"/>
        <variable name="C_m" public_interface="in" units="fF"/>
        <!-- parameters-->
        <variable name="kappa_rBKa" public_interface="in" units="fmol_per_sec"/>
        <variable name="K_K_i" public_interface="in" units="per_fmol"/>
        <variable name="K_K_o" public_interface="in" units="per_fmol"/>
        <!-- Input from global environment-->
        <variable name="q_K_i" public_interface="in" units="fmol"/>
        <variable name="q_K_o" public_interface="in" units="fmol"/>
        <variable name="q_mem" public_interface="in" units="fC"/>
        <!-- Constitutive parameters-->
        <variable name="mu_K_i" units="J_per_mol"/>
        <variable name="mu_K_o" units="J_per_mol"/>
        <variable name="v_rBKa" public_interface="out" units="fmol_per_sec"/>
        <variable name="Am_rBKa" units="J_per_mol"/>
        <variable name="Af_rBKa" units="J_per_mol"/>
        <variable name="Ar_rBKa" units="J_per_mol"/>
        <variable initial_value="1" name="zK" units="dimensionless"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>V_mem</ci>
                <apply>
                    <divide/>
                    <ci>q_mem</ci>
                    <ci>C_m</ci>
                </apply>
            </apply>
            <!-- Constitutive relations - Convention: positive flow from inside to outside-->
            <apply>
                <eq/>
                <ci>Am_rBKa</ci>
                <apply>
                    <times/>
                    <ci>zK</ci>
                    <ci>F</ci>
                    <ci>V_mem</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>mu_K_i</ci>
                <apply>
                    <times/>
                    <ci>R</ci>
                    <ci>T</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <times/>
                            <ci>K_K_i</ci>
                            <ci>q_K_i</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>mu_K_o</ci>
                <apply>
                    <times/>
                    <ci>R</ci>
                    <ci>T</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <times/>
                            <ci>K_K_o</ci>
                            <ci>q_K_o</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>Af_rBKa</ci>
                <apply>
                    <plus/>
                    <ci>mu_K_i</ci>
                    <ci>Am_rBKa</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>Ar_rBKa</ci>
                <ci>mu_K_o</ci>
            </apply>
            <!-- v_rBKa = kappa_rBKa*exp((mu_K_i-mu_K_o)/(R*T));-->
            <apply>
                <eq/>
                <ci>v_rBKa</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <times/>
                            <ci>P_a</ci>
                            <ci>F_a</ci>
                            <ci>kappa_rBKa</ci>
                            <apply>
                                <minus/>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Af_rBKa</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Ar_rBKa</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>Am_rBKa</ci>
                            <cn cellml:units="J_per_mol">0</cn>
                        </apply>
                    </piece>
                    <otherwise>
                        <apply>
                            <times/>
                            <apply>
                                <divide/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <times/>
                                        <ci>P_a</ci>
                                        <ci>F_a</ci>
                                        <ci>kappa_rBKa</ci>
                                        <ci>Am_rBKa</ci>
                                    </apply>
                                    <apply>
                                        <times/>
                                        <ci>R</ci>
                                        <ci>T</ci>
                                    </apply>
                                </apply>
                                <apply>
                                    <minus/>
                                    <apply>
                                        <exp/>
                                        <apply>
                                            <divide/>
                                            <ci>Am_rBKa</ci>
                                            <apply>
                                                <times/>
                                                <ci>R</ci>
                                                <ci>T</ci>
                                            </apply>
                                        </apply>
                                    </apply>
                                    <cn cellml:units="dimensionless">1</cn>
                                </apply>
                            </apply>
                            <apply>
                                <minus/>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Af_rBKa</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Ar_rBKa</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                    </otherwise>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <ci>v_rBKab</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <times/>
                            <ci>P_ab</ci>
                            <ci>F_ab</ci>
                            <ci>kappa_rBKab</ci>
                            <apply>
                                <minus/>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Af_rBKab</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Ar_rBKab</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <eq/>
                            <ci>Am_rBKab</ci>
                            <cn cellml:units="J_per_mol">0</cn>
                        </apply>
                    </piece>
                    <otherwise>
                        <apply>
                            <times/>
                            <apply>
                                <divide/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <times/>
                                        <ci>P_ab</ci>
                                        <ci>F_ab</ci>
                                        <ci>kappa_rBKab</ci>
                                        <ci>Am_rBKab</ci>
                                    </apply>
                                    <apply>
                                        <times/>
                                        <ci>R</ci>
                                        <ci>T</ci>
                                    </apply>
                                </apply>
                                <apply>
                                    <minus/>
                                    <apply>
                                        <exp/>
                                        <apply>
                                            <divide/>
                                            <ci>Am_rBKab</ci>
                                            <apply>
                                                <times/>
                                                <ci>R</ci>
                                                <ci>T</ci>
                                            </apply>
                                        </apply>
                                    </apply>
                                    <cn cellml:units="dimensionless">1</cn>
                                </apply>
                            </apply>
                            <apply>
                                <minus/>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Af_rBKab</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <ci>Ar_rBKab</ci>
                                        <apply>
                                            <times/>
                                            <ci>R</ci>
                                            <ci>T</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                    </otherwise>
                </piecewise>
            </apply>
        </math>
    </component>
    <component name="BK_gating">
        <variable name="xass_z" units="dimensionless"/>
        <variable name="xass_vh" units="mV"/>
        <variable initial_value="1000.0" name="conversion" units="mM_to_M"/>
        <variable name="P_a" units="dimensionless"/>
        <variable name="iBKa" public_interface="out" units="pA_per_pF"/>
        <variable name="xabss_z" units="dimensionless"/>
        <variable name="xabss_vh" units="mV"/>
        <variable name="P_ab" units="dimensionless"/>
        <variable name="iBKab" public_interface="out" units="pA_per_pF"/>
        <variable name="V_mem" public_interface="in" units="mV"/>
        <variable name="cK_o" public_interface="in" units="mM"/>
        <variable name="cK_i" public_interface="in" units="mM"/>
        <variable name="cCa_i" public_interface="in" units="mM"/>
        <variable name="E_K" units="J_per_C"/>
        <variable name="gBK" public_interface="in" units="nS_per_pF"/>
        <variable name="F_a" public_interface="in" units="dimensionless"/>
        <variable name="F_ab" public_interface="in" units="dimensionless"/>
        <variable name="R" public_interface="in" units="J_per_K_per_mol"/>
        <variable name="F" public_interface="in" units="C_per_mol"/>
        <variable name="T" public_interface="in" units="kelvin"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>E_K</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <apply>
                            <times/>
                            <ci>R</ci>
                            <ci>T</ci>
                        </apply>
                        <ci>F</ci>
                    </apply>
                    <apply>
                        <ln/>
                        <apply>
                            <divide/>
                            <ci>cK_o</ci>
                            <ci>cK_i</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!-- alpha a gate-->
            <apply>
                <eq/>
                <ci>xass_z</ci>
                <apply>
                    <plus/>
                    <apply>
                        <divide/>
                        <apply>
                            <minus/>
                            <cn cellml:units="dimensionless">0.749234</cn>
                        </apply>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <minus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">0.0630535</cn>
                                    </apply>
                                    <cn cellml:units="mole">0.161942</cn>
                                </apply>
                                <cn cellml:units="dimensionless">2</cn>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <divide/>
                        <cn cellml:units="dimensionless">8.38384</cn>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <plus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">1538.29</cn>
                                    </apply>
                                    <cn cellml:units="mole">739.057</cn>
                                </apply>
                                <cn cellml:units="dimensionless">2</cn>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>xass_vh</ci>
                <apply>
                    <minus/>
                    <apply>
                        <divide/>
                        <cn cellml:units="mV">5011.47</cn>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <plus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">0.237503</cn>
                                    </apply>
                                    <cn cellml:units="mole">0.000239278</cn>
                                </apply>
                                <cn cellml:units="dimensionless">0.42291</cn>
                            </apply>
                        </apply>
                    </apply>
                    <cn cellml:units="mV">37.5137</cn>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>P_a</ci>
                <apply>
                    <divide/>
                    <cn cellml:units="dimensionless">1.0</cn>
                    <apply>
                        <plus/>
                        <cn cellml:units="dimensionless">1.0</cn>
                        <apply>
                            <exp/>
                            <apply>
                                <divide/>
                                <apply>
                                    <times/>
                                    <apply>
                                        <minus/>
                                        <ci>xass_z</ci>
                                    </apply>
                                    <ci>F</ci>
                                    <apply>
                                        <minus/>
                                        <ci>V_mem</ci>
                                        <ci>xass_vh</ci>
                                    </apply>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>R</ci>
                                    <ci>T</ci>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!-- prob don't need current-->
            <apply>
                <eq/>
                <ci>iBKa</ci>
                <apply>
                    <times/>
                    <ci>conversion</ci>
                    <ci>gBK</ci>
                    <ci>F_a</ci>
                    <ci>P_a</ci>
                    <apply>
                        <minus/>
                        <ci>V_mem</ci>
                        <ci>E_K</ci>
                    </apply>
                </apply>
            </apply>
            <!-- alphabeta ab gate-->
            <apply>
                <eq/>
                <ci>xabss_z</ci>
                <apply>
                    <plus/>
                    <apply>
                        <divide/>
                        <apply>
                            <minus/>
                            <cn cellml:units="dimensionless">0.681249</cn>
                        </apply>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <minus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">0.218988</cn>
                                    </apply>
                                    <cn cellml:units="mole">0.428335</cn>
                                </apply>
                                <cn cellml:units="dimensionless">2</cn>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <divide/>
                        <cn cellml:units="dimensionless">1.40001</cn>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <plus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">228.71</cn>
                                    </apply>
                                    <cn cellml:units="mole">684.946</cn>
                                </apply>
                                <cn cellml:units="dimensionless">2</cn>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>xabss_vh</ci>
                <apply>
                    <minus/>
                    <apply>
                        <divide/>
                        <cn cellml:units="mV">8540.23</cn>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1.0</cn>
                            <apply>
                                <power/>
                                <apply>
                                    <divide/>
                                    <apply>
                                        <plus/>
                                        <apply>
                                            <times/>
                                            <ci>cCa_i</ci>
                                            <ci>conversion</ci>
                                        </apply>
                                        <cn cellml:units="mole">0.401189</cn>
                                    </apply>
                                    <cn cellml:units="mole">0.00399115</cn>
                                </apply>
                                <cn cellml:units="dimensionless">0.668054</cn>
                            </apply>
                        </apply>
                    </apply>
                    <cn cellml:units="mV">109.275</cn>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>P_ab</ci>
                <apply>
                    <divide/>
                    <cn cellml:units="dimensionless">1.0</cn>
                    <apply>
                        <plus/>
                        <cn cellml:units="dimensionless">1.0</cn>
                        <apply>
                            <exp/>
                            <apply>
                                <divide/>
                                <apply>
                                    <times/>
                                    <apply>
                                        <minus/>
                                        <ci>xabss_z</ci>
                                    </apply>
                                    <ci>F</ci>
                                    <apply>
                                        <minus/>
                                        <ci>V_mem</ci>
                                        <ci>xabss_vh</ci>
                                    </apply>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>R</ci>
                                    <ci>T</ci>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>iBKab</ci>
                <apply>
                    <times/>
                    <ci>conversion</ci>
                    <ci>gBK</ci>
                    <ci>F_ab</ci>
                    <ci>P_ab</ci>
                    <apply>
                        <minus/>
                        <ci>V_mem</ci>
                        <ci>E_K</ci>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <!--    def comp BKalphabeta_gating as
        var xabss_z: dimensionless;
        var xabss_vh: mV;
        var conversion: mM_to_M {init: 1000.0};
        var P_ab: dimensionless;
        var iBKab: pA_per_pF {pub: out};
        var V_mem: mV {pub: in};
        var cCa_i: mM {pub: in};
        var E_K: mV {pub: in};
        var gBK: nS_per_pF {pub: in};
        var F_ab: dimensionless {pub: in};
        var R: J_per_K_per_mol {pub: in};
        var F: C_per_mol {pub: in};
        var T: kelvin {pub: in};-->
    <!--        xabss_z  = -0.681249{dimensionless}/(1.0{dimensionless}+sqr((cCa_i*conversion-0.218988{mole})/0.428335{mole}))+1.40001{dimensionless}/(1.0{dimensionless}+sqr((cCa_i*conversion+228.71{mole})/684.946{mole}));
        xabss_vh = 8540.23{mV}/(1.0{dimensionless}+pow((cCa_i*conversion+0.401189{mole})/0.00399115{mole}, 0.668054{dimensionless}))-109.275{mV};
        P_ab    = 1.0{dimensionless}/(1.0{dimensionless}+exp(-xabss_z*F*(V_mem-xabss_vh)/(R*T)));
        iBKab    = gBK*F_ab*P_ab*(V_mem-E_K);
    enddef;-->
    <connection>
        <map_components component_1="environment" component_2="BK"/>
        <map_variables variable_1="time" variable_2="time"/>
        <map_variables variable_1="q_mem" variable_2="q_mem"/>
        <map_variables variable_1="C_m" variable_2="C_m"/>
        <map_variables variable_1="q_K_i" variable_2="q_K_i"/>
        <map_variables variable_1="q_K_o" variable_2="q_K_o"/>
        <map_variables variable_1="v_rBKa" variable_2="v_rBKa"/>
    </connection>
    <connection>
        <map_components component_1="BK" component_2="BK_parameters"/>
        <map_variables variable_1="kappa_rBKa" variable_2="kappa_rBKa"/>
        <map_variables variable_1="K_K_i" variable_2="K_K_i"/>
        <map_variables variable_1="K_K_o" variable_2="K_K_o"/>
    </connection>
    <connection>
        <map_components component_1="constants" component_2="BK"/>
        <map_variables variable_1="R" variable_2="R"/>
        <map_variables variable_1="T" variable_2="T"/>
        <map_variables variable_1="F" variable_2="F"/>
    </connection>
</model>