/* * Model Status * * This CellML model is a translation of the original MATLAB code * of the original published model. The CellML model runs in both * OpenCell and COR but does not yet recreate the published results * - the action potential is close but the calcium dynamics still * require some fixing. The units have been checked and they are * consistent. We will continue to curate this model. * * Model Structure * * ABSTRACT: Computational models of cardiac myocytes are important * tools for understanding ionic mechanisms of arrhythmia. This * work presents a new model of the canine epicardial myocyte that * reproduces a wide range of experimentally observed rate-dependent * behaviors in cardiac cell and tissue, including action potential * (AP) duration (APD) adaptation, restitution, and accommodation. * Model behavior depends on updated formulations for the 4-aminopyridine-sensitive * transient outward current (I(to1)), the slow component of the * delayed rectifier K(+) current (I(Ks)), the L-type Ca(2+) channel * current (I(Ca,L)), and the Na(+)-K(+) pump current (I(NaK)) * fit to data from canine ventricular myocytes. We found that * I(to1) plays a limited role in potentiating peak I(Ca,L) and * sarcoplasmic reticulum Ca(2+) release for propagated APs but * modulates the time course of APD restitution. I(Ks) plays an * important role in APD shortening at short diastolic intervals, * despite a limited role in AP repolarization at longer cycle * lengths. In addition, we found that I(Ca,L) plays a critical * role in APD accommodation and rate dependence of APD restitution. * Ca(2+) entry via I(Ca,L) at fast rate drives increased Na(+)-Ca(2+) * exchanger Ca(2+) extrusion and Na(+) entry, which in turn increases * Na(+) extrusion via outward I(NaK). APD accommodation results * from this increased outward I(NaK). Our simulation results provide * valuable insight into the mechanistic basis of rate-dependent * phenomena important for determining the heart's response to * rapid and irregular pacing rates (e.g., arrhythmia). Accurate * simulation of rate-dependent phenomena and increased understanding * of their mechanistic basis will lead to more realistic multicellular * simulations of arrhythmia and identification of molecular therapeutic * targets. * * model diagram * * [[Image file: decker_2009.png]] * * Schematic diagram of the Decker at al. canine ventricular myocyte * model (2009). * * The complete paper reference is cited below: * * Properties and ionic mechanisms of action potential adaptation, * restitution, and accommodation in canine epicardium, Keith F. * Decker, Jordi Heijman, Jonathan R. Silva, Thomas J. Hund, and * Yoram Rudy, 2009, American Journal of Physiology, 296, (4), * H1017-H1026. PubMed ID: 19168720 */ import nsrunit; unit conversion on; unit m2u=.001 dimensionless; unit ms=.001 second^1; unit per_ms=1E3 second^(-1); unit uA_per_uF=1 kilogram^1*meter^2*second^(-4)*ampere^(-1); unit mS_per_uF=1E3 second^(-1); unit uL=1E-9 meter^3; unit mV=.001 kilogram^1*meter^2*second^(-3)*ampere^(-1); unit per_mV=1E3 kilogram^(-1)*meter^(-2)*second^3*ampere^1; unit uF=1E-6 kilogram^(-1)*meter^(-2)*second^4*ampere^2; unit cm=.01 meter^1; unit cm2=1E-4 meter^2; unit J_per_kmole_K=.001 kilogram^1*meter^2*second^(-2)*kelvin^(-1)*mole^(-1); unit C_per_mole=1 second^1*ampere^1*mole^(-1); unit mM=1 meter^(-3)*mole^1; unit mM2=1 meter^(-6)*mole^2; unit mM3=1 meter^(-9)*mole^3; unit mM_per_ms=1E3 meter^(-3)*second^(-1)*mole^1; unit mM_per_mV=1E3 kilogram^(-1)*meter^(-5)*second^3*ampere^1*mole^1; unit mM4=1 meter^(-12)*mole^4; unit uF_per_cm2=.01 kilogram^(-1)*meter^(-4)*second^4*ampere^2; unit uF_mole_per_C=1E-6 kilogram^(-1)*meter^(-2)*second^3*ampere^1*mole^1; unit cm2_mole_per_C=1E-4 meter^2*second^(-1)*ampere^(-1)*mole^1; unit mM_per_uA_per_uF_per_ms=1E3 kilogram^(-1)*meter^(-5)*second^3*ampere^1*mole^1; unit mM_per_uA_per_uF_per_ms_per_ms=1E6 kilogram^(-1)*meter^(-5)*second^2*ampere^1*mole^1; unit L_per_F_ms=1 kilogram^1*meter^5*second^(-5)*ampere^(-2); unit per_ms_mV=1E6 kilogram^(-1)*meter^(-2)*second^2*ampere^1; unit mM4_uA_per_uF=1 kilogram^1*meter^(-10)*second^(-4)*ampere^(-1)*mole^4; math main { realDomain time ms; time.min=0; extern time.max; extern time.delta; real F C_per_mole; F=96487; real T kelvin; T=310; real R J_per_kmole_K; R=8314; real K_o mM; K_o=5.4; real Ca_o mM; Ca_o=1.8; real Na_o mM; Na_o=140; real Cl_o mM; Cl_o=100; real Vmyo uL; real Vnsr uL; real Vsr uL; real Vjsr uL; real Vss_sr uL; real Vss_CaL uL; real Acap cm2; real AF uF_mole_per_C; real l cm; l=0.01; real cell_geometry.a cm; cell_geometry.a=0.0011; real vcell uL; real ageo cm2; real Vm(time) mV; when(time=time.min) Vm=-87.472528; real i_Stim(time) uA_per_uF; real stim_offset ms; stim_offset=0; real stim_period ms; stim_period=1e3; real stim_duration ms; stim_duration=0.5; real stim_amplitude uA_per_uF; stim_amplitude=-80; real past(time) ms; real caiont(time) uA_per_uF; real naiont(time) uA_per_uF; real kiont(time) uA_per_uF; real clont(time) uA_per_uF; real INa(time) uA_per_uF; real ICaL(time) uA_per_uF; real IK1(time) uA_per_uF; real IKp(time) uA_per_uF; real IKs(time) uA_per_uF; real IKr(time) uA_per_uF; real IpCa(time) uA_per_uF; real ICab(time) uA_per_uF; real INaCa(time) uA_per_uF; real INaCa_ss_sr(time) uA_per_uF; real INaK(time) uA_per_uF; real Ito1(time) uA_per_uF; real Ito2(time) uA_per_uF; real IClb(time) uA_per_uF; real INaL(time) uA_per_uF; real INab(time) uA_per_uF; real gKs(time) mS_per_uF; real C1(time) dimensionless; when(time=time.min) C1=0.476653873938053; real C2(time) dimensionless; when(time=time.min) C2=0.2551771850026437; real C3(time) dimensionless; when(time=time.min) C3=0.05122852186842027; real C4(time) dimensionless; when(time=time.min) C4=0.004570874421666423; real C5(time) dimensionless; when(time=time.min) C5=0.0001529389211563687; real C6(time) dimensionless; when(time=time.min) C6=0.1328281770413747; real C7(time) dimensionless; when(time=time.min) C7=0.05333228495514583; real C8(time) dimensionless; when(time=time.min) C8=0.007137874613383642; real C9(time) dimensionless; when(time=time.min) C9=0.0003184390970637536; real C10(time) dimensionless; when(time=time.min) C10=0.01388061042363991; real C11(time) dimensionless; when(time=time.min) C11=0.003715500164470033; real C12(time) dimensionless; when(time=time.min) C12=0.0002486371465457659; real C13(time) dimensionless; when(time=time.min) C13=0.0006446803014431032; real C14(time) dimensionless; when(time=time.min) C14=8.628258026770862e-5; real C15(time) dimensionless; when(time=time.min) C15=1.122823524761588e-5; real O1(time) dimensionless; when(time=time.min) O1=1.051906959485266e-5; real O2(time) dimensionless; when(time=time.min) O2=2.372219883411999e-6; real OKs(time) dimensionless; real IKs.alpha(time) per_ms; real IKs.beta(time) per_ms; real IKs.delta(time) per_ms; real gamma(time) per_ms; real IKs.eta(time) per_ms; real IKs.theta per_ms; real omega(time) per_ms; real psi(time) per_ms; real EKs(time) mV; real Ca_i(time) mM; when(time=time.min) Ca_i=7.09945e-5; real ICaL_max(time) uA_per_uF; real PCa L_per_F_ms; PCa=1.5552e-4; real C(time) dimensionless; when(time=time.min) C=0.9999613782488198; real O(time) dimensionless; when(time=time.min) O=2.27419494597377e-5; real C_star(time) dimensionless; when(time=time.min) C_star=5.936477396599124e-11; real O_star(time) dimensionless; when(time=time.min) O_star=1.350122566369778e-15; real CI(time) dimensionless; when(time=time.min) CI=1.587938121237188e-5; real OI(time) dimensionless; when(time=time.min) OI=3.611420243201921e-10; real CI_star(time) dimensionless; when(time=time.min) CI_star=0; real OI_star(time) dimensionless; when(time=time.min) OI_star=0; real ACT_tau(time) ms; real IV_tau(time) ms; real IV_tau_star(time) ms; real ACT_infinity(time) dimensionless; real IV_infinity(time) dimensionless; real IV_infinity_star(time) dimensionless; real IV_beta_star(time) dimensionless; real IV_beta_infinity_star(time) dimensionless; real ICaL.alpha(time) per_ms; real ICaL.beta(time) per_ms; real ICaL.delta(time) per_ms; real x(time) per_ms; real y(time) per_ms; real ICaL.theta per_ms; ICaL.theta=1; real delta_I(time) per_ms; real x_star(time) per_ms; real y_star(time) per_ms; real theta_I per_ms; theta_I=0.000001; real gamma_Cai dimensionless; gamma_Cai=1; real gamma_Cao dimensionless; gamma_Cao=0.341; real Ca_ss_CaL(time) mM; when(time=time.min) Ca_ss_CaL=9.61545e-5; real g_Na mS_per_uF; g_Na=9.075; real ENa(time) mV; real m(time) dimensionless; when(time=time.min) m=0.001022252813581797; real h(time) dimensionless; when(time=time.min) h=0.9913109066867; real j(time) dimensionless; when(time=time.min) j=0.9970771239754529; real am(time) per_ms; real bm(time) per_ms; real ah(time) per_ms; real bh(time) per_ms; real aj(time) per_ms; real bj(time) per_ms; real kmnai mM; kmnai=2.6; real kmko mM; kmko=1.5; real ibarnak uA_per_uF; ibarnak=1.4; real sigma dimensionless; sigma=1; real V_half mV; V_half=-92; real INaK.phi(time) dimensionless; real fv(time) dimensionless; real PK dimensionless; real PNa(time) dimensionless; real Na_i(time) mM; when(time=time.min) Na_i=6.935575; real KmCa_act mM; KmCa_act=1.25e-4; real Vmax uA_per_uF; Vmax=4.5; real ksat dimensionless; ksat=0.32; real INaCa.eta dimensionless; INaCa.eta=0.27; real KmNai mM; KmNai=12.3; real KmNao mM; KmNao=87.5; real KmCai mM; KmCai=0.0036; real KmCao mM; KmCao=1.3; real Ca_ss_sr(time) mM; when(time=time.min) Ca_ss_sr=9.04757e-5; real Na_ss_sr(time) mM; when(time=time.min) Na_ss_sr=6.935607; real num(time) mM4_uA_per_uF; real num_ss(time) mM4_uA_per_uF; real denom_1(time) dimensionless; real denom_2(time) dimensionless; real denom_3(time) mM4; real denom_4(time) mM4; real denom_ss_1(time) dimensionless; real denom_ss_2(time) dimensionless; real denom_ss_3(time) mM4; real denom_ss_4(time) mM4; real gKp mS_per_uF; gKp=0.00276; real Kp(time) dimensionless; real EK(time) mV; real gpCa uA_per_uF; gpCa=0.0575; real KmpCa mM; KmpCa=0.5e-3; real PCab L_per_F_ms; PCab=1.995084e-7; real gamma_Ca_i dimensionless; gamma_Ca_i=1; real gamma_Ca_o dimensionless; gamma_Ca_o=0.341; real PNab L_per_F_ms; PNab=0.32e-8; real INab.phi(time) dimensionless; real gClb mS_per_uF; gClb=2.25e-4; real ECl(time) mV; real gNaL mS_per_uF; gNaL=0.0065; real mL(time) dimensionless; when(time=time.min) mL=0.001022252813581797; real hL(time) dimensionless; when(time=time.min) hL=0.3593255076983574; real amL(time) per_ms; real bmL(time) per_ms; real tau_hL ms; tau_hL=600; real hL_infinity(time) dimensionless; real prnak dimensionless; prnak=0.01833; real K_i(time) mM; when(time=time.min) K_i=145.5689; real Cl_i(time) mM; when(time=time.min) Cl_i=20.26842; real gK1 mS_per_uF; real K1(time) dimensionless; real alpha_k1(time) dimensionless; real beta_k1(time) dimensionless; real CT_Na_Cl(time) mM_per_ms; real CT_Na_Cl_max mM_per_ms; CT_Na_Cl_max=2.46108e-5; real CT_K_Cl(time) mM_per_ms; real CT_K_Cl_max mM_per_ms; CT_K_Cl_max=1.77e-5; real gKr mS_per_uF; real r(time) dimensionless; real xr(time) dimensionless; when(time=time.min) xr=1.235996442041028e-8; real xr_infinity(time) dimensionless; real tau_xr(time) ms; real gto1 mS_per_uF; gto1=0.4975; real rto1(time) dimensionless; real Ito1.a(time) dimensionless; when(time=time.min) Ito1.a=1.773318268499115e-5; real i1f(time) dimensionless; when(time=time.min) i1f=0.9979722; real i1s(time) dimensionless; when(time=time.min) i1s=0.9874435; real alpha_a(time) per_ms; real beta_a(time) per_ms; real tau_a(time) ms; real a_infinity(time) dimensionless; real alpha_i1f(time) per_ms; real beta_i1f(time) per_ms; real alpha_i1s(time) per_ms; real beta_i1s(time) per_ms; real PCl L_per_F_ms; PCl=9e-7; real zCl dimensionless; zCl=-1; real Ito2_max(time) uA_per_uF; real KCa_ito2(time) dimensionless; real kCa_ito2 mM_per_ms; kCa_ito2=0.4; real Irel(time) mM_per_ms; when(time=time.min) Irel=0.00107332; real i2f(time) dimensionless; when(time=time.min) i2f=0.9960352; real alpha_i2f(time) per_ms; real beta_i2f(time) per_ms; real i2f_infinity(time) dimensionless; real tau_i2f ms; tau_i2f=8; real rel_infinity(time) mM_per_ms; real tau_rel(time) ms; real Krel_infinity mM; Krel_infinity=1; real alpha_rel(time) mM_per_uA_per_uF_per_ms; real beta_tau(time) ms; real beta_0 ms; beta_0=4.75; real kappa mM_per_uA_per_uF_per_ms_per_ms; kappa=0.1125; real h_rel dimensionless; h_rel=8; real h_beta dimensionless; h_beta=10; real delta_beta_CaMK(time) dimensionless; real delta_beta_0 dimensionless; delta_beta_0=1; real K_beta mM; K_beta=0.28; real Krel_tau mM; Krel_tau=0.0123; real Ca_JSR(time) mM; when(time=time.min) Ca_JSR=0.917692717; real CaMK_active(time) dimensionless; real Iup(time) mM_per_ms; real kmup mM; kmup=0.00092; real delta_kmPLB(time) mM; real delta_kmPLB_bar mM; delta_kmPLB_bar=1.7e-4; real iupbar mM_per_ms; iupbar=0.004375; real delta_iupCaMK(time) dimensionless; real delta_iupCaMK_bar dimensionless; delta_iupCaMK_bar=0.75; real kmCaMK mM; kmCaMK=0.15; real Ileak(time) mM_per_ms; real nsrbar mM; nsrbar=15; real Ca_NSR(time) mM; when(time=time.min) Ca_NSR=0.929835335; real Itr(time) mM_per_ms; real tautr ms; tautr=25; real tau_diff ms; tau_diff=0.2; real tau_diff_ss ms; tau_diff_ss=2; real Idiff(time) mM_per_ms; real Idiff_ss(time) mM_per_ms; real bmyo(time) dimensionless; real bss(time) dimensionless; real bss_sr(time) dimensionless; real cmdn_bar mM; cmdn_bar=0.05; real trpn_bar mM; trpn_bar=0.07; real km_cmdn mM; km_cmdn=0.00238; real km_trpn mM; km_trpn=0.0005; real kmcsqn mM; kmcsqn=0.8; real csqnbar mM; csqnbar=10; real bcsqn(time) dimensionless; real BSRmax mM; BSRmax=0.047; real KmBSR mM; KmBSR=0.00087; real BSLmax mM; BSLmax=1.124; real KmBSL mM; KmBSL=0.0087; real Idiff_Na(time) mM_per_ms; real Cl_ss(time) mM; when(time=time.min) Cl_ss=20.26842; real Idiff_Cl(time) mM_per_ms; real Km mM; Km=0.0015; real CaMK_trap(time) dimensionless; when(time=time.min) CaMK_trap=0.0018861341; real alpha_CaMK per_ms; alpha_CaMK=0.05; real beta_CaMK per_ms; beta_CaMK=0.00068; real CaMK_0 dimensionless; CaMK_0=0.05; // // // vcell=((1E3 m2u)*3.141592653589793*cell_geometry.a*cell_geometry.a*l); ageo=(2*3.141592653589793*cell_geometry.a*cell_geometry.a+2*3.141592653589793*cell_geometry.a*l); Acap=(ageo*2); AF=((1 uF_mole_per_C)*(1 C_per_mole)*Acap/(F*(1 cm2))); Vmyo=(vcell*.678); Vsr=(vcell*.06); Vnsr=(vcell*.0552); Vjsr=(vcell*.0048); Vss_sr=(vcell*.02); Vss_CaL=(vcell*.002); // past=(floor(time/stim_period)*stim_period); i_Stim=(if (((time-past)>=stim_offset) and ((time-past)<=(stim_offset+stim_duration))) stim_amplitude else (0 uA_per_uF)); caiont=(ICaL+ICab+IpCa-2*(INaCa+INaCa_ss_sr)); naiont=(INa+3*(INaCa+INaCa_ss_sr)+3*INaK+INaL+INab); kiont=(IKr+IKs+IK1+IKp+(-1)*2*INaK+Ito1+i_Stim); clont=(IClb+Ito2); Vm:time=((-1)*(naiont+kiont+caiont+clont)); // IKs=(gKs*OKs*(Vm-EKs)); gKs=((.0826 mS_per_uF)*(1+.6/(1+((3.7999999999999995E-5 mM)/Ca_i)^1.4))); OKs=(O1+O2); C1:time=((-1)*4*IKs.alpha*C1+IKs.beta*C2); C2:time=((-1)*(3*IKs.alpha+IKs.beta+gamma)*C2+4*IKs.alpha*C1+2*IKs.beta*C3+IKs.delta*C6); C3:time=((-1)*(2*IKs.alpha+2*IKs.beta+2*gamma)*C3+3*IKs.alpha*C2+3*IKs.beta*C4+IKs.delta*C7); C4:time=((-1)*(IKs.alpha+3*IKs.beta+3*gamma)*C4+2*IKs.alpha*C3+4*IKs.beta*C5+IKs.delta*C8); C5:time=((-1)*(4*IKs.beta+4*gamma)*C5+IKs.alpha*C4+IKs.delta*C9); C6:time=((-1)*(3*IKs.alpha+IKs.delta)*C6+IKs.beta*C7+gamma*C2); C7:time=((-1)*(2*IKs.alpha+IKs.beta+gamma+IKs.delta)*C7+3*IKs.alpha*C6+2*IKs.beta*C8+2*gamma*C3+2*IKs.delta*C10); C8:time=((-1)*(IKs.alpha+2*IKs.beta+2*gamma+IKs.delta)*C8+2*IKs.alpha*C7+3*IKs.beta*C9+3*gamma*C4+2*IKs.delta*C11); C9:time=((-1)*(3*IKs.beta+3*gamma+IKs.delta)*C9+IKs.alpha*C8+4*gamma*C5+2*IKs.delta*C12); C10:time=((-1)*(2*IKs.alpha+2*IKs.delta)*C10+IKs.beta*C11+gamma*C7); C11:time=((-1)*(IKs.alpha+IKs.beta+gamma+2*IKs.delta)*C11+2*IKs.alpha*C10+2*IKs.beta*C12+2*gamma*C8+3*IKs.delta*C13); C12:time=((-1)*(2*IKs.beta+2*gamma+2*IKs.delta)*C12+IKs.alpha*C11+3*gamma*C9+3*IKs.delta*C14); C13:time=((-1)*(IKs.alpha+3*IKs.delta)*C13+IKs.beta*C14+gamma*C11); C14:time=((-1)*(IKs.beta+gamma+3*IKs.delta)*C14+IKs.alpha*C13+2*gamma*C12+4*IKs.delta*C15); C15:time=((-1)*(4*IKs.delta+IKs.theta)*C15+gamma*C14+IKs.eta*O1); O1:time=((-1)*(IKs.eta+psi)*O1+omega*O2+IKs.theta*C15); O2:time=((-1)*omega*O2+psi*O1); IKs.alpha=((.014864 per_ms)*exp(.029876999999999997*Vm*F/(R*T))); IKs.beta=((.083986 per_ms)*exp((-1)*.055461*Vm*F/(R*T))); gamma=((.014601 per_ms)*exp(.24465*Vm*F/(R*T))); IKs.delta=((.0031173000000000004 per_ms)*exp((-1)*.42625*Vm*F/(R*T))); IKs.eta=((.07732 per_ms)*exp((-1)*.064726*Vm*F/(R*T))); IKs.theta=(.08953799999999999 per_ms); omega=((.79405 per_ms)*exp((-1)*.08017400000000001*Vm*F/(R*T))); psi=((.58638 per_ms)*exp(.28206000000000003*Vm*F/(R*T))); // ICaL=(ICaL_max*(O+O_star)); ICaL_max=(PCa*4*Vm*F^2/(R*T)*(gamma_Cai*Ca_ss_CaL*exp(2*Vm*F/(R*T))-gamma_Cao*Ca_o)/(exp(2*Vm*F/(R*T))-1)); C:time=((-1)*(ICaL.alpha+ICaL.delta+y)*C+ICaL.beta*O+ICaL.theta*C_star+x*CI); O:time=((-1)*(ICaL.beta+ICaL.delta+y)*O+ICaL.alpha*C+ICaL.theta*O_star+x*OI); C_star:time=((-1)*(ICaL.alpha+ICaL.theta+y_star)*C_star+ICaL.delta*C+ICaL.beta*O_star+x_star*CI_star); O_star:time=((-1)*(ICaL.beta+ICaL.theta+y_star)*O_star+ICaL.delta*O+ICaL.alpha*C_star+x_star*OI_star); CI:time=((-1)*(ICaL.alpha+delta_I+x)*CI+y*C+theta_I*CI_star+ICaL.beta*OI); OI:time=((-1)*(ICaL.beta+delta_I+x)*OI+y*O+theta_I*OI_star+ICaL.alpha*CI); CI_star:time=((-1)*(ICaL.alpha+theta_I+x_star)*CI_star+delta_I*CI+y_star*C_star+ICaL.beta*OI_star); OI_star:time=((-1)*(ICaL.beta+theta_I+x_star)*OI_star+delta_I*OI+y_star*O_star+ICaL.alpha*CI_star); ACT_tau=((.59 ms)+(.8 ms)*exp((.052 per_mV)*(Vm+(13 mV)))/(1+exp((.132 per_mV)*(Vm+(13 mV))))); ACT_infinity=(1/(1+exp((-1)*(Vm-(13.56 mV))/(9.45 mV)))); ICaL.alpha=(ACT_infinity/ACT_tau); ICaL.beta=((1-ACT_infinity)/ACT_tau); IV_infinity=((1/(1+exp((Vm+(17.5 mV))/(3 mV)))+.25)/1.25); IV_tau=((1 ms)/(1/(24.828*(1+exp((Vm+(49.1 mV))/(10.349 mV))))+1/(30.553*(1+exp((-1)*(Vm+(.213 mV))/(10.807 mV)))))); x=(IV_infinity/IV_tau); y=((1-IV_infinity)/IV_tau); IV_infinity_star=((1/(1+exp((Vm+(17.5 mV))/(3 mV)))+1E-4)/1.0001); IV_tau_star=((1 ms)/(1/(24.828*(1+exp((Vm+(49.1 mV))/(10.349 mV))))+IV_beta_star)); IV_beta_star=(1/(IV_beta_infinity_star*(1+exp((-1)*(Vm+(.213 mV))/(10.807 mV))))); IV_beta_infinity_star=(25-17.5/(1+((.003 mM)/Ca_ss_CaL)^4)); x_star=(IV_infinity_star/IV_tau_star); y_star=((1-IV_infinity_star)/IV_tau_star); ICaL.delta=((3 per_ms)/(1+((.003 mM)/Ca_ss_CaL)^4)); delta_I=(theta_I*x*y_star*ICaL.delta/(y*x_star*ICaL.theta)); // INa=(g_Na*m^3*h*j*(Vm-ENa)); // am=((.32 per_ms_mV)*(Vm+(47.13 mV))/(1-exp((-1)*(.1 per_mV)*(Vm+(47.13 mV))))); bm=((.08 per_ms)*exp((-1)*Vm/(11 mV))); m:time=(am*(1-m)-bm*m); // ah=(if (Vm>=((-1)*(40 mV))) (0 per_ms) else (.135 per_ms)*exp(((80 mV)+Vm)/((-1)*(6.8 mV)))); bh=(if (Vm>=((-1)*(40 mV))) (1 per_ms)/(.13*(1+exp((Vm+(10.66 mV))/((-1)*(11.1 mV))))) else (3.56 per_ms)*exp((.079 per_mV)*Vm)+(3.1E5 per_ms)*exp((.35 per_mV)*Vm)); h:time=(ah*(1-h)-bh*h); // aj=(if (Vm>=((-1)*(40 mV))) (0 per_ms) else ((-1)*(127140.00000000001 per_ms_mV)*exp((.2444 per_mV)*Vm)-(6.947999999999999E-5 per_ms_mV)*exp((-1)*(.04391 per_mV)*Vm))*(Vm+(37.78 mV))/(1+exp((.311 per_mV)*(Vm+(79.23 mV))))); bj=(if (Vm>=((-1)*(40 mV))) (.3 per_ms)*exp((-1)*(2.535E-7 per_mV)*Vm)/(1+exp((-1)*(.1 per_mV)*(Vm+(32 mV)))) else (.1212 per_ms)*exp((-1)*(.01052 per_mV)*Vm)/(1+exp((-1)*(.1378 per_mV)*(Vm+(40.14 mV))))); j:time=(aj*(1-j)-bj*j); // INaK=(ibarnak*fv*PK*PNa); INaK.phi=(sigma*(Vm-V_half)*F/(R*T)); fv=(1/(1+exp((-1)*INaK.phi))); PK=(K_o/(K_o+kmko)); PNa=((Na_i/(Na_i+kmnai))^3); // num=(.8*Vmax*(Na_i^3*Ca_o*exp(INaCa.eta*Vm*F/(R*T))-Na_o^3*Ca_i*exp((INaCa.eta-1)*Vm*F/(R*T)))); denom_1=(1+(KmCa_act/Ca_i)^2); denom_2=(1+ksat*exp((INaCa.eta-1)*Vm*F/(R*T))); denom_3=(KmCao*Na_i^3+KmNao^3*Ca_i+KmNai^3*Ca_o*(1+Ca_i/KmCai)); denom_4=(KmCai*Na_o^3*(1+(Na_i/KmNai)^3)+Na_i^3*Ca_o+Na_o^3*Ca_i); num_ss=(.2*Vmax*(Na_ss_sr^3*Ca_o*exp(INaCa.eta*Vm*F/(R*T))-Na_o^3*Ca_ss_sr*exp((INaCa.eta-1)*Vm*F/(R*T)))); denom_ss_1=(1+(KmCa_act/Ca_ss_sr)^2); denom_ss_2=(1+ksat*exp((INaCa.eta-1)*Vm*F/(R*T))); denom_ss_3=(KmCao*Na_ss_sr^3+KmNao^3*Ca_ss_sr+KmNai^3*Ca_o*(1+Ca_ss_sr/KmCai)); denom_ss_4=(KmCai*Na_o^3*(1+(Na_ss_sr/KmNai)^3)+Na_ss_sr^3*Ca_o+Na_o^3*Ca_ss_sr); INaCa=(num/(denom_1*denom_2*(denom_3+denom_4))); INaCa_ss_sr=(num_ss/(denom_ss_1*denom_ss_2*(denom_ss_3+denom_ss_4))); // IKp=(gKp*Kp*(Vm-EK)); Kp=(1/(1+exp(((7.488 mV)-Vm)/(5.98 mV)))); // IpCa=(gpCa*Ca_i/(KmpCa+Ca_i)); // ICab=(PCab*4*Vm*F^2/(R*T)*(gamma_Ca_i*Ca_i*exp(2*Vm*F/(R*T))-gamma_Ca_o*Ca_o)/(exp(2*Vm*F/(R*T))-1)); // INab.phi=(F*Vm/(R*T)); INab=(F*PNab*INab.phi*(Na_i*exp(INab.phi)-Na_o)/(exp(INab.phi)-1)); // IClb=(gClb*(Vm-ECl)); // INaL=(gNaL*mL^3*hL*(Vm-ENa)); // amL=((.32 per_ms_mV)*(Vm+(47.13 mV))/(1-exp((-1)*(.1 per_mV)*(Vm+(47.13 mV))))); bmL=((.08 per_ms)*exp((-1)*Vm/(11 mV))); mL:time=(amL*(1-mL)-bmL*mL); // hL_infinity=(1/(1+exp((Vm+(91 mV))/(6.1 mV)))); hL:time=((hL_infinity-hL)/tau_hL); // ENa=(R*T/F*ln(Na_o/Na_i)); EK=(R*T/F*ln(K_o/K_i)); EKs=(R*T/F*ln((K_o+prnak*Na_o)/(K_i+prnak*Na_i))); ECl=((-1)*R*T/F*ln(Cl_o/Cl_i)); // IK1=(gK1*K1*(Vm-EK)); gK1=((.5 mS_per_uF)*sqrt(K_o/(5.4 mM))); // alpha_k1=(1.02/(1+exp((.2385 per_mV)*(Vm-EK-(59.215 mV))))); beta_k1=((.49124*exp((.08032 per_mV)*(Vm-EK+(5.476 mV)))+exp((.06175 per_mV)*(Vm-EK-(594.31 mV))))/(1+exp((-1)*(.5143 per_mV)*(Vm-EK+(4.753 mV))))); K1=(alpha_k1/(alpha_k1+beta_k1)); // CT_Na_Cl=(CT_Na_Cl_max*(ENa-ECl)^4/((ENa-ECl)^4+(87.8251 mV)^4)); // CT_K_Cl=(CT_K_Cl_max*(EK-ECl)/(EK+(87.8251 mV)-ECl)); // gKr=((.0138542 mS_per_uF)*sqrt(K_o/(5.4 mM))); IKr=(gKr*xr*r*(Vm-EK)); // xr_infinity=(1/(1+exp((-1)*(Vm+(10.085 mV))/(4.25 mV)))); tau_xr=((1 ms)/((6E-4 per_mV)*(Vm-(1.7384 mV))/(1-exp((-1)*(.136 per_mV)*(Vm-(1.7384 mV))))+(3E-4 per_mV)*(Vm+(38.3608 mV))/(exp((.1522 per_mV)*(Vm+(38.3608 mV)))-1))); xr:time=((xr_infinity-xr)/tau_xr); // r=(1/(1+exp((Vm+(10 mV))/(15.4 mV)))); // Ito1=(gto1*Ito1.a^3*i1f*i1s*rto1*(Vm-EK)); rto1=exp(Vm/(550 mV)); // alpha_a=((1 per_ms)/(1.2089*(1+exp((Vm-(18.4099 mV))/((-1)*(29.3814 mV)))))); beta_a=((3.5 per_ms)/(1+exp((Vm+(100 mV))/(29.3814 mV)))); tau_a=(1/(alpha_a+beta_a)); a_infinity=(1/(1+exp((Vm+(9.437 mV))/((-1)*(7.133 mV))))); Ito1.a:time=((a_infinity-Ito1.a)/tau_a); // beta_i1f=((1 per_ms)/(9.7953*(1+exp((Vm+(19 mV))/((-1)*(9 mV)))))); alpha_i1f=((.025 per_ms)/(1+exp((Vm+(58 mV))/(5 mV)))); i1f:time=(alpha_i1f*(1-i1f)-beta_i1f*i1f); // beta_i1s=((1 per_ms)/(9.7953*(1+exp((Vm+(19 mV))/((-1)*(9 mV)))))); alpha_i1s=((1 per_ms)/(250*(1+exp((Vm+(60 mV))/(5 mV))))); i1s:time=(alpha_i1s*(1-i1s)-beta_i1s*i1s); // Ito2=(Ito2_max*i2f*KCa_ito2); Ito2_max=(PCl*zCl^2*Vm*F^2/(R*T)*(Cl_i-Cl_o*exp(Vm*F/(R*T)))/(1-exp(Vm*F/(R*T)))); KCa_ito2=(1-1/(1+(Irel/kCa_ito2)^2)); // i2f:time=((i2f_infinity-i2f)/tau_i2f); i2f_infinity=(alpha_i2f/(alpha_i2f+beta_i2f)); beta_i2f=((1 per_ms)/(5*(1+exp((Vm+(19 mV))/((-1)*(9 mV)))))); alpha_i2f=((.025 per_ms)/(1+exp((Vm+(58 mV))/(5 mV)))); // alpha_rel=(beta_tau*kappa); beta_tau=(beta_0*(1+delta_beta_CaMK)); delta_beta_CaMK=(delta_beta_0/(1+(K_beta/((1 mM)*CaMK_active))^h_beta)); tau_rel=(beta_tau/(1+Krel_tau/Ca_JSR)); rel_infinity=(ICaL*alpha_rel/(1+(Krel_infinity/Ca_JSR)^h_rel)); Irel:time=((-1)*(rel_infinity+Irel)/tau_rel); // Iup=((delta_iupCaMK+1)*iupbar*Ca_i/(Ca_i+kmup-delta_kmPLB)); delta_iupCaMK=(delta_iupCaMK_bar*CaMK_active*(1 mM)/(kmCaMK+CaMK_active*(1 mM))); delta_kmPLB=(delta_kmPLB_bar*CaMK_active*(1 mM)/(kmCaMK+CaMK_active*(1 mM))); // Ileak=((.004375 mM_per_ms)/nsrbar*Ca_NSR); // Itr=((Ca_NSR-Ca_JSR)/tautr); // Idiff=((Ca_ss_sr-Ca_i)/tau_diff); Idiff_ss=((Ca_ss_sr-Ca_ss_CaL)/tau_diff_ss); Ca_i:time=(bmyo*((-1)*(ICab+IpCa-2*INaCa)*AF/(Vmyo*2)+(Ileak-Iup)*Vnsr/Vmyo+Idiff*Vss_CaL/Vmyo)); bmyo=(1/(1+cmdn_bar*km_cmdn/(Ca_i+km_cmdn)^2+km_trpn*trpn_bar/(Ca_i+km_trpn)^2)); Ca_ss_sr:time=(bss_sr*((-1)*(Idiff+Idiff_ss-(2*INaCa_ss_sr*AF/(2*Vss_sr)+Irel*Vjsr/Vss_sr)))); bss_sr=(1/(1+BSRmax*KmBSR/(KmBSR+Ca_ss_sr)^2+BSLmax*KmBSL/(KmBSL+Ca_ss_sr)^2)); Ca_ss_CaL:time=(bss*((-1)*(ICaL*AF/(2*Vss_CaL)-Idiff_ss*Vss_sr/Vss_CaL))); bss=(1/(1+BSRmax*KmBSR/(KmBSR+Ca_ss_CaL)^2+BSLmax*KmBSL/(KmBSL+Ca_ss_CaL)^2)); Ca_NSR:time=(Iup-(Ileak+Itr*Vjsr/Vnsr)); Ca_JSR:time=(bcsqn*(Itr-Irel)); bcsqn=(1/(1+kmcsqn*csqnbar/(Ca_JSR+kmcsqn)^2)); // Idiff_Na=((Na_ss_sr-Na_i)/tau_diff); Na_i:time=((-1)*((3*INaCa+3*INaK+INa+INaL+INab)*AF/Vmyo-(CT_Na_Cl+Idiff_Na*Vss_sr/Vmyo))); Na_ss_sr:time=((-1)*(3*INaCa_ss_sr*AF/Vss_sr+Idiff_Na)); // Idiff_Cl=((Cl_ss-Cl_i)/tau_diff); Cl_i:time=((-1)*(IClb*AF/((-1)*1*Vmyo)-(CT_Na_Cl+CT_K_Cl+Idiff_Cl*Vss_sr/Vmyo))); Cl_ss:time=((-1)*(Ito2*AF/((-1)*1*Vss_sr)+Idiff_Cl)); // K_i:time=((-1)*((IKs+IKr+IK1+Ito1+IKp+i_Stim-2*INaK)*AF/Vmyo-CT_K_Cl)); // CaMK_trap:time=(alpha_CaMK*CaMK_active*(CaMK_active-CaMK_trap)-beta_CaMK*CaMK_trap); CaMK_active=(CaMK_0*(1-CaMK_trap)/(1+Km/Ca_ss_sr)+CaMK_trap); }