/* * Model Status * * This model was created by Penny Noble of Oxford University. * This file is known to run COR and OpenCell to reproduce the * published results. The units have been checked and they are * consistent. * * Model Structure * * ABSTRACT: We hypothesize that slow inactivation of Ca2+/calmodulin-dependent * kinase II (CaMKII) and its modulatory effect on sarcoplasmic * reticulum (SR) Ca2+ handling are important for various interval-force * (I-F) relations, in particular for the beat interval dependency * in transient alternans during the decay of post-extrasystolic * potentiation. We have developed a mathematical model of a single * cardiomyocyte to integrate various I-F relations, including * alternans, by incorporating a conceptual CaMKII kinetics model * into the SR Ca2+ handling model. Our model integrates I-F relations, * such as the beat interval-dependent twitch force duration, restitution * and potentiation, positive staircase phenomenon and alternans. * We found that CaMKII affects more or less all I-F relations, * and it is a key factor for integration of the various I-F relations * in our model. Alternans arises, in the model, out of a steep * relation between SR Ca2+ load and release, owing to SR load-dependent * changes in the releasability of Ca2+ via the ryanodine receptor. * Beat interval-dependent CaMKII activity, owing to its kinetic * properties and amplifying effect on SR Ca2+ load dependency * of Ca2+ release, replicated the beat interval dependency of * alternans, as observed experimentally. Additionally, our model * enabled reproduction of the effects of various interventions * on alternans, such as the slowing or accelerating of Ca2+ release * and/or uptake. We conclude that a slow time-dependent factor, * represented in the model by CaMKII, is important for the integration * of I-F relations, including alternans, and that our model offers * a useful tool for further analysis of the roles of integrative * Ca2+ handling in myocardial I-F relations. * * The original paper reference is cited below: * * Modulatory effect of calmodulin-dependent kinase II (CaMKII) * on sarcoplasmic reticulum Ca2+ handling and interval-force relations: * a modelling study, Gentaro Iribe, Peter Kohl and Denis Noble, * 2006, Philosophical Transactions of the Royal Society A, 364, * (1842), 1107-1133. PubMed ID: 16608699 * * model diagram * * [[Image file: iribe_2006.png]] * * Schematic diagram of the Iribe et al. cell model. */ import nsrunit; unit conversion on; // unit micrometre predefined unit per_second=1 second^(-1); // 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 arbitary = fundamental; unit microS=1E-6 kilogram^(-1)*meter^(-2)*second^3*ampere^2; unit nanoS_per_cm2=1E-5 kilogram^(-1)*meter^(-4)*second^3*ampere^2; unit microF=1E-6 kilogram^(-1)*meter^(-2)*second^4*ampere^2; unit nanoA=1E-9 ampere^1; unit nanoA_per_millimolar=1E-9 meter^3*ampere^1*mole^(-1); unit nanoA_per_millimolar4=1E-9 meter^12*ampere^1*mole^(-4); // unit millimolar predefined // unit micromolar predefined unit millimolar_per_second=1 meter^(-3)*second^(-1)*mole^1; unit per_millimolar_per_second=1 meter^3*second^(-1)*mole^(-1); unit per_millimolar2_per_second=1 meter^6*second^(-1)*mole^(-2); unit millijoule_per_mole_kelvin=.001 kilogram^1*meter^2*second^(-2)*kelvin^(-1)*mole^(-1); unit coulomb_per_mole=1 second^1*ampere^1*mole^(-1); unit per_nanocoulomb=1E9 second^(-1)*ampere^(-1); unit cm_per_second=.01 meter^1*second^(-1); unit cm2=1E-4 meter^2; // unit microlitre predefined unit N_per_mm2=1E6 kilogram^1*meter^(-1)*second^(-2); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real R millijoule_per_mole_kelvin; R=8314.472; real T kelvin; T=310; real F coulomb_per_mole; F=96485.3415; real Cm microF; Cm=9.5e-5; real v_i microlitre; v_i=1.6404e-5; real v_SR microlitre; v_SR=3.3477e-6; real Na_o millimolar; Na_o=140; real K_o millimolar; K_o=4; real Ca_o millimolar; Ca_o=2; real V(time) millivolt; when(time=time.min) V=-92.849333; real i_Na(time) nanoA; real i_K1(time) nanoA; real i_to(time) nanoA; real i_K(time) nanoA; real i_Ca_L(time) nanoA; real i_NaK(time) nanoA; real i_NaCa(time) nanoA; real i_b_Na(time) nanoA; real i_b_K(time) nanoA; real i_b_Ca(time) nanoA; real i_Stim(time) nanoA; real stim_start second; stim_start=0; real stim_end second; stim_end=1000; real stim_period second; stim_period=0.5; real stim_duration second; stim_duration=0.002; real stim_amplitude nanoA; stim_amplitude=-4; real E_Na(time) millivolt; real E_K(time) millivolt; real E_Ca(time) millivolt; real E_mh(time) millivolt; real K_i(time) millimolar; when(time=time.min) K_i=138.22; real Na_i(time) millimolar; when(time=time.min) Na_i=5.8041; real Ca_i(time) millimolar; when(time=time.min) Ca_i=9.91e-6; real g_Na microS; g_Na=2.5; real m(time) dimensionless; when(time=time.min) m=0.0013809; real h(time) dimensionless; when(time=time.min) h=0.99569; real alpha_m(time) per_second; real beta_m(time) per_second; real delta_m millivolt; delta_m=1e-5; real E0_m(time) millivolt; real alpha_h(time) per_second; real beta_h(time) per_second; real shift_h millivolt; shift_h=0; real i_Kmax nanoA; i_Kmax=1; real x(time) dimensionless; when(time=time.min) x=5.1127e-2; real alpha_x(time) per_second; real beta_x(time) per_second; real K_mk1 millimolar; K_mk1=10; real g_K1 microS; g_K1=1; real g_to microS; g_to=0.005; real s(time) dimensionless; when(time=time.min) s=0.95854; real r(time) dimensionless; when(time=time.min) r=1.5185e-8; real alpha_s(time) per_second; real beta_s(time) per_second; real i_Ca_L_Na(time) nanoA; real i_Ca_L_K(time) nanoA; real i_Ca_L_Ca(time) nanoA; real P_Ca_L_Ca nanoA_per_millimolar; P_Ca_L_Ca=0.25; real d(time) dimensionless; when(time=time.min) d=1.7908e-8; real f(time) dimensionless; when(time=time.min) f=1; real alpha_d(time) per_second; real beta_d(time) per_second; real E0_d(time) millivolt; real speed_d dimensionless; speed_d=3; real alpha_f(time) per_second; real beta_f(time) per_second; real speed_f dimensionless; speed_f=0.5; real E0_f(time) millivolt; real i_NaCa_max nanoA_per_millimolar4; i_NaCa_max=0.0005; real gamma dimensionless; gamma=0.5; real i_NaK_max nanoA; i_NaK_max=1.36; real K_mK millimolar; K_mK=1; real K_mNa millimolar; K_mNa=21.7; real g_b_Ca microS; g_b_Ca=0.00025; real g_b_K microS; g_b_K=0.0006; real g_b_Na microS; g_b_Na=0.0006; real F_CaMK(time) dimensionless; when(time=time.min) F_CaMK=1.028; real Inf_CaMK(time) dimensionless; real Tau_CaMK second; Tau_CaMK=0.8; real Cmdn_Ca(time) millimolar; when(time=time.min) Cmdn_Ca=3.9636e-6; real j_rel(time) millimolar_per_second; real K_rel(time) per_second; real F_rel(time) dimensionless; real Ca_SR(time) millimolar; when(time=time.min) Ca_SR=0.24886; real K_rel_max per_second; K_rel_max=500; real F_SRCa_RyR(time) millimolar; when(time=time.min) F_SRCa_RyR=0.25089; real Tau_SRCa_RyR second; Tau_SRCa_RyR=0.05; real N_CaMK(time) dimensionless; real gain_k1 dimensionless; gain_k1=1; real gain_k2 dimensionless; gain_k2=1; real gain_k3 dimensionless; gain_k3=1; real gain_k4 dimensionless; gain_k4=1; real k_1(time) per_second; real k_2(time) per_second; real k_3(time) per_second; real k_4 per_second; real F_1(time) dimensionless; when(time=time.min) F_1=0.5268; real F_2(time) dimensionless; when(time=time.min) F_2=8.7508e-6; real F_3(time) dimensionless; real K_leak_rate per_second; K_leak_rate=0; real j_up(time) millimolar_per_second; real V_max_f millimolar_per_second; V_max_f=0.292; real V_max_r millimolar_per_second; V_max_r=0.391; real f_b(time) dimensionless; real r_b(time) dimensionless; real Cmdn_tot millimolar; Cmdn_tot=0.02; real alpha_cmdn per_millimolar_per_second; alpha_cmdn=10000; real beta_cmdn per_second; beta_cmdn=500; real dCmdn_Ca_dtime(time) millimolar_per_second; real Trpn_Ca(time) millimolar; when(time=time.min) Trpn_Ca=2.7661e-4; real Trpn_tot millimolar; Trpn_tot=0.07; real alpha_trpn per_millimolar_per_second; alpha_trpn=80000; real beta_trpn per_second; beta_trpn=200; real Force_norm(time) dimensionless; real dTrpn_Ca_dtime(time) millimolar_per_second; real Force(time) N_per_mm2; real zeta N_per_mm2; zeta=0.1; real Force_max dimensionless; real phi_SL dimensionless; real P_1_max dimensionless; real P_2_max dimensionless; real P_3_max dimensionless; real sigma_paths dimensionless; real N_0(time) dimensionless; when(time=time.min) N_0=0.99917; real P_0(time) dimensionless; when(time=time.min) P_0=9.8593e-5; real P_1(time) dimensionless; when(time=time.min) P_1=1.3331e-4; real P_2(time) dimensionless; when(time=time.min) P_2=2.3505e-4; real P_3(time) dimensionless; when(time=time.min) P_3=1.5349e-4; real N_1(time) dimensionless; real alpha_tm(time) per_second; real beta_tm per_second; beta_tm=40; real K_tm dimensionless; real N_tm dimensionless; real SL micrometre; SL=2.15; real SL_norm dimensionless; real f_01 per_second; real f_12 per_second; real f_23 per_second; real g_01 per_second; real g_12 per_second; real g_23 per_second; real f_XB per_second; f_XB=10; real g_XB per_second; g_XB=30; // // // 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 nanoA)); V:time=((-1)*1/Cm*(i_Na+i_b_Na+i_K1+i_K+i_to+i_b_K+i_Ca_L+i_b_Ca+i_NaCa+i_NaK+i_Stim)); // E_Na=(R*T/F*ln(Na_o/Na_i)); E_K=(R*T/F*ln(K_o/K_i)); E_Ca=(.5*R*T/F*ln(Ca_o/Ca_i)); E_mh=(R*T/F*ln((Na_o+.12*K_o)/(Na_i+.12*K_i))); // i_Na=(g_Na*m^3*h*(V-E_mh)); // E0_m=(V+(41 millivolt)); alpha_m=(if (abs(E0_m) alpha_h=((20 per_second)*exp((-1)*(.125 per_millivolt)*(V+(75 millivolt)-shift_h))); beta_h=((2E3 per_second)/(1+320*exp((-1)*(.1 per_millivolt)*(V+(75 millivolt)-shift_h)))); h:time=(alpha_h*(1-h)-beta_h*h); // i_K=(i_Kmax*x*(K_i-K_o*exp((-1)*V*F/(R*T)))/(140 millimolar)); // alpha_x=((.5 per_second)*exp((.0826 per_millivolt)*(V+(50 millivolt)))/(1+exp((.057 per_millivolt)*(V+(50 millivolt))))); beta_x=((1.3 per_second)*exp((-1)*(.06 per_millivolt)*(V+(20 millivolt)))/(1+exp((-1)*(.04 per_millivolt)*(V+(20 millivolt))))); x:time=(alpha_x*(1-x)-beta_x*x); // i_K1=(g_K1*K_o/(K_o+K_mk1)*(V-E_K)/(1+exp(2*F*(V-E_K-(10 millivolt))/(R*T)))); // i_to=(g_to*s*r*(V-E_K)); // alpha_s=((.033 per_second)*exp((-1)*V/(17 millivolt))); beta_s=((33 per_second)/(1+exp((-1)*(.125 per_millivolt)*(V+(10 millivolt))))); s:time=(alpha_s*(1-s)-beta_s*s); // r:time=((333 per_second)*(1/(1+exp((-1)*(V+(4 millivolt))/(5 millivolt)))-r)); // i_Ca_L_Ca=(4*d*f*P_Ca_L_Ca*(V-(50 millivolt))*F/(R*T*(1-exp((-1)*2*(V-(50 millivolt))*F/(R*T))))*(Ca_i*exp((100 millivolt)*F/(R*T))-Ca_o*exp((-1)*2*(V-(50 millivolt))*F/(R*T)))); i_Ca_L_K=(.002*d*f*P_Ca_L_Ca*(V-(50 millivolt))*F/(R*T*(1-exp((-1)*(V-(50 millivolt))*F/(R*T))))*(K_i*exp((50 millivolt)*F/(R*T))-K_o*exp((-1)*(V-(50 millivolt))*F/(R*T)))); i_Ca_L_Na=(.01*d*f*P_Ca_L_Ca*(V-(50 millivolt))*F/(R*T*(1-exp((-1)*(V-(50 millivolt))*F/(R*T))))*(Na_i*exp((50 millivolt)*F/(R*T))-Na_o*exp((-1)*(V-(50 millivolt))*F/(R*T)))); i_Ca_L=(i_Ca_L_Ca+i_Ca_L_K+i_Ca_L_Na); // E0_d=(V+(24 millivolt)-(5 millivolt)); alpha_d=(if (abs(E0_d)<(1E-5 millivolt)) speed_d*(120 per_second) else speed_d*(30 per_millivolt_second)*E0_d/(1-exp((-1)*E0_d/(4 millivolt)))); beta_d=(if (abs(E0_d)<(1E-5 millivolt)) speed_d*(120 per_second) else speed_d*((-1)*(12 per_millivolt_second))*E0_d/(1-exp(E0_d/(10 millivolt)))); d:time=(alpha_d*(1-d)-beta_d*d); // E0_f=(V+(34 millivolt)); alpha_f=(if (abs(E0_f)<(1E-5 millivolt)) speed_f*(25 per_second) else speed_f*(6.25 per_millivolt_second)*E0_f/((-1)*1+exp(E0_f/(4 millivolt)))); beta_f=(speed_f*(50 per_second)/(1+exp((-1)*E0_f/(4 millivolt)))); f:time=(alpha_f*(1-f)-beta_f*f); // i_NaCa=(i_NaCa_max*(exp(gamma*V*F/(R*T))*Na_i^3*Ca_o-exp((gamma-1)*V*F/(R*T))*Na_o^3*Ca_i)/(1+Ca_i/(.0069 millimolar))); // i_NaK=(i_NaK_max*K_o/(K_mK+K_o)*Na_i/(K_mNa+Na_i)*1/(1+.1245*exp((-1)*.1*V*F/(R*T))+.0353*exp((-1)*V*F/(R*T)))); // i_b_Ca=(g_b_Ca*(V-E_Ca)); // i_b_K=(g_b_K*(V-E_K)); // i_b_Na=(g_b_Na*(V-E_Na)); // Inf_CaMK=(Cmdn_Ca/(5E-5 millimolar)); F_CaMK:time=((Inf_CaMK-F_CaMK)/Tau_CaMK); // N_CaMK=((F_CaMK/.7)^2); k_1=(gain_k1*((3.0625E7 per_millimolar2_per_second)*Ca_i^2-(245 per_nanocoulomb)*i_Ca_L)); k_2=(gain_k2*(450 per_second)/(1+(.36 millimolar)/Ca_SR)); k_3=(gain_k3*(1.885 per_second)*(F_SRCa_RyR/(.22 millimolar))^N_CaMK); k_4=(gain_k4*(1.8 per_second)); F_1:time=(k_3*F_3-k_4*F_1-k_1*F_1); F_2:time=(k_1*F_1-k_2*F_2); F_3=(1-(F_1+F_2)); F_rel=((F_2/(F_2+.25))^2); F_SRCa_RyR:time=((Ca_SR-F_SRCa_RyR)/Tau_SRCa_RyR); K_rel=(K_rel_max*F_SRCa_RyR/(F_SRCa_RyR+(.2 millimolar))); j_rel=((K_rel*F_rel+K_leak_rate)*(Ca_SR-Ca_i)); // f_b=((Ca_i/(2.4E-4 millimolar))^2); r_b=((Ca_SR/(1.64 millimolar))^2); j_up=((F_CaMK*V_max_f*f_b-V_max_r*r_b)/(1+f_b+r_b)); // dCmdn_Ca_dtime=(alpha_cmdn*(Cmdn_tot-Cmdn_Ca)*Ca_i-beta_cmdn*Cmdn_Ca); Cmdn_Ca:time=(alpha_cmdn*(Cmdn_tot-Cmdn_Ca)*Ca_i-beta_cmdn*Cmdn_Ca); // dTrpn_Ca_dtime=(alpha_trpn*(Trpn_tot-Trpn_Ca)*Ca_i-beta_trpn*(1+2*(1-Force_norm))/3*Trpn_Ca); Trpn_Ca:time=(alpha_trpn*(Trpn_tot-Trpn_Ca)*Ca_i-beta_trpn*(1+2*(1-Force_norm))/3*Trpn_Ca); // Ca_i:time=((-1)*(i_Ca_L_Ca+i_b_Ca-2*i_NaCa)/(2*v_i*F)-j_up+j_rel*v_SR/v_i-dCmdn_Ca_dtime-dTrpn_Ca_dtime); // Ca_SR:time=(j_up*v_i/v_SR-j_rel); // Na_i:time=((-1)*(i_Na+i_b_Na+i_Ca_L_Na+3*i_NaCa+3*i_NaK)/(v_i*F)); // K_i:time=((-1)*(i_K1+i_K+i_to+i_b_K+i_Ca_L_K-2*i_NaK)/(v_i*F)); // f_01=(3*f_XB); f_12=(10*f_XB); f_23=(7*f_XB); g_01=(g_XB*(2-SL_norm)); g_12=(2*g_XB*(2-SL_norm)); g_23=(3*g_XB*(2-SL_norm)); SL_norm=((SL-(1.7 micrometre))/(.7 micrometre)); N_tm=(3.5+2.5*SL_norm); K_tm=(1/(1+beta_trpn/alpha_trpn/((.0017 millimolar)-(9E-4 millimolar)*SL_norm))); alpha_tm=(beta_tm*(Trpn_Ca/(Trpn_tot*K_tm))^N_tm); N_0:time=(beta_tm*P_0-alpha_tm*N_0+g_01*N_1); P_0:time=((-1)*(beta_tm+f_01)*P_0+alpha_tm*N_0+g_01*P_1); P_1:time=((-1)*(beta_tm+f_12+g_01)*P_1+alpha_tm*N_1+f_01*P_0+g_12*P_2); P_2:time=((-1)*(f_23+g_12)*P_2+f_12*P_1+g_23*P_3); P_3:time=((-1)*g_23*P_3+f_23*P_2); N_1=(1-(N_0+P_0+P_1+P_2+P_3)); sigma_paths=((1 second)*g_XB*(2 second)*g_XB*(3 second)*g_XB+(1 second)*f_01*(2 second)*g_XB*(3 second)*g_XB+(1 second)*f_01*(1 second)*f_12*(3 second)*g_XB+(1 second)*f_01*(1 second)*f_12*(1 second)*f_23); P_1_max=((1 second)*f_01*(2 second)*g_XB*(3 second)*g_XB/sigma_paths); P_2_max=((1 second)*f_01*(1 second)*f_12*(3 second)*g_XB/sigma_paths); P_3_max=((1 second)*f_01*(1 second)*f_12*(1 second)*f_23/sigma_paths); Force_max=(P_1_max+2*P_2_max+3*P_3_max); phi_SL=(if ((SL>=(1.7 micrometre)) and (SL<=(2 micrometre))) (SL-(.6 micrometre))/(1.4 micrometre) else if ((SL>(2 micrometre)) and (SL<=(2.2 micrometre))) 1 else if ((SL>(2.2 micrometre)) and (SL<=(2.3 micrometre))) ((3.6 micrometre)-SL)/(1.4 micrometre) else 0); Force_norm=(phi_SL*(P_1+N_1+2*P_2+3*P_3)/Force_max); Force=(zeta*Force_norm); }