/* * Modeling regulation of cardiac KATP and L-type Ca2+ currents * by ATP, ADP, and Mg2+ * * Model Status * * This CellML model runs in both COR and OpenCell to recreate * the published results. The units have been checked and they * are consistent. We thank the original model author Anushka Michailova * for providing us with the MATLAB code for the 2001 model on * which this 2005 model is based. Please note when running a simultaion * the step size has to be smaller than 0.005 seconds. * * Model Structure * * ABSTRACT: Changes in cytosolic free Mg(2+) and adenosine nucleotide * phosphates affect cardiac excitability and contractility. To * investigate how modulation by Mg(2+), ATP, and ADP of K(ATP) * and L-type Ca(2+) channels influences excitation-contraction * coupling, we incorporated equations for intracellular ATP and * MgADP regulation of the K(ATP) current and MgATP regulation * of the L-type Ca(2+) current in an ionic-metabolic model of * the canine ventricular myocyte. The new model: 1), quantitatively * reproduces a dose-response relationship for the effects of changes * in ATP on K(ATP) current, 2), simulates effects of ADP in modulating * ATP sensitivity of K(ATP) channel, 3), predicts activation of * Ca(2+) current during rapid increase in MgATP, and 4), demonstrates * that decreased ATP/ADP ratio with normal total Mg(2+) or increased * free Mg(2+) with normal ATP and ADP activate K(ATP) current, * shorten action potential, and alter ionic currents and intracellular * Ca(2+) signals. The model predictions are in agreement with * experimental data measured under normal and a variety of pathological * conditions. * * [[Image file: michailova_2005_katp.png]] * * Schematic representation of Kir6.2 and SUR2A subunit stoichiometry * in cardiac octameric KATP channel. It is assumed that the single * ATP molecule is sufficient to close the channel and that the * binding of 2MgADP molecules to one SUR2A subunit increases the * channel open probability. * * [[Image file: michailova_2005_fullcell.png]] * * Schematic diagram of the full cell model illustrating Ca2+ and * Mg2+ buffering and transport by ATP and ADP, adenine nucleotides * regulation of ionic channels and pumps, and electrophysiology * in a ventricular myocyte. * * The original paper reference is cited below: * * Modeling Regulation of Cardiac KATP and L-type Ca2+ Currents * by ATP, ADP, and Mg2+, Anushka Michailova, Jeffrey Saucerman, * Mary Ellen Belik, and Andrew D. McCulloch, 2005, Biophysical * Journal. PubMed ID: 18339738 */ import nsrunit; unit conversion on; unit per_second=1 second^(-1); unit second_per_millisecond=1E3 dimensionless; // unit millivolt predefined unit per_millivolt=1E3 kilogram^(-1)*meter^(-2)*second^3*ampere^1; unit per_millivolt_second=1E3 kilogram^(-1)*meter^(-2)*second^2*ampere^1; unit milliS_per_microF=1E3 second^(-1); unit microF_per_cm2=.01 kilogram^(-1)*meter^(-4)*second^4*ampere^2; unit microA_per_microF=1 kilogram^1*meter^2*second^(-4)*ampere^(-1); unit microA_second_per_cm3=1 meter^(-3)*second^1*ampere^1; unit nA_microA=.001 dimensionless; // unit millimolar predefined unit millimolar_per_second=1 meter^(-3)*second^(-1)*mole^1; unit per_millimolar_second=1 meter^3*second^(-1)*mole^(-1); unit millimolar3_per_second=1 meter^9*second^(-1)*mole^(-3); unit millimolar4_per_second=1 meter^12*second^(-1)*mole^(-4); unit joule_per_mole_kelvin=1 kilogram^1*meter^2*second^(-2)*kelvin^(-1)*mole^(-1); unit coulomb_per_millimole=1E3 second^1*ampere^1*mole^(-1); unit cm_per_second=.01 meter^1*second^(-1); unit cm_per_farad_second=.01 kilogram^1*meter^3*second^(-5)*ampere^(-2); unit cm2=1E-4 meter^2; // unit microlitre predefined math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; when(time=time.min) V=-96.1638; real R joule_per_mole_kelvin; R=8.314472; real T kelvin; T=310; real F coulomb_per_millimole; F=96.4853415; real C_sc microF_per_cm2; C_sc=0.001; real i_Stim(time) microA_per_microF; real i_Na(time) microA_per_microF; real i_Ca(time) microA_per_microF; real i_Ca_K(time) microA_per_microF; real i_Kr(time) microA_per_microF; real i_Ks(time) microA_per_microF; real i_to1(time) microA_per_microF; real i_K1(time) microA_per_microF; real i_Kp(time) microA_per_microF; real i_NaCa(time) microA_per_microF; real i_NaK(time) microA_per_microF; real i_p_Ca(time) microA_per_microF; real i_Ca_b(time) microA_per_microF; real i_Na_b(time) microA_per_microF; real i_K_ATP(time) microA_per_microF; real stim_start second; stim_start=0.1; real stim_end second; stim_end=100000000; real stim_period second; stim_period=1; real stim_duration second; stim_duration=0.0005; real stim_amplitude microA_per_microF; stim_amplitude=-100.0; real E_Na(time) millivolt; real g_Na milliS_per_microF; g_Na=12.8; real Na_o millimolar; Na_o=138; real Na_i(time) millimolar; when(time=time.min) Na_i=10; real fast_sodium_current.m(time) dimensionless; when(time=time.min) fast_sodium_current.m=0.0328302; real h(time) dimensionless; when(time=time.min) h=0.988354; real j(time) dimensionless; when(time=time.min) j=0.99254; real alpha_m(time) per_second; real beta_m(time) per_second; real E0_m(time) millivolt; real alpha_h(time) per_second; real beta_h(time) per_second; real alpha_j(time) per_second; real beta_j(time) per_second; real E_K(time) millivolt; real g_Kr milliS_per_microF; g_Kr=0.0034; real f_K_o dimensionless; real R_V(time) dimensionless; real K_o millimolar; K_o=4; real K_i(time) millimolar; when(time=time.min) K_i=159.48; real X_kr(time) dimensionless; when(time=time.min) X_kr=0.51; real K12(time) dimensionless; real K21(time) dimensionless; real X_kr_inf(time) dimensionless; real tau_X_kr(time) second; real tau_factor dimensionless; tau_factor=1; real g_Ks milliS_per_microF; g_Ks=0.0027134; real E_Ks(time) millivolt; real X_ks(time) dimensionless; when(time=time.min) X_ks=0.264; real tau_X_ks(time) second; real X_ks_infinity(time) dimensionless; real g_to1 milliS_per_microF; g_to1=0.23815; real X_to1(time) dimensionless; when(time=time.min) X_to1=2.63; real Y_to1(time) dimensionless; when(time=time.min) Y_to1=0.99; real alpha_X_to1(time) per_second; real beta_X_to1(time) per_second; real alpha_Y_to1(time) per_second; real beta_Y_to1(time) per_second; real g_K1 milliS_per_microF; g_K1=2.8; real K_mK1 millimolar; K_mK1=13; real K1_infinity_V(time) dimensionless; real g_Kp milliS_per_microF; g_Kp=0.002216; real Kp_V(time) dimensionless; real K_mCa millimolar; K_mCa=1.38; real K_mNa millimolar; K_mNa=87.5; real K_NaCa microA_per_microF; K_NaCa=0.3; real K_sat dimensionless; K_sat=0.2; real eta dimensionless; eta=0.35; real Ca_i(time) millimolar; when(time=time.min) Ca_i=8.464E-5; real Ca_o millimolar; Ca_o=2; real I_NaK microA_per_microF; I_NaK=0.693; real f_NaK(time) dimensionless; real K_mNa_i millimolar; K_mNa_i=10; real K_mK_o millimolar; K_mK_o=1.5; real sigma dimensionless; real i_p_Ca_winslow(time) microA_per_microF; real K_mpCa millimolar; K_mpCa=0.00005; real I_pCa microA_per_microF; I_pCa=0.05; real MgATP_i(time) millimolar; when(time=time.min) MgATP_i=6.4395; real MgATP_i0 millimolar; MgATP_i0=2.888; real g_Cab milliS_per_microF; g_Cab=0.0003842; real E_Ca(time) millivolt; real g_Nab milliS_per_microF; g_Nab=0.0031; real P_Ca cm_per_second; P_Ca=3.594e-4; real p_prime_k cm_per_second; p_prime_k=6.658e-7; real f_Ca(time) dimensionless; real P_rom(time) dimensionless; real k_MgATP_ss millimolar; k_MgATP_ss=1.4; real alpha(time) per_second; real beta(time) per_second; real gamma(time) per_second; real v_gamma(time) per_second; real alpha_prime(time) per_second; real beta_prime(time) per_second; real a dimensionless; a=2; real b dimensionless; b=2; real g per_second; g=2000; real f per_second; f=300; real v_omega(time) per_second; real omega per_second; omega=10; real x dimensionless; real z(time) dimensionless; when(time=time.min) z=0.1; real v(time) dimensionless; when(time=time.min) v=0.1; real w(time) dimensionless; when(time=time.min) w=0.1; real Ca_ss(time) millimolar; when(time=time.min) Ca_ss=1.315E-4; real MgATP_ss(time) millimolar; when(time=time.min) MgATP_ss=6.4395; real y(time) dimensionless; when(time=time.min) y=0.798; real y_infinity(time) dimensionless; real tau_y(time) second; real g_K_ATP(time) milliS_per_microF; real G_K_ATP milliS_per_microF; G_K_ATP=0.05; real f_K_ATP(time) dimensionless; real f_ATP(time) dimensionless; real k_ATP millimolar; k_ATP=0.6; real k_MgADP millimolar; k_MgADP=0.4; real K_o_normal millimolar; K_o_normal=4.5; real f_MgADP_(time) dimensionless; real f_MgADP(time) dimensionless; real c_MgADP(time) dimensionless; real go dimensionless; go=0.08; real gd dimensionless; gd=0.89; real ATP_i(time) millimolar; real MgADP_i(time) millimolar; when(time=time.min) MgADP_i=0.298E-2; real J_rel(time) millimolar_per_second; real v1 per_second; v1=1800; real k_a_plus millimolar4_per_second; k_a_plus=1.215e13; real k_a_minus per_second; k_a_minus=576; real k_b_plus millimolar3_per_second; k_b_plus=4.05e9; real k_b_minus per_second; k_b_minus=1930; real k_c_plus per_second; k_c_plus=100; real k_c_minus per_second; k_c_minus=0.8; real P_O1(time) dimensionless; when(time=time.min) P_O1=0; real P_O2(time) dimensionless; when(time=time.min) P_O2=0; real P_C1(time) dimensionless; when(time=time.min) P_C1=0.47; real P_C2(time) dimensionless; when(time=time.min) P_C2=0.53; // Var below replaced by constant in model eqns to satisfy unit correction // real n dimensionless; // n=4; // Var below replaced by constant in model eqns to satisfy unit correction // real RyR_channel.m dimensionless; // RyR_channel.m=3; real Ca_JSR(time) millimolar; when(time=time.min) Ca_JSR=0.2616; real J_up(time) millimolar_per_second; real J_up_winslow(time) millimolar_per_second; real K_fb millimolar; K_fb=0.000168; real K_rb millimolar; K_rb=3.29; real fb(time) dimensionless; real rb(time) dimensionless; real Vmaxf millimolar_per_second; Vmaxf=0.0813; real Vmaxr millimolar_per_second; Vmaxr=0.318; real K_SR dimensionless; K_SR=1; real N_fb dimensionless; N_fb=1.2; real N_rb dimensionless; N_rb=1; real Ca_NSR(time) millimolar; when(time=time.min) Ca_NSR=0.2620; real J_tr(time) millimolar_per_second; real J_xfer(time) millimolar_per_second; real J_trpn(time) millimolar_per_second; real tau_tr second; tau_tr=0.0005747; real tau_xfer second; tau_xfer=0.0267; real HTRPNCa(time) millimolar; when(time=time.min) HTRPNCa=0.98; real LTRPNCa(time) millimolar; when(time=time.min) LTRPNCa=0.078; real J_HTRPNCa(time) millimolar_per_second; real J_LTRPNCa(time) millimolar_per_second; real HTRPN_tot dimensionless; HTRPN_tot=0.14; real LTRPN_tot dimensionless; LTRPN_tot=0.07; real k_htrpn_plus per_millimolar_second; k_htrpn_plus=20000; real k_htrpn_minus per_second; k_htrpn_minus=0.066; real k_ltrpn_plus per_millimolar_second; k_ltrpn_plus=40000; real k_ltrpn_minus per_second; k_ltrpn_minus=40; real A_cap cm2; A_cap=0.0001534; real intracellular_ion_concentrations.V_myo microlitre; intracellular_ion_concentrations.V_myo=0.00002584; real V_JSR microlitre; V_JSR=0.00000016; real V_NSR microlitre; V_NSR=0.0000021; real intracellular_ion_concentrations.V_ss microlitre; intracellular_ion_concentrations.V_ss=0.0000000012; real K_mCMDN millimolar; K_mCMDN=0.00238; real K_mEGTA millimolar; K_mEGTA=0.00015; real K_mCSQN millimolar; K_mCSQN=0.8; real CMDN_tot millimolar; CMDN_tot=0.05; real EGTA_tot millimolar; EGTA_tot=0; real CSQN_tot millimolar; CSQN_tot=15; real beta_i(time) dimensionless; real beta_SS(time) dimensionless; real beta_JSR(time) dimensionless; real k_plus_CaATP per_millimolar_second; k_plus_CaATP=225000.0; real k_minus_CaATP per_second; k_minus_CaATP=45000.0; real k_plus_CaADP per_millimolar_second; k_plus_CaADP=125000.0; real k_minus_CaADP per_second; k_minus_CaADP=193500; real CaADP_i(time) millimolar; when(time=time.min) CaADP_i=0.11E-6; real CaADP_ss(time) millimolar; when(time=time.min) CaADP_ss=0.13E-6; real CaATP_ss(time) millimolar; when(time=time.min) CaATP_ss=0.25E-3; real ADP_i(time) millimolar; real ADP_ss(time) millimolar; real ATP_ss(time) millimolar; real CaATP_i(time) millimolar; when(time=time.min) CaATP_i=0.237E-3; real Mg_ss(time) millimolar; when(time=time.min) Mg_ss=1.0; real Mg_i(time) millimolar; when(time=time.min) Mg_i=1.0; real MgADP_ss(time) millimolar; when(time=time.min) MgADP_ss=0.298E-2; real ATP_tot millimolar; ATP_tot=7.0; real k_plus_MgATP per_millimolar_second; k_plus_MgATP=125000.0; real k_minus_MgATP per_second; k_minus_MgATP=10875.0; real Jxfer_CaATP(time) millimolar_per_second; real Jxfer_MgATP(time) millimolar_per_second; real Jxfer_Mg(time) millimolar_per_second; real tau_xfer_CaATP second; tau_xfer_CaATP=0.0534; real tau_xfer_MgATP second; tau_xfer_MgATP=0.0534; real tau_xfer_Mg second; tau_xfer_Mg=0.0267; real ADP_tot millimolar; ADP_tot=0.005; real k_plus_MgADP per_millimolar_second; k_plus_MgADP=125000.0; real k_minus_MgADP per_second; k_minus_MgADP=84500.0; real Jxfer_CaADP(time) millimolar_per_second; real Jxfer_MgADP(time) millimolar_per_second; real tau_xfer_CaADP second; tau_xfer_CaADP=0.0534; real tau_xfer_MgADP second; tau_xfer_MgADP=0.0534; real Ca_and_Mg_buffering_by_ATP.V_myo microlitre; Ca_and_Mg_buffering_by_ATP.V_myo=0.00002584; real Ca_and_Mg_buffering_by_ATP.V_ss microlitre; Ca_and_Mg_buffering_by_ATP.V_ss=0.0000000012; // // i_Stim=(if (((time>=stim_start) and (time<=stim_end)) and ((time-stim_start-floor((time-stim_start)/stim_period)*stim_period)<=stim_duration)) stim_amplitude else (0 microA_per_microF)); V:time=((-1)*(1 microF_per_cm2)*(1 nA_microA)*(i_Na+i_Ca+i_Ca_K+i_Kr+i_Ks+i_to1+i_K1+i_Kp+i_NaCa+i_NaK+i_p_Ca+i_Na_b+i_Ca_b+i_K_ATP+i_Stim)/C_sc); // E_Na=(R*T/F*ln(Na_o/Na_i)); i_Na=(g_Na*fast_sodium_current.m^3*h*j*(V-E_Na)); // E0_m=(V+(47.13 millivolt)); alpha_m=(if (abs(E0_m)<(1E-5 millivolt)) (320 per_second)/(.1-(.005 per_millivolt)*E0_m) else (320 per_millivolt_second)*E0_m/(1-exp((-1)*(.1 per_millivolt)*E0_m))); beta_m=((80 per_second)*exp((-1)*V/(11 millivolt))); fast_sodium_current.m:time=(if (V>=((-1)*(90 millivolt))) alpha_m*(1-fast_sodium_current.m)-beta_m*fast_sodium_current.m else (0 per_second)); // alpha_h=(if (V<((-1)*(40 millivolt))) (135 per_second)*exp(((80 millivolt)+V)/((-1)*(6.8 millivolt))) else (0 per_second)); beta_h=(if (V<((-1)*(40 millivolt))) (3560 per_second)*exp((.079 per_millivolt)*V)+(3.1E5 per_second)*exp((.35 per_millivolt)*V) else 1E3/((.13 second)*(1+exp((V+(10.66 millivolt))/((-1)*(11.1 millivolt)))))); h:time=(alpha_h*(1-h)-beta_h*h); // alpha_j=(if (V<((-1)*(40 millivolt))) 1E3*((-1)*((127140 per_millivolt_second)*exp((.2444 per_millivolt)*V)+(3.474E-5 per_millivolt_second)*exp((-1)*(.04391 per_millivolt)*V)))*(V+(37.78 millivolt))/(1+exp((.311 per_millivolt)*(V+(79.23 millivolt)))) else (0 per_second)); beta_j=(if (V<((-1)*(40 millivolt))) (121.2 per_second)*exp((-1)*(.01052 per_millivolt)*V)/(1+exp((-1)*(.1378 per_millivolt)*(V+(40.14 millivolt)))) else (300 per_second)*exp((-1)*(2.535E-7 per_millivolt)*V)/(1+exp((-1)*(.1 per_millivolt)*(V+(32 millivolt))))); j:time=(alpha_j*(1-j)-beta_j*j); // E_K=(R*T/F*ln(K_o/K_i)); f_K_o=sqrt(K_o/(4 millimolar)); R_V=(1/(1+1.4945*exp((.0446 per_millivolt)*V))); i_Kr=(g_Kr*f_K_o*R_V*X_kr*(V-E_K)); // K12=exp((-1)*5.495+(.1691 per_millivolt)*V); K21=exp((-1)*7.677-(.0128 per_millivolt)*V); X_kr_inf=(K12/(K12+K21)); tau_X_kr=((.001 second)/(K12+K21)+tau_factor*(.027 second)); X_kr:time=((X_kr_inf-X_kr)/tau_X_kr); // E_Ks=(R*T/F*ln((K_o+.01833*Na_o)/(K_i+.01833*Na_i))); i_Ks=(g_Ks*X_ks^2*(V-E_Ks)); // X_ks_infinity=(1/(1+exp((-1)*(V-(24.7 millivolt))/(13.6 millivolt)))); tau_X_ks=((.001 second)/((7.19E-5 per_millivolt)*(V-(10 millivolt))/(1-exp((-1)*(.148 per_millivolt)*(V-(10 millivolt))))+(1.31E-4 per_millivolt)*(V-(10 millivolt))/(exp((.0687 per_millivolt)*(V-(10 millivolt)))-1))); X_ks:time=((X_ks_infinity-X_ks)/tau_X_ks); // i_to1=(g_to1*X_to1*Y_to1*(V-E_K)); // alpha_X_to1=((45.16 per_second)*exp((.03577 per_millivolt)*V)); beta_X_to1=((98.9 per_second)*exp((-1)*(.06237 per_millivolt)*V)); X_to1:time=(alpha_X_to1*(1-X_to1)-beta_X_to1*X_to1); // alpha_Y_to1=((5.415 per_second)*exp((-1)*(V+(33.5 millivolt))/(5 millivolt))/(1+.051335*exp((-1)*(V+(33.5 millivolt))/(5 millivolt)))); beta_Y_to1=((5.415 per_second)*exp((V+(33.5 millivolt))/(5 millivolt))/(1+.051335*exp((V+(33.5 millivolt))/(5 millivolt)))); Y_to1:time=(alpha_Y_to1*(1-Y_to1)-beta_Y_to1*Y_to1); // i_K1=(g_K1*K1_infinity_V*K_o/(K_o+K_mK1)*(V-E_K)); // K1_infinity_V=(1/(2+exp(1.5*F/(R*T)*(V-E_K)))); // i_Kp=(g_Kp*Kp_V*(V-E_K)); // Kp_V=(1/(1+exp(((7.488 millivolt)-V)/(5.98 millivolt)))); // i_NaCa=(K_NaCa*5E3/((K_mNa^3+Na_o^3)*(K_mCa+Ca_o)*(1+K_sat*exp((eta-1)*V*F/(R*T))))*(exp(eta*V*F/(R*T))*Na_i^3*Ca_o-exp((eta-1)*V*F/(R*T))*Na_o^3*Ca_i)); // f_NaK=(1/(1+.1245*exp((-1)*.1*V*F/(R*T))+.0365*sigma*exp((-1)*V*F/(R*T)))); sigma=(1/7*(exp(Na_o/(67.3 millimolar))-1)); i_NaK=(I_NaK*f_NaK/(1+(K_mNa_i/Na_i)^1.5)*K_o/(K_o+K_mK_o)); // i_p_Ca=(MgATP_i/MgATP_i0*i_p_Ca_winslow); i_p_Ca_winslow=(I_pCa*Ca_i/(K_mpCa+Ca_i)); // E_Ca=(R*T/(2*F)*ln(Ca_o/Ca_i)); i_Ca_b=(g_Cab*(V-E_Ca)); // i_Na_b=(g_Nab*(V-E_Na)); // i_Ca=(f_Ca*(P_Ca/((1 second_per_millisecond)*C_sc))*(4*V*F^2/(R*T))*(((.001 millimolar)*exp(F*V/(R*T))-.34*Ca_o)/(exp(F*V/(R*T))-1))*P_rom); i_Ca_K=((1 microA_second_per_cm3)*f_Ca*(p_prime_k/C_sc)*P_rom); v:time=(alpha*(1-v)-beta*v); w:time=(alpha_prime*(1-w)-beta_prime*w); x=(f/(f+g)); z:time=(v_omega*(1-z)-v_gamma*z); alpha=((400 per_second)*exp((V+(2 millivolt))/(10 millivolt))); beta=((50 per_second)*exp((-1)*(V+(2 millivolt))/(13 millivolt))); alpha_prime=(alpha*a); beta_prime=(beta/b); gamma=((103.75 per_second)*Ca_ss/(1 millimolar)); P_rom=(v^4*y*z*(f/(f+g))); f_Ca=(1/(1+(k_MgATP_ss/MgATP_ss)^2.6)); v_omega=(omega*(b^((-1)*0)*w^0*(1-w)^(4-0)+b^((-1)*1)*w^1*(1-w)^(4-1)+b^((-1)*2)*w^2*(1-w)^(4-2)+b^((-1)*3)*w^3*(1-w)^(4-3)+b^((-1)*4)*w^4*(1-w)^(4-4))); v_gamma=(gamma*(a^0*v^0*(1-v)^(4-0)+a^1*v^1*(1-v)^(4-1)+a^2*v^2*(1-v)^(4-2)+a^3*v^3*(1-v)^(4-3)+a^4*v^4*(1-v)^(4-4)+(-1)*(a^4*v^4*x))); // y_infinity=(.8/(1+exp((V+(12.5 millivolt))/(5 millivolt)))+.2); tau_y=(((20 second)+(600 second)/(1+exp((V+(20 millivolt))/(9.5 millivolt))))/1E3); y:time=((y_infinity-y)/tau_y); // i_K_ATP=(g_K_ATP*(V-E_K)); g_K_ATP=(G_K_ATP*f_K_ATP*(K_o/K_o_normal)^.24); f_ATP=((1-ATP_i/(ATP_i+k_ATP))^4); f_MgADP_=((MgADP_i/(MgADP_i+k_MgADP))^2); c_MgADP=(1-f_MgADP_); f_MgADP=(1-c_MgADP^4); f_K_ATP=(go*f_ATP*(1-f_MgADP)+gd*f_ATP*f_MgADP); // P_C1:time=((-1)*k_a_plus*Ca_ss^4*P_C1+k_a_minus*P_O1); P_O1:time=(k_a_plus*Ca_ss^4*P_C1-(k_a_minus*P_O1+k_b_plus*Ca_ss^3*P_O1+k_c_plus*P_O1)+k_b_minus*P_O2+k_c_minus*P_C2); P_O2:time=(k_b_plus*Ca_ss^3*P_O1-k_b_minus*P_O2); P_C2:time=(k_c_plus*P_O1-k_c_minus*P_C2); J_rel=(v1*(P_O1+P_O2)*(Ca_JSR-Ca_ss)); // fb=((Ca_i/K_fb)^N_fb); rb=((Ca_NSR/K_rb)^N_rb); J_up=(MgATP_i/MgATP_i0*J_up_winslow); J_up_winslow=(K_SR*(Vmaxf*fb-Vmaxr*rb)/(1+fb+rb)); // J_tr=((Ca_NSR-Ca_JSR)/tau_tr); J_xfer=((Ca_ss-Ca_i)/tau_xfer); J_trpn=(HTRPN_tot*J_HTRPNCa+LTRPN_tot*J_LTRPNCa); J_HTRPNCa=(HTRPNCa:time); HTRPNCa:time=(k_htrpn_plus*Ca_i*((1 millimolar)-HTRPNCa)-k_htrpn_minus*HTRPNCa); J_LTRPNCa=(LTRPNCa:time); LTRPNCa:time=(k_ltrpn_plus*Ca_i*((1 millimolar)-LTRPNCa)-k_ltrpn_minus*LTRPNCa); // Ca_i:time=(beta_i*(J_xfer-(J_up+J_trpn)+(-1)*((i_p_Ca+i_Ca_b-2*i_NaCa)*(A_cap*C_sc/(2*intracellular_ion_concentrations.V_myo*F)))+(k_minus_CaATP*CaATP_i+k_minus_CaADP*CaADP_i-(k_plus_CaATP*Ca_i*ATP_i+k_plus_CaADP*Ca_i*ADP_i)))); Na_i:time=((-1)*0*(i_Na+i_Na_b+i_NaCa*3+i_NaK*3)*A_cap*(1 microF_per_cm2)/(intracellular_ion_concentrations.V_myo*F)); K_i:time=((-1)*0*(i_Ca_K+i_Kr+i_Ks+i_K1+i_Kp+i_to1+i_K_ATP+i_NaK*((-1)*2))*A_cap*(1 microF_per_cm2)/(intracellular_ion_concentrations.V_myo*F)); beta_i=(1/(1+CMDN_tot*K_mCMDN/(K_mCMDN+Ca_i)^2+EGTA_tot*K_mEGTA/(K_mEGTA+Ca_i)^2)); beta_SS=(1/(1+CMDN_tot*K_mCMDN/(K_mCMDN+Ca_ss)^2+EGTA_tot*K_mEGTA/(K_mEGTA+Ca_ss)^2)); beta_JSR=(1/(1+CSQN_tot*K_mCSQN/(K_mCSQN+Ca_JSR)^2)); Ca_ss:time=(beta_SS*(J_rel*V_JSR/intracellular_ion_concentrations.V_ss+k_minus_CaATP*CaATP_ss+k_minus_CaADP*CaADP_ss-(J_xfer*intracellular_ion_concentrations.V_myo/intracellular_ion_concentrations.V_ss+i_Ca*(A_cap*(1 microF_per_cm2)/(2*intracellular_ion_concentrations.V_ss*F))+k_plus_CaATP*Ca_ss*ATP_ss+k_plus_CaADP*Ca_ss*ADP_ss))); Ca_JSR:time=(beta_JSR*(J_tr-J_rel)); Ca_NSR:time=(J_up*intracellular_ion_concentrations.V_myo/V_NSR-J_tr*V_JSR/V_NSR); // ATP_ss=(ATP_tot-(CaATP_ss+MgATP_ss)); CaATP_ss:time=(k_plus_CaATP*Ca_ss*ATP_ss-(Jxfer_CaATP*(Ca_and_Mg_buffering_by_ATP.V_myo/Ca_and_Mg_buffering_by_ATP.V_ss)+k_minus_CaATP*CaATP_ss)); MgATP_ss:time=(k_plus_MgATP*Mg_ss*ATP_ss-(Jxfer_MgATP*(Ca_and_Mg_buffering_by_ATP.V_myo/Ca_and_Mg_buffering_by_ATP.V_ss)+k_minus_MgATP*MgATP_ss)); ATP_i=(ATP_tot-(CaATP_i+MgATP_i)); CaATP_i:time=(Jxfer_CaATP+k_plus_CaATP*Ca_i*ATP_i-k_minus_CaATP*CaATP_i); MgATP_i:time=(Jxfer_MgATP+k_plus_MgATP*Mg_i*ATP_i-k_minus_MgATP*MgATP_i); Jxfer_CaATP=((CaATP_ss-CaATP_i)/tau_xfer_CaATP); Jxfer_MgATP=((MgATP_ss-MgATP_i)/tau_xfer_MgATP); ADP_ss=(ADP_tot-(CaADP_ss+MgADP_ss)); CaADP_ss:time=(k_plus_CaADP*Ca_ss*ADP_ss-(Jxfer_CaADP*(Ca_and_Mg_buffering_by_ATP.V_myo/Ca_and_Mg_buffering_by_ATP.V_ss)+k_minus_CaADP*CaADP_ss)); MgADP_ss:time=(k_plus_MgADP*Mg_ss*ADP_ss-(Jxfer_MgADP*(Ca_and_Mg_buffering_by_ATP.V_myo/Ca_and_Mg_buffering_by_ATP.V_ss)+k_minus_MgADP*MgADP_ss)); ADP_i=(ADP_tot-(CaADP_i+MgADP_i)); CaADP_i:time=(Jxfer_CaADP+k_plus_CaADP*Ca_i*ADP_i-k_minus_CaADP*CaADP_i); MgADP_i:time=(Jxfer_MgADP+k_plus_MgADP*Mg_i*ADP_i-k_minus_MgADP*MgADP_i); Jxfer_CaADP=((CaADP_ss-CaADP_i)/tau_xfer_CaADP); Jxfer_MgADP=((MgADP_ss-MgADP_i)/tau_xfer_MgADP); Mg_ss:time=(k_minus_MgATP*MgATP_ss+k_minus_MgADP*MgADP_ss-(k_plus_MgATP*Mg_ss*ATP_ss+k_plus_MgADP*Mg_ss*ADP_ss+Jxfer_Mg*(Ca_and_Mg_buffering_by_ATP.V_myo/Ca_and_Mg_buffering_by_ATP.V_ss))); Mg_i:time=(Jxfer_Mg+k_minus_MgATP*MgATP_i+k_minus_MgADP*MgADP_i-(k_plus_MgATP*Mg_i*ATP_i+k_plus_MgADP*Mg_i*ADP_i)); Jxfer_Mg=((Mg_ss-Mg_i)/tau_xfer_Mg); // // }