Location: BG_BK @ ecf98d156c7f / BG_BK.cellml
- Author:
- Shelley Fong <sfon036@UoA.auckland.ac.nz>
- Date:
- 2025-07-28 11:02:03+12:00
- Desc:
- Updating wqith Tong conductances and new BG params
- Permanent Source URI:
- https://staging.physiomeproject.org/workspace/d47/rawfile/ecf98d156c7f7ecf8293cce4ae50b3fc163fb80a/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="127.7732067" name="q_K_o" public_interface="out" units="fmol"/>
<variable initial_value="1.64E-02" name="q_Ca_i" public_interface="out" units="fmol"/>
<!-- From submodule-->
<variable name="v_rBKa" public_interface="in" units="fmol_per_sec"/>
<variable name="v_rBKab" 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/>
<apply>
<minus/>
<ci>v_rBKa</ci>
</apply>
<ci>v_rBKab</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>q_K_o</ci>
</apply>
<apply>
<plus/>
<ci>v_rBKa</ci>
<ci>v_rBKab</ci>
</apply>
</apply>
</math>
<variable name="cCa_i" units="mM"/>
<variable initial_value="1.41E+02" name="vol_i" units="pL"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>cCa_i</ci>
<apply>
<divide/>
<ci>q_Ca_i</ci>
<ci>vol_i</ci>
</apply>
</apply>
</math>
</component>
<component name="BK_parameters">
<variable initial_value="0.100312" name="kappa_rBK" public_interface="out" units="fmol_per_sec"/>
<variable initial_value="0.00224625" name="K_K_i" public_interface="out" units="per_fmol"/>
<variable initial_value="0.0149114" name="K_K_o" public_interface="out" units="per_fmol"/>
<variable initial_value="0.8" name="gBK" units="nS_per_pF"/>
</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" public_interface="in" units="C_per_mol"/>
<variable name="V_mem" public_interface="out" 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="v_rBKab" public_interface="out" units="fmol_per_sec"/>
<variable name="Am_rBK" units="J_per_mol"/>
<variable name="Af_rBK" units="J_per_mol"/>
<variable name="Ar_rBK" units="J_per_mol"/>
<variable initial_value="1" name="zK" units="dimensionless"/>
<variable name="P_a" public_interface="in" units="dimensionless"/>
<variable name="P_ab" public_interface="in" units="dimensionless"/>
<variable initial_value="0.2" name="F_a" units="dimensionless"/>
<variable initial_value="0.1" name="F_ab" 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_rBK</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_rBK</ci>
<apply>
<plus/>
<ci>mu_K_i</ci>
<ci>Am_rBK</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>Ar_rBK</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_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<exp/>
<apply>
<divide/>
<ci>Ar_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>Am_rBK</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_rBK</ci>
</apply>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
<apply>
<minus/>
<apply>
<exp/>
<apply>
<divide/>
<ci>Am_rBK</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_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<exp/>
<apply>
<divide/>
<ci>Ar_rBK</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_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<exp/>
<apply>
<divide/>
<ci>Ar_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>Am_rBK</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_rBK</ci>
</apply>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
<apply>
<minus/>
<apply>
<exp/>
<apply>
<divide/>
<ci>Am_rBK</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_rBK</ci>
<apply>
<times/>
<ci>R</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<exp/>
<apply>
<divide/>
<ci>Ar_rBK</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="J_per_C"/>
<variable initial_value="1000.0" name="thousand" units="mM_to_M"/>
<variable name="P_a" public_interface="out" units="dimensionless"/>
<variable name="iBKa" public_interface="out" units="pA_per_pF"/>
<variable name="xabss_z" units="dimensionless"/>
<variable name="xabss_vh" units="J_per_C"/>
<variable name="P_ab" public_interface="out" units="dimensionless"/>
<variable name="iBKab" public_interface="out" units="pA_per_pF"/>
<variable name="V_mem" public_interface="in" units="J_per_C"/>
<variable name="cCa_i" public_interface="in" units="mM"/>
<variable name="gBK" public_interface="in" units="nS_per_pF"/>
<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"/>
<!-- var E_K: J_per_C;
var cK_o: mM {pub: in};
var cK_i: mM {pub: in};
E_K = R*T/F*ln(cK_o/cK_i);-->
<!-- alpha a gate-->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<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>thousand</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>thousand</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="J_per_C">5.01147</cn>
<apply>
<plus/>
<cn cellml:units="dimensionless">1.0</cn>
<apply>
<power/>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>cCa_i</ci>
<ci>thousand</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="J_per_C">0.0375137</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>
<ci>thousand</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-->
<!-- iBKa = thousand*gBK*F_a*P_a*(V_mem-E_K);
iBKab = thousand*gBK*F_ab*P_ab*(V_mem-E_K);-->
<!-- 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>thousand</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>thousand</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="J_per_C">8.54023</cn>
<apply>
<plus/>
<cn cellml:units="dimensionless">1.0</cn>
<apply>
<power/>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>cCa_i</ci>
<ci>thousand</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="J_per_C">0.109275</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>
</math>
</component>
<!-- def comp BKalphabeta_gating as
var xabss_z: dimensionless;
var xabss_vh: mV;
var thousand: 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*thousand-0.218988{mole})/0.428335{mole}))+1.40001{dimensionless}/(1.0{dimensionless}+sqr((cCa_i*thousand+228.71{mole})/684.946{mole}));
xabss_vh = 8540.23{mV}/(1.0{dimensionless}+pow((cCa_i*thousand+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"/>
<map_variables variable_1="v_rBKab" variable_2="v_rBKab"/>
</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>
<connection>
<map_components component_1="BK_gating" component_2="environment"/>
<map_variables variable_1="cCa_i" variable_2="cCa_i"/>
</connection>
<connection>
<map_components component_1="BK_gating" component_2="BK"/>
<map_variables variable_1="V_mem" variable_2="V_mem"/>
<map_variables variable_1="P_a" variable_2="P_a"/>
<map_variables variable_1="P_ab" variable_2="P_ab"/>
</connection>
<connection>
<map_components component_1="constants" component_2="BK_gating"/>
<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>
<connection>
<map_components component_1="BK_gating" component_2="BK_parameters"/>
<map_variables variable_1="gBK" variable_2="gBK"/>
</connection>
</model>
