def model individual_NMDA as def import using "units_and_constants/units.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_s; 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_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.cellml" for comp constants using comp constants; enddef; def comp environment as var time: second {pub: out}; // initial values var q_Ca_o: fmol {init: 1e-888, pub: out}; var q_Ca_i: fmol {init: 1e-888, pub: out}; var q_R_Mg: fmol {init: 1e-888, pub: out}; var q_R_Mg_open: fmol {init: 1e-888, pub: out}; var q_R_open: fmol {init: 1e-888, pub: out}; var q_Gly: fmol {init: 1e-888, pub: out}; var q_Glu: fmol {init: 1e-888, pub: out}; var q_Mg_o: fmol {init: 1e-888, pub: out}; // From submodule var v_Re_bind: fmol_per_sec {pub: in}; var v_Re_depol: fmol_per_sec {pub: in}; ode(q_Ca_o, time) = vvv; ode(q_Ca_i, time) = vvv; ode(q_R_Mg, time) = vvv; ode(q_R_Mg_open, time) = vvv; ode(q_R_open, time) = vvv; ode(q_Gly, time) = vvv; ode(q_Glu, time) = vvv; ode(q_Mg_o, time) = vvv; enddef; def comp NMDA_parameters as var kappa_Re_bind: fmol_per_sec {init: 0.000158922, pub: out}; var kappa_Re_depol: fmol_per_sec {init: 3.27185, pub: out}; var K_Ca_o: per_fmol {init: 6.39112e+08, pub: out}; var K_Ca_i: per_fmol {init: 0.000549429, pub: out}; var K_R_Mg: per_fmol {init: 1.00061, pub: out}; var K_R_Mg_open: per_fmol {init: 0.000513247, pub: out}; var K_R_open: per_fmol {init: 0.000549429, pub: out}; var K_Gly: per_fmol {init: 1.98016e+08, pub: out}; var K_Glu: per_fmol {init: 1.98016e+08, pub: out}; var K_Mg_o: per_fmol {init: 8863.16, pub: out}; enddef; def comp NMDA as var time: second {pub: in}; var R: J_per_K_per_mol {pub: in}; var T: kelvin {pub: in}; // parameters var kappa_Re_bind: fmol_per_sec {pub: in}; var kappa_Re_depol: fmol_per_sec {pub: in}; var K_Ca_o: per_fmol {pub: in}; var K_Ca_i: per_fmol {pub: in}; var K_R_Mg: per_fmol {pub: in}; var K_R_Mg_open: per_fmol {pub: in}; var K_R_open: per_fmol {pub: in}; var K_Gly: per_fmol {pub: in}; var K_Glu: per_fmol {pub: in}; var K_Mg_o: per_fmol {pub: in}; // Input from global environment var q_Ca_o: fmol {pub: in}; var q_Ca_i: fmol {pub: in}; var q_R_Mg: fmol {pub: in}; var q_R_Mg_open: fmol {pub: in}; var q_R_open: fmol {pub: in}; var q_Gly: fmol {pub: in}; var q_Glu: fmol {pub: in}; var q_Mg_o: fmol {pub: in}; // Constitutive parameters var mu_Ca_o: J_per_mol; var mu_Ca_i: J_per_mol; var mu_R_Mg: J_per_mol; var mu_R_Mg_open: J_per_mol; var mu_R_open: J_per_mol; var mu_Gly: J_per_mol; var mu_Glu: J_per_mol; var mu_Mg_o: J_per_mol; var v_Re_bind: fmol_per_sec {pub: out}; var v_Re_depol: fmol_per_sec {pub: out}; mu_Ca_o = R*T*ln(K_Ca_o*q_Ca_o); mu_Ca_i = R*T*ln(K_Ca_i*q_Ca_i); mu_R_Mg = R*T*ln(K_R_Mg*q_R_Mg); mu_R_Mg_open = R*T*ln(K_R_Mg_open*q_R_Mg_open); mu_R_open = R*T*ln(K_R_open*q_R_open); mu_Gly = R*T*ln(K_Gly*q_Gly); mu_Glu = R*T*ln(K_Glu*q_Glu); mu_Mg_o = R*T*ln(K_Mg_o*q_Mg_o); v_Re_bind = ppp; v_Re_depol = ppp; enddef; def map between environment and NMDA for vars time and time; vars q_Ca_o and q_Ca_o; vars q_Ca_i and q_Ca_i; vars q_R_Mg and q_R_Mg; vars q_R_Mg_open and q_R_Mg_open; vars q_R_open and q_R_open; vars q_Gly and q_Gly; vars q_Glu and q_Glu; vars q_Mg_o and q_Mg_o; vars v_Re_bind and v_Re_bind; vars v_Re_depol and v_Re_depol; enddef; def map between NMDA and NMDA_parameters for vars kappa_Re_bind and kappa_Re_bind; vars kappa_Re_depol and kappa_Re_depol; vars K_Ca_o and K_Ca_o; vars K_Ca_i and K_Ca_i; vars K_R_Mg and K_R_Mg; vars K_R_Mg_open and K_R_Mg_open; vars K_R_open and K_R_open; vars K_Gly and K_Gly; vars K_Glu and K_Glu; vars K_Mg_o and K_Mg_o; enddef; def map between constants and NMDA for vars R and R; vars T and T; enddef; enddef;