/* * Modelling the Ionic Mechanisms Underlying Brugada Syndrome * * Model Status * * This model is valid CellML but can not be integrated. * * Model Structure * * Of the 300,000 sudden deaths that occur in America each year, * 5 to 12 percent are due to polymorphic ventricular tachycardia * (VT) and ventricular fibrillation (VF) developing in patients * with structurally normal hearts. About half of these cases are * attributed to the Brugada syndrome, which is characterised by * an ST-segment elevation in V1 through V3 and a rapid VT that * can degenerate into VF. The disease has been linked to mutations * in the SCN5A gene, which encodes the alpha subunit of the cardiac * sodium channel. This temperature dependent mutation appears * to change the gating kinetics of the sodium channel, such that * the net outward current is augmented during the early phases * of the right ventricular action potential. * * In their 1999 study, Dumaine et al. tested this temperature * dependence hypothesis. They studied cardiac action potentials * by using a modified version of the Luo-Rudy II model. The modification * involved adding a transient outward potassium current (Ito) * to the original model, and reducing the conductance of the L-type * calcium channel by 20 to 50 percent. For a diagram of the model, * please see the figure below. * * The results of their study showed that this mutation is only * expressed at physiological temperatures. This explained why * the mutation phenotype had not been observed in previous experiments * which had been carried out at room temperature. Their findings * also suggest that some patients may be more at risk during febrile * states when their body temperature is elevated. * * The complete original paper reference is cited below: * * Ionic Mechanisms Responsible for the Electrocardiographic Phenotype * of the Brugada Syndrome Are Temperature Dependent, Robert Dumaine, * Jeffrey A. Towbin, Pedro Brugada, Matteo Vatta, Dmitri V. Nesterenko, * Vladislav V. Nesterenko, Josep Brugada, Ramon Brugada, and Charles * Antzelevitch, 1999, Circulation Research , 85, 803-809. PubMed * ID: 10532948 * * cell diagram * * [[Image file: dumaine_1999.png]] * * A schematic diagram describing the ionic currents, pumps and * exchangers that are captured in the Dumaine et al. 1999 model. * The intracellular compartment is the sarcoplasmic reticulum * (SR), which is divided into the two subcompartments, the network * SR (NSR) and the junctional SR (JSR). Ca2+ buffers are present * in both the cytoplasm and the JSR. */ import nsrunit; // Warning: unit conversion turned off due to unit errors in 19 equation(s) unit conversion off; // unit millisecond predefined unit per_millisecond=1E3 second^(-1); // unit millivolt predefined unit per_millivolt=1E3 kilogram^(-1)*meter^(-2)*second^3*ampere^1; unit per_millivolt_millisecond=1E6 kilogram^(-1)*meter^(-2)*second^2*ampere^1; unit milliS_per_microF=1 second^(-1); unit milliS_per_cm2=10 kilogram^(-1)*meter^(-4)*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 microA_per_microF=1 kilogram^1*meter^2*second^(-4)*ampere^(-1); unit millimolar_per_millisecond=1E3 meter^(-3)*second^(-1)*mole^1; // unit millimolar predefined // unit micromolar predefined unit joule_per_kilomole_kelvin=.001 kilogram^1*meter^2*second^(-2)*kelvin^(-1)*mole^(-1); unit coulomb_per_mole=1 second^1*ampere^1*mole^(-1); unit cm_per_second=.01 meter^1*second^(-1); unit mm2=1E-6 meter^2; unit micro_litre=1E-9 meter^3; math main { //Warning: the following variables were set 'extern' or given // an initial value of '0' because the model would otherwise be // underdetermined: z, y, m, h, j, d, f, X, delta_Ca_i2, calcium_overload, // Ca_JSR, Ca_foot, R_A_V, V_myo, V_cleft, V_JSR, V_NSR //Warning: the following variables had initial values which were // suppressed because the model would otherwise be overdetermined: // g_K realDomain time millisecond; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; when(time=time.min) V=-84.624; real R joule_per_kilomole_kelvin; R=8314.0; real T kelvin; T=310.0; real F coulomb_per_mole; F=96500.0; real Cm microF; Cm=1.0; real I_st microA_per_microF; I_st=-100.0; real i_Na(time) microA_per_microF; real i_Ca_L(time) microA_per_microF; real i_K(time) microA_per_microF; real i_NaCa(time) microA_per_microF; real i_K1(time) microA_per_microF; real i_Kp(time) microA_per_microF; real i_p_Ca(time) microA_per_microF; real i_Na_b(time) microA_per_microF; real i_Ca_b(time) microA_per_microF; real i_NaK(time) microA_per_microF; real i_ns_Ca(time) microA_per_microF; real i_to(time) microA_per_microF; real g_to milliS_per_microF; g_to=0.5; real R_to(time) dimensionless; real E_K(time) millivolt; real z(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) z=0; real y(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) y=0; real alpha_z(time) per_millisecond; real beta_z(time) per_millisecond; real alpha_y(time) per_millisecond; real beta_y(time) per_millisecond; real E_Na(time) millivolt; real g_Na milliS_per_microF; g_Na=16.0; real Nai(time) millimolar; when(time=time.min) Nai=10.0; real Nao millimolar; Nao=140.0; real m(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) m=0; real h(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) h=0; real j(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) j=0; real alpha_m(time) per_millisecond; real beta_m(time) per_millisecond; real alpha_h(time) per_millisecond; real beta_h(time) per_millisecond; real alpha_j(time) per_millisecond; real beta_j(time) per_millisecond; real i_CaCa(time) microA_per_microF; real i_CaK(time) microA_per_microF; real i_CaNa(time) microA_per_microF; real gamma_Nai dimensionless; gamma_Nai=0.75; real gamma_Nao dimensionless; gamma_Nao=0.75; real gamma_Ki dimensionless; gamma_Ki=0.75; real gamma_Ko dimensionless; gamma_Ko=0.75; real I_CaCa(time) microA_per_microF; real I_CaK(time) microA_per_microF; real I_CaNa(time) microA_per_microF; real P_Ca cm_per_second; P_Ca=0.00054; real P_Na cm_per_second; P_Na=0.000000675; real P_K cm_per_second; P_K=0.000000193; real gamma_Cai dimensionless; gamma_Cai=1.0; real gamma_Cao dimensionless; gamma_Cao=0.34; real Cai(time) micromolar; when(time=time.min) Cai=0.12; real Cao millimolar; Cao=1.8; real Ko(time) millimolar; when(time=time.min) Ko=5.4; real Ki(time) millimolar; when(time=time.min) Ki=145.0; real d(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) d=0; real f(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) f=0; real f_Ca(time) dimensionless; real alpha_d(time) per_millisecond; real beta_d(time) per_millisecond; real d_infinity(time) dimensionless; real tau_d(time) millisecond; real alpha_f(time) per_millisecond; real beta_f(time) per_millisecond; real f_infinity(time) dimensionless; real tau_f(time) millisecond; real Km_Ca micromolar; Km_Ca=0.6; real g_K(time) milliS_per_microF; //Warning: CellML initial value suppressed to prevent overdetermining model. Original initial value: g_K=0.282; real PR_NaK dimensionless; PR_NaK=0.01833; real X(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) X=0; real Xi(time) dimensionless; real alpha_X(time) per_millisecond; real beta_X(time) per_millisecond; real E_K1(time) millivolt; real g_K1(time) milliS_per_cm2; real K1_infinity(time) dimensionless; real alpha_K1(time) per_millisecond; real beta_K1(time) per_millisecond; real E_Kp(time) millivolt; real g_Kp milliS_per_microF; g_Kp=0.0183; real Kp(time) dimensionless; real K_mpCa micromolar; K_mpCa=0.5; real I_pCa microA_per_microF; I_pCa=1.15; real g_Nab milliS_per_microF; g_Nab=0.00141; real E_NaN(time) millivolt; real g_Cab milliS_per_microF; g_Cab=0.003016; real E_CaN(time) millivolt; real I_NaK microA_per_microF; I_NaK=1.5; real f_NaK(time) dimensionless; real K_mNai millimolar; K_mNai=10.0; real K_mKo millimolar; K_mKo=1.5; real sigma dimensionless; real i_ns_Na(time) microA_per_microF; real i_ns_K(time) microA_per_microF; real P_ns_Ca cm_per_second; P_ns_Ca=1.75E-7; real I_ns_Na(time) microA_per_microF; real I_ns_K(time) microA_per_microF; real K_m_ns_Ca micromolar; K_m_ns_Ca=1.2; real K_NaCa microA_per_microF; K_NaCa=2000.0; real K_mNa millimolar; K_mNa=87.5; real K_mCa millimolar; K_mCa=1.38; real K_sat dimensionless; K_sat=0.1; real eta dimensionless; eta=0.35; real K_mTn micromolar; K_mTn=0.5; real K_mCMDN micromolar; K_mCMDN=2.38; real Tn_max micromolar; Tn_max=70.0; real CMDN_max micromolar; CMDN_max=50.0; real Tn_buff(time) micromolar; real CMDN_buff(time) micromolar; real i_rel(time) millimolar_per_millisecond; real i_up(time) millimolar_per_millisecond; real i_leak(time) millimolar_per_millisecond; real i_tr(time) millimolar_per_millisecond; real G_rel(time) per_millisecond; real G_rel_max(time) per_millisecond; real tau_on millisecond; tau_on=2.0; real tau_off millisecond; tau_off=2.0; real tau_tr millisecond; tau_tr=180.0; real t millisecond; t=0.0; real K_mrel micromolar; K_mrel=0.8; extern real delta_Ca_i2 micromolar; real delta_Ca_ith micromolar; delta_Ca_ith=0.18; real CSQN_buff(time) millimolar; real CSQN_max millimolar; CSQN_max=10.0; real CSQN_th millimolar; CSQN_th=0.7; real K_mCSQN millimolar; K_mCSQN=0.8; real K_mup micromolar; K_mup=0.92; real K_leak per_millisecond; real I_up millimolar_per_millisecond; I_up=0.005; real Ca_NSR_max millimolar; Ca_NSR_max=0.15; extern real calcium_overload dimensionless; real Ca_JSR(time) millimolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) Ca_JSR=0; real Ca_NSR(time) millimolar; when(time=time.min) Ca_NSR=15.0; real Ca_foot(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) Ca_foot=0; real A_cap mm2; A_cap=0.000153; extern real R_A_V dimensionless; extern real V_myo micro_litre; extern real V_cleft micro_litre; extern real V_JSR micro_litre; extern real V_NSR micro_litre; // // V:time=((-1)*(1/Cm)*(i_Na+i_Ca_L+i_K+i_K1+i_Kp+i_NaCa+i_p_Ca+i_Na_b+i_Ca_b+i_NaK+i_ns_Ca+i_to+I_st)); // i_to=(g_to*z^3*y*R_to*(V-E_K)); R_to=exp(V/(100 millivolt)); // z:time=(alpha_z*(1-z)-beta_z*z); alpha_z=((10 per_millisecond)*exp((V-(40 millivolt))/(25 millivolt))/(1+exp((V-(40 millivolt))/(25 millivolt)))); beta_z=((10 per_millisecond)*exp((-1)*((V+(90 millivolt))/(25 millivolt)))/(1+exp((-1)*((V+(90 millivolt))/(25 millivolt))))); // y:time=(alpha_y*(1-y)-beta_y*y); alpha_y=((.015 per_millisecond)/(1+exp((V+(60 millivolt))/(5 millivolt)))); beta_y=((.1 per_millisecond)*exp((V+(25 millivolt))/(5 millivolt))/(1+exp((V+(25 millivolt))/(5 millivolt)))); // i_Na=(g_Na*m^3*h*j*(V-E_Na)); E_Na=(R*T/F*ln(Nao/Nai)); // alpha_m=((.32 per_millivolt_millisecond)*(V+(47.13 millivolt))/(1-exp(((-0.1 per_millivolt))*(V+(47.13 millivolt))))); beta_m=((.08 per_millisecond)*exp((-1)*V/(11 millivolt))); m:time=(alpha_m*(1-m)-beta_m*m); // alpha_h=(if (V<((-40 millivolt))) (.135 per_millisecond)*exp(((80 millivolt)+V)/((-6.8 millivolt))) else (0 per_millisecond)); beta_h=(if (V<((-40 millivolt))) (3.56 per_millisecond)*exp((.079 millivolt)*V)+(3.1E5 per_millisecond)*exp((.35 per_millivolt)*V) else 1/((.13 millisecond)*(1+exp((V+(10.66 millivolt))/((-11.1 millivolt)))))); h:time=(alpha_h*(1-h)-beta_h*h); // alpha_j=(if (V<((-40 millivolt))) (((-127140 per_millivolt_millisecond))*exp((.2444 per_millivolt)*V)-(3.474E-5 per_millivolt_millisecond)*exp(((-0.04391 per_millivolt))*V))*((V+(37.78 millivolt))/(1+exp((.311 per_millivolt)*(V+(79.23 millivolt))))) else (0 per_millisecond)); beta_j=(if (V<((-40 millivolt))) (.1212 per_millisecond)*exp(((-0.01052 per_millivolt))*V)/(1+exp(((-0.1378 per_millivolt))*(V+(40.14 millivolt)))) else (.3 per_millisecond)*exp(((-2.535E-7 per_millivolt))*V)/(1+exp(((-0.1 per_millivolt))*(V+(32 millivolt))))); j:time=(alpha_j*(1-j)-beta_j*j); // i_CaCa=(d*f*f_Ca*I_CaCa); i_CaNa=(d*f*f_Ca*I_CaNa); i_CaK=(d*f*f_Ca*I_CaK); I_CaCa=(P_Ca*2^2*(V*F^2/(R*T))*((gamma_Cai*Cai*exp(2*V*F/(R*T))-gamma_Cao*Cao)/(exp(2*V*F/(R*T))-1))); I_CaNa=(P_Na*1^2*(V*F^2/(R*T))*((gamma_Nai*Nai*exp(1*V*F/(R*T))-gamma_Nao*Nao)/(exp(1*V*F/(R*T))-1))); I_CaK=(P_K*1^2*(V*F^2/(R*T))*((gamma_Ki*Ki*exp(1*V*F/(R*T))-gamma_Ko*Ko)/(exp(1*V*F/(R*T))-1))); i_Ca_L=(i_CaCa+i_CaK+i_CaNa); // alpha_d=(d_infinity/tau_d); d_infinity=(1/(1+exp((-1)*((V+(10 millivolt))/(6.24 millivolt))))); tau_d=(d_infinity*((1-exp((-1)*((V+(10 millivolt))/(6.24 millivolt))))/((.035 per_millivolt_millisecond)*(V+(10 millivolt))))); beta_d=((1-d_infinity)/tau_d); d:time=(alpha_d*(1-d)-beta_d*d); // alpha_f=(f_infinity/tau_f); f_infinity=(1/(1+exp((V+(35.06 millivolt))/(8.6 millivolt)))+.6/(1+exp(((50 millivolt)-V)/(20 millivolt)))); tau_f=((1 millisecond)/(.0197*exp((-1)*((.0337 per_millivolt)*(V+(10 millivolt)))^2)+.02)); beta_f=((1-f_infinity)/tau_f); f:time=(alpha_f*(1-f)-beta_f*f); // f_Ca=(1/(1+(Cai/Km_Ca)^2)); // g_K=((.282 milliS_per_cm2)*sqrt(Ko/(5.4 millimolar))); E_K=(R*T/F*ln((Ko+PR_NaK*Nao)/(Ki+PR_NaK*Nai))); i_K=(g_K*X^2*Xi*(V-E_K)); // alpha_X=((7.19E-5 per_millivolt_millisecond)*(V+(30 millivolt))/(1-exp((-0.148)*(V+(30 millivolt))))); beta_X=((1.31E-4 per_millivolt_millisecond)*(V+(30 millivolt))/((-1)+exp(.0687*(V+(30 millivolt))))); X:time=(alpha_X*(1-X)-beta_X*X); // Xi=(1/(1+exp((V-(56.26 millivolt))/(32.1 millivolt)))); // g_K1=((.75 milliS_per_microF)*sqrt(Ko/(5.4 millimolar))); E_K1=(R*T/F*ln(Ko/Ki)); i_K1=(g_K1*K1_infinity*(V-E_K1)); // alpha_K1=((1.02 per_millisecond)/(1+exp((.2385 per_millivolt)*(V-E_K1-(59.215 millivolt))))); beta_K1=(((.49124 per_millisecond)*exp(.08032*(V+(5.476 millivolt)-E_K1))+exp(.06175*(V-(E_K1+(594.31 millivolt)))))/(1+exp(((-0.5143 per_millivolt))*(V-(E_K1+(4.753 millivolt)))))); K1_infinity=(alpha_K1/(alpha_K1+beta_K1)); // E_Kp=E_K1; Kp=(1/(1+exp(((7.488 millivolt)-V)/(5.98 millivolt)))); i_Kp=(g_Kp*Kp*(V-E_Kp)); // i_p_Ca=(I_pCa*(Cai/(K_mpCa+Cai))); // E_NaN=E_Na; i_Na_b=(g_Nab*(V-E_NaN)); // E_CaN=(R*T/(2*F)*ln(Cao/Cai)); i_Ca_b=(g_Cab*(V-E_CaN)); // f_NaK=(1/(1+.1245*exp((-0.1)*(V*F/(R*T)))+.0365*sigma*exp((-1)*(V*F/(R*T))))); sigma=(1/7*(exp(Nao/67.3)-1)); i_NaK=(I_NaK*f_NaK*(1/(1+(K_mNai/Nai)^1.5))*(Ko/(Ko+K_mKo))); // i_ns_Na=(I_ns_Na*(1/(1+(K_m_ns_Ca/Cai)^3))); i_ns_K=(I_ns_K*(1/(1+(K_m_ns_Ca/Cai)^3))); i_ns_Ca=(i_ns_Na+i_ns_K); I_ns_Na=(P_ns_Ca*1^2*(V*F^2/(R*T))*((gamma_Nai*Nai*exp(1*V*F/(R*T))-gamma_Nao*Nao)/(exp(1*V*F/(R*T))-1))); I_ns_K=(P_ns_Ca*1^2*(V*F^2/(R*T))*((gamma_Ki*Ki*exp(1*V*F/(R*T))-gamma_Ko*Ko)/(exp(1*V*F/(R*T))-1))); // i_NaCa=(K_NaCa*(1/(K_mNa^3+Nao^3))*(1/(K_mCa+Cao))*(1/(1+K_sat*exp((eta-1)*V*(F/(R*T)))))*(exp(eta*V*(F/(R*T)))*Nai^3*Cao-exp((eta-1)*V*(F/(R*T)))*Nao^3*Cai)); // Tn_buff=(Tn_max*(Cai/(Cai+K_mTn))); CMDN_buff=(CMDN_max*(Cai/(Cai+K_mCMDN))); // i_rel=(G_rel*(Ca_JSR-Cai)); G_rel=(if (calcium_overload=0) G_rel_max*((delta_Ca_i2-delta_Ca_ith)/(K_mrel+delta_Ca_i2-delta_Ca_ith))*(1-exp((-1)*(t/tau_on)))*exp((-1)*(t/tau_off)) else G_rel_max*(1-exp((-1)*(t/tau_on)))*exp((-1)*(t/tau_off))); G_rel_max=(if (calcium_overload=0) if (delta_Ca_i2 Nai:time=((-1)*(i_Na+i_CaNa+i_Na_b+i_ns_Na+i_NaCa*3+i_NaK*3)*(A_cap/(V_myo*F))); Cai:time=((i_CaCa+i_p_Ca+i_Ca_b-i_NaCa)*(A_cap/(2*V_myo*F))+i_rel*(V_JSR/V_myo)+(i_leak-i_up)*(V_NSR/V_myo)); Ki:time=((-1)*(i_CaK+i_K+i_K1+i_Kp+i_ns_K+(-1)*(i_NaK*2))*(A_cap/(V_myo*F))); Ko:time=((i_CaK+i_K+i_K1+i_Kp+i_ns_K+(-1)*(i_NaK*2))*(A_cap/(V_cleft*F))); Ca_JSR:time=((-1)*(i_rel-i_tr*(V_NSR/V_JSR))); Ca_NSR:time=((-1)*(i_leak+i_tr-i_up)); Ca_foot:time=((-1)*i_CaCa*(A_cap/(2*V_myo*F))*R_A_V); }