def model individual_LRGbinding_M2 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_L_M2_init: fmol; var q_R_M2_init: fmol {init: 0.00072162}; var q_Gi_init: fmol {init: 0.00836}; var q_LR_M2_init: fmol {init: 1e-18}; var q_R_M2Gi_init: fmol {init: 1e-18}; var q_LR_M2Gi_init: fmol {init: 1e-18}; var L_T: fmol {pub: in}; var R_T: fmol {pub: in}; var Gi_T: fmol {pub: in}; // stimulus var stimSt: second {init: 3.1}; var stimDur: second {init: 0.5e1}; var tR: second {init: 0.3e1}; var stimMag: fmol {init: 1e-7}; var stimHolding: fmol {init: 1e-8}; var m: fmol_per_sec; m = stimMag/tR; q_L_M2_init = sel case (time < stimSt) and (time > stimSt-tR): stimHolding+m*(time-stimSt+tR); case (time >= stimSt) and (time < stimSt+stimDur): stimMag+stimHolding; case (time < stimSt+tR+stimDur) and (time >= stimSt+stimDur): stimHolding+-m*(time-stimSt-tR-stimDur); otherwise: stimHolding; endsel; // Global value var q_L_M2: fmol {pub: out}; var q_R_M2: fmol {pub: out}; var q_Gi: fmol {pub: out}; var q_LR_M2: fmol {pub: out}; var q_R_M2Gi: fmol {pub: out}; var q_LR_M2Gi: fmol {pub: out}; // From submodule var q_L_M2_mLRGbinding_M2: fmol {pub: in}; var q_R_M2_mLRGbinding_M2: fmol {pub: in}; var q_Gi_mLRGbinding_M2: fmol {pub: in}; var q_LR_M2_mLRGbinding_M2: fmol {pub: in}; var q_R_M2Gi_mLRGbinding_M2: fmol {pub: in}; var q_LR_M2Gi_mLRGbinding_M2: fmol {pub: in}; q_L_M2 = q_L_M2_mLRGbinding_M2 + q_L_M2_init; q_R_M2 = q_R_M2_mLRGbinding_M2 + q_R_M2_init; q_Gi = q_Gi_mLRGbinding_M2 + q_Gi_init; q_LR_M2 = q_LR_M2_mLRGbinding_M2 + q_LR_M2_init; q_R_M2Gi = q_R_M2Gi_mLRGbinding_M2 + q_R_M2Gi_init; q_LR_M2Gi = q_LR_M2Gi_mLRGbinding_M2 + q_LR_M2Gi_init; // mass conservation checks var L_T: fmol {pub: out}; var R_T: fmol {pub: out}; var Gi_T: fmol {pub: out}; L_T = q_L_M2+q_LR_M2+q_LR_M2Gi; R_T = q_R_M2+q_LR_M2+q_R_M2Gi+q_LR_M2Gi; Gi_T = q_Gi+q_R_M2Gi+q_LR_M2Gi; enddef; def comp LRGbinding_M2_parameters as var kappa_R_C_M2: fmol_per_sec {init: 18188.9, pub: out}; var kappa_R_R_M2: fmol_per_sec {init: 626.532, pub: out}; var kappa_R_L_M2: fmol_per_sec {init: 13018.6, pub: out}; var K_L_M2: per_fmol {init: 0.0767207, pub: out}; var K_R_M2: per_fmol {init: 0.846069, pub: out}; var K_Gi: per_fmol {init: 0.0549123, pub: out}; var K_LR_M2: per_fmol {init: 24.5623, pub: out}; var K_R_M2Gi: per_fmol {init: 47.9464, pub: out}; var K_LR_M2Gi: per_fmol {init: 106.329, pub: out}; enddef; def comp LRGbinding_M2 as var time: second {pub: in}; var R: J_per_K_per_mol {pub: in}; var T: kelvin {pub: in}; // parameters var kappa_R_C_M2: fmol_per_sec {pub: in}; var kappa_R_R_M2: fmol_per_sec {pub: in}; var kappa_R_L_M2: fmol_per_sec {pub: in}; var K_L_M2: per_fmol {pub: in}; var K_R_M2: per_fmol {pub: in}; var K_Gi: per_fmol {pub: in}; var K_LR_M2: per_fmol {pub: in}; var K_R_M2Gi: per_fmol {pub: in}; var K_LR_M2Gi: per_fmol {pub: in}; // Input from global environment var q_L_M2_global: fmol {pub: in}; var q_R_M2_global: fmol {pub: in}; var q_Gi_global: fmol {pub: in}; var q_LR_M2_global: fmol {pub: in}; var q_R_M2Gi_global: fmol {pub: in}; var q_LR_M2Gi_global: fmol {pub: in}; // Output to global environment var q_L_M2: fmol {init: 1e-16, pub: out}; var q_R_M2: fmol {init: 1e-16, pub: out}; var q_Gi: fmol {init: 1e-16, pub: out}; var q_LR_M2: fmol {init: 1e-16, pub: out}; var q_R_M2Gi: fmol {init: 1e-16, pub: out}; var q_LR_M2Gi: fmol {init: 1e-16, pub: out}; // Constitutive parameters var mu_L_M2: J_per_mol; var mu_R_M2: J_per_mol; var mu_Gi: J_per_mol; var mu_LR_M2: J_per_mol; var mu_R_M2Gi: J_per_mol; var mu_LR_M2Gi: J_per_mol; var v_R_C_M2: fmol_per_sec; var v_R_R_M2: fmol_per_sec; var v_R_L_M2: fmol_per_sec; mu_L_M2 = R*T*ln(K_L_M2*q_L_M2_global); mu_R_M2 = R*T*ln(K_R_M2*q_R_M2_global); mu_Gi = R*T*ln(K_Gi*q_Gi_global); mu_LR_M2 = R*T*ln(K_LR_M2*q_LR_M2_global); mu_R_M2Gi = R*T*ln(K_R_M2Gi*q_R_M2Gi_global); mu_LR_M2Gi = R*T*ln(K_LR_M2Gi*q_LR_M2Gi_global); v_R_C_M2 = kappa_sig1_M2*exp((mu_R_M2+mu_Gi)/(R*T))-exp(mu_R_M2Gi/(R*T)); v_R_R_M2 = kappa_sig3_M2*exp((mu_LR_M2+mu_Gi)/(R*T))-exp(mu_LR_M2Gi/(R*T)); v_R_L_M2 = kappa_sig4_M2*exp((mu_R_M2+mu_L_M2)/(R*T))-exp(mu_LR_M2/(R*T)); ode(q_L_M2, time) = -v_R_L_M2; ode(q_R_M2, time) = -v_R_C_M2-v_R_L_M2; ode(q_Gi, time) = -v_R_C_M2-v_R_R_M2; ode(q_LR_M2, time) = -v_R_R_M2+v_R_L_M2; ode(q_R_M2Gi, time) = v_R_C_M2; ode(q_LR_M2Gi, time) = v_R_R_M2; enddef; def map between environment and LRGbinding_M2 for vars time and time; vars q_L_M2_mLRGbinding_M2 and q_L_M2; vars q_L_M2 and q_L_M2_global; vars q_R_M2_mLRGbinding_M2 and q_R_M2; vars q_R_M2 and q_R_M2_global; vars q_Gi_mLRGbinding_M2 and q_Gi; vars q_Gi and q_Gi_global; vars q_LR_M2_mLRGbinding_M2 and q_LR_M2; vars q_LR_M2 and q_LR_M2_global; vars q_R_M2Gi_mLRGbinding_M2 and q_R_M2Gi; vars q_R_M2Gi and q_R_M2Gi_global; vars q_LR_M2Gi_mLRGbinding_M2 and q_LR_M2Gi; vars q_LR_M2Gi and q_LR_M2Gi_global; enddef; def map between LRGbinding_M2 and LRGbinding_M2_parameters for vars kappa_R_C_M2 and kappa_R_C_M2; vars kappa_R_R_M2 and kappa_R_R_M2; vars kappa_R_L_M2 and kappa_R_L_M2; vars K_L_M2 and K_L_M2; vars K_R_M2 and K_R_M2; vars K_Gi and K_Gi; vars K_LR_M2 and K_LR_M2; vars K_R_M2Gi and K_R_M2Gi; vars K_LR_M2Gi and K_LR_M2Gi; enddef; def map between constants and LRGbinding_M2 for vars R and R; vars T and T; enddef; enddef;