def model individual_NCX as def import using "units_and_constants/units_BG.cellml" for unit mM using unit mM; unit fmol using unit fmol; unit per_fmol using unit per_fmol; unit J_per_mol using unit J_per_mol; unit fmol_per_sec using unit fmol_per_sec; unit C_per_mol using unit C_per_mol; unit J_per_C using unit J_per_C; unit microm3 using unit microm3; unit fF using unit fF; unit fC using unit fC; unit fA using unit fA; unit per_second using unit per_second; unit millivolt using unit millivolt; unit per_sec using unit per_sec; unit J_per_K_per_mol using unit J_per_K_per_mol; unit fmol_per_L using unit fmol_per_L; unit fmol_per_L_per_sec using unit fmol_per_L_per_sec; unit per_sec_per_fmol_per_L using unit per_sec_per_fmol_per_L; unit uM using unit uM; unit mM_per_sec using unit mM_per_sec; unit uM_per_sec using unit uM_per_sec; unit pL using unit pL; unit m_to_u using unit m_to_u; enddef; def import using "units_and_constants/constants_BG.cellml" for comp constants using comp constants; enddef; def comp environment as var time: second {pub: out}; // initial values var q_1_NCX: fmol {init: 1e-888, pub: out}; var q_2_NCX: fmol {init: 1e-888, pub: out}; var q_3_NCX: fmol {init: 1e-888, pub: out}; var q_4_NCX: fmol {init: 1e-888, pub: out}; var q_5_NCX: fmol {init: 1e-888, pub: out}; var q_6_NCX: fmol {init: 1e-888, pub: out}; var q_Na_i: fmol {init: 1e-888, pub: out}; var q_Ca_i: fmol {init: 1e-888, pub: out}; var q_Na_o: fmol {init: 1e-888, pub: out}; var q_Ca_o: fmol {init: 1e-888, pub: out}; // From submodule var v_1_NCX: fmol_per_sec {pub: in}; var v_2_NCX: fmol_per_sec {pub: in}; var v_3_NCX: fmol_per_sec {pub: in}; var v_4_NCX: fmol_per_sec {pub: in}; var v_5_NCX: fmol_per_sec {pub: in}; var v_6_NCX: fmol_per_sec {pub: in}; ode(q_1_NCX, time) = vvv; ode(q_2_NCX, time) = vvv; ode(q_3_NCX, time) = vvv; ode(q_4_NCX, time) = vvv; ode(q_5_NCX, time) = vvv; ode(q_6_NCX, time) = vvv; ode(q_Na_i, time) = vvv; ode(q_Ca_i, time) = vvv; ode(q_Na_o, time) = vvv; ode(q_Ca_o, time) = vvv; enddef; def comp NCX_parameters as var kappa_1_NCX: fmol_per_sec {init: 417309, pub: out}; var kappa_2_NCX: fmol_per_sec {init: 1.39522e+07, pub: out}; var kappa_3_NCX: fmol_per_sec {init: 472.755, pub: out}; var kappa_4_NCX: fmol_per_sec {init: 1.39522e+07, pub: out}; var kappa_5_NCX: fmol_per_sec {init: 417309, pub: out}; var kappa_6_NCX: fmol_per_sec {init: 0.370405, pub: out}; var K_1_NCX: per_fmol {init: 2.93394e+08, pub: out}; var K_2_NCX: per_fmol {init: 14.1045, pub: out}; var K_3_NCX: per_fmol {init: 263471, pub: out}; var K_4_NCX: per_fmol {init: 2.39875e+06, pub: out}; var K_5_NCX: per_fmol {init: 2373.73, pub: out}; var K_6_NCX: per_fmol {init: 956.214, pub: out}; var K_Na_i: per_fmol {init: 0.0137751, pub: out}; var K_Ca_i: per_fmol {init: 10.2446, pub: out}; var K_Na_o: per_fmol {init: 0.470129, pub: out}; var K_Ca_o: per_fmol {init: 7572.91, pub: out}; enddef; def comp NCX as var time: second {pub: in}; var R: J_per_K_per_mol {pub: in}; var T: kelvin {pub: in}; // parameters var kappa_1_NCX: fmol_per_sec {pub: in}; var kappa_2_NCX: fmol_per_sec {pub: in}; var kappa_3_NCX: fmol_per_sec {pub: in}; var kappa_4_NCX: fmol_per_sec {pub: in}; var kappa_5_NCX: fmol_per_sec {pub: in}; var kappa_6_NCX: fmol_per_sec {pub: in}; var K_1_NCX: per_fmol {pub: in}; var K_2_NCX: per_fmol {pub: in}; var K_3_NCX: per_fmol {pub: in}; var K_4_NCX: per_fmol {pub: in}; var K_5_NCX: per_fmol {pub: in}; var K_6_NCX: per_fmol {pub: in}; var K_Na_i: per_fmol {pub: in}; var K_Ca_i: per_fmol {pub: in}; var K_Na_o: per_fmol {pub: in}; var K_Ca_o: per_fmol {pub: in}; // Input from global environment var q_1_NCX: fmol {pub: in}; var q_2_NCX: fmol {pub: in}; var q_3_NCX: fmol {pub: in}; var q_4_NCX: fmol {pub: in}; var q_5_NCX: fmol {pub: in}; var q_6_NCX: fmol {pub: in}; var q_Na_i: fmol {pub: in}; var q_Ca_i: fmol {pub: in}; var q_Na_o: fmol {pub: in}; var q_Ca_o: fmol {pub: in}; // Constitutive parameters var mu_1_NCX: J_per_mol; var mu_2_NCX: J_per_mol; var mu_3_NCX: J_per_mol; var mu_4_NCX: J_per_mol; var mu_5_NCX: J_per_mol; var mu_6_NCX: J_per_mol; var mu_Na_i: J_per_mol; var mu_Ca_i: J_per_mol; var mu_Na_o: J_per_mol; var mu_Ca_o: J_per_mol; var v_1_NCX: fmol_per_sec {pub: out}; var v_2_NCX: fmol_per_sec {pub: out}; var v_3_NCX: fmol_per_sec {pub: out}; var v_4_NCX: fmol_per_sec {pub: out}; var v_5_NCX: fmol_per_sec {pub: out}; var v_6_NCX: fmol_per_sec {pub: out}; mu_1_NCX = R*T*ln(K_1_NCX*q_1_NCX); mu_2_NCX = R*T*ln(K_2_NCX*q_2_NCX); mu_3_NCX = R*T*ln(K_3_NCX*q_3_NCX); mu_4_NCX = R*T*ln(K_4_NCX*q_4_NCX); mu_5_NCX = R*T*ln(K_5_NCX*q_5_NCX); mu_6_NCX = R*T*ln(K_6_NCX*q_6_NCX); mu_Na_i = R*T*ln(K_Na_i*q_Na_i); mu_Ca_i = R*T*ln(K_Ca_i*q_Ca_i); mu_Na_o = R*T*ln(K_Na_o*q_Na_o); mu_Ca_o = R*T*ln(K_Ca_o*q_Ca_o); v_1_NCX = ppp; v_2_NCX = ppp; v_3_NCX = ppp; v_4_NCX = ppp; v_5_NCX = ppp; v_6_NCX = ppp; enddef; def map between environment and NCX for vars time and time; vars q_1_NCX and q_1_NCX; vars q_2_NCX and q_2_NCX; vars q_3_NCX and q_3_NCX; vars q_4_NCX and q_4_NCX; vars q_5_NCX and q_5_NCX; vars q_6_NCX and q_6_NCX; vars q_Na_i and q_Na_i; vars q_Ca_i and q_Ca_i; vars q_Na_o and q_Na_o; vars q_Ca_o and q_Ca_o; vars v_1_NCX and v_1_NCX; vars v_2_NCX and v_2_NCX; vars v_3_NCX and v_3_NCX; vars v_4_NCX and v_4_NCX; vars v_5_NCX and v_5_NCX; vars v_6_NCX and v_6_NCX; enddef; def map between NCX and NCX_parameters for vars kappa_1_NCX and kappa_1_NCX; vars kappa_2_NCX and kappa_2_NCX; vars kappa_3_NCX and kappa_3_NCX; vars kappa_4_NCX and kappa_4_NCX; vars kappa_5_NCX and kappa_5_NCX; vars kappa_6_NCX and kappa_6_NCX; vars K_1_NCX and K_1_NCX; vars K_2_NCX and K_2_NCX; vars K_3_NCX and K_3_NCX; vars K_4_NCX and K_4_NCX; vars K_5_NCX and K_5_NCX; vars K_6_NCX and K_6_NCX; vars K_Na_i and K_Na_i; vars K_Ca_i and K_Ca_i; vars K_Na_o and K_Na_o; vars K_Ca_o and K_Ca_o; enddef; def map between constants and NCX for vars R and R; vars T and T; enddef; enddef;