/* * Mathematical simulations of ligand-gated and cell-type specific * effects on the action potential of human atrium * * Model Status * * This CellML model is known to run in PCEnv and COR to recreate * the published results. The units have been checked and are consistent. * * Model Structure * * ABSTRACT: In the mammalian heart, myocytes and fibroblasts can * communicate via gap junction, or connexin-mediated current flow. * Some of the effects of this electrotonic coupling on the action * potential waveform of the human ventricular myocyte have been * analyzed in detail. The present study employs a recently developed * mathematical model of the human atrial myocyte to investigate * the consequences of this heterogeneous cell-cell interaction * on the action potential of the human atrium. Two independent * physiological processes which alter the physiology of the human * atrium have been studied. i) The effects of the autonomic transmitter * acetylcholine on the atrial action potential have been investigated * by inclusion of a time-independent, acetylcholine-activated * K+ current in this mathematical model of the atrial myocyte. * ii) A non-selective cation current which is activated by natriuretic * peptides has been incorporated into a previously published mathematical * model of the cardiac fibroblast. These results identify subtle * effects of acetylcholine, which arise from the nonlinear interactions * between ionic currents in the human atrial myocyte. They also * illustrate marked alterations in the action potential waveform * arising from fibroblast-myocyte source-sink principles when * the natriuretic peptide-mediated cation conductance is activated. * Additional calculations also illustrate the effects of simultaneous * activation of both of these cell-type specific conductances * within the atrial myocardium. This study provides a basis for * beginning to assess the utility of mathematical modeling in * understanding detailed cell-cell interactions within the complex * paracrine environment of the human atrial myocardium. * * The complete original paper reference is cited below: * * Mathematical simulations of ligand-gated and cell-type specific * effects on the action potential of human atrium, Mary M. Maleckara, * Joseph L. Greensteina, Natalia A. Trayanova and Wayne R. Giles, * 2009, Progress in Biophysics and Molecular Biology PubMed ID: * 19186188 * * cell diagram * * [[Image file: maleckar_2009.png]] * * Schematic diagram of the human atrial myocyte model. It includes * the main time- and voltage-dependent ion currents which contribute * to the generation of the human atrial action potential: INa, * ICa,L, It, Ikur, IK1, IKr, and IKs. This model also includes * electrogenic pump and exchanger currents: the sarcolemmal Ca2+ * pump current (ICa,P), the Na+-Ca2+ exchanger current (INaCa), * and the Na+-K+ pump current (INaK). These transporters are responsible * for the maintenance of intracellular ion concentrations, and * are balanced by Na+ and Ca2+ time-independent or background * currents, IBNa and IBCa. */ import nsrunit; unit conversion on; unit pA_per_nF=.001 kilogram^1*meter^2*second^(-4)*ampere^(-1); unit nanoS_per_nF=1 second^(-1); unit per_second=1 second^(-1); // unit millivolt predefined // unit millimolar predefined unit millimolar15=1 meter^(-4.5)*mole^1.5; unit per_millimolar_4=1 meter^12*mole^(-4); unit picoA_per_millimolar=1E-12 meter^3*ampere^1*mole^(-1); unit picoA_per_millimolar_4=1E-12 meter^12*ampere^1*mole^(-4); unit per_millimolar_second=1 meter^3*second^(-1)*mole^(-1); unit picoA=1E-12 ampere^1; unit nanoS=1E-9 kilogram^(-1)*meter^(-2)*second^3*ampere^2; unit nanoF=1E-9 kilogram^(-1)*meter^(-2)*second^4*ampere^2; // unit nanolitre predefined unit nanolitre_per_second=1E-12 meter^3*second^(-1); 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); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; when(time=time.min) V=-74.031982; real R millijoule_per_mole_kelvin; R=8314; real T kelvin; T=306.15; real F coulomb_per_mole; F=96487; real Cm nanoF; Cm=50; real Q_tot(time) millivolt; real i_Na(time) picoA; real i_Ca_L(time) picoA; real i_t(time) picoA; real i_Kur(time) picoA; real i_K1(time) picoA; real i_Kr(time) picoA; real i_Ks(time) picoA; real i_B_Na(time) picoA; real i_B_Ca(time) picoA; real i_NaK(time) picoA; real i_CaP(time) picoA; real i_NaCa(time) picoA; real i_KACh(time) picoA; real I(time) pA_per_nF; real i_Stim(time) pA_per_nF; real stim_offset second; stim_offset=0; real stim_period second; stim_period=1; real stim_duration second; stim_duration=0.006; real stim_amplitude pA_per_nF; stim_amplitude=-15; real past(time) second; real E_Na(time) millivolt; real P_Na nanolitre_per_second; P_Na=0.0018; real Na_c(time) millimolar; when(time=time.min) Na_c=130.022096; real Na_i(time) millimolar; when(time=time.min) Na_i=8.516766; real m(time) dimensionless; when(time=time.min) m=0.003289; real h1(time) dimensionless; when(time=time.min) h1=0.877202; real h2(time) dimensionless; when(time=time.min) h2=0.873881; real m_infinity(time) dimensionless; real m_factor(time) dimensionless; real tau_m(time) second; real h_infinity(time) dimensionless; real h_factor(time) dimensionless; real tau_h1(time) second; real tau_h2(time) second; real g_Ca_L nanoS; g_Ca_L=6.75; real E_Ca_app millivolt; E_Ca_app=60; real f_Ca(time) dimensionless; real k_Ca millimolar; k_Ca=0.025; real Ca_d(time) millimolar; when(time=time.min) Ca_d=7.1e-5; real d_L(time) dimensionless; when(time=time.min) d_L=0.000014; real f_L1(time) dimensionless; when(time=time.min) f_L1=0.998597; real f_L2(time) dimensionless; when(time=time.min) f_L2=0.998586; real d_L_infinity(time) dimensionless; real d_L_factor(time) dimensionless; real tau_d_L(time) second; real f_L_infinity(time) dimensionless; real f_L_factor(time) millivolt; real tau_f_L1(time) second; real tau_f_L2(time) second; real E_K(time) millivolt; real g_t nanoS; g_t=8.25; real K_c(time) millimolar; when(time=time.min) K_c=5.560224; real K_i(time) millimolar; when(time=time.min) K_i=129.485991; real r(time) dimensionless; when(time=time.min) r=0.001089; real s(time) dimensionless; when(time=time.min) s=0.948597; real tau_r(time) second; real r_infinity(time) dimensionless; real tau_s(time) second; real s_infinity(time) dimensionless; real s_factor(time) dimensionless; real g_kur nanoS; g_kur=2.25; real a_ur(time) dimensionless; when(time=time.min) a_ur=0.000367; real i_ur(time) dimensionless; when(time=time.min) i_ur=0.96729; real a_ur_infinity(time) dimensionless; real tau_a_ur(time) second; real i_ur_infinity(time) dimensionless; real tau_i_ur(time) second; real g_K1 nanoS; g_K1=3.1; real g_Ks nanoS; g_Ks=1; real g_Kr nanoS; g_Kr=0.5; real n(time) dimensionless; when(time=time.min) n=0.004374; real pa(time) dimensionless; when(time=time.min) pa=0.000053; real pip(time) dimensionless; real tau_n(time) second; real n_infinity(time) dimensionless; real n_factor(time) dimensionless; real tau_pa(time) second; real pa_factor(time) dimensionless; real p_a_infinity(time) dimensionless; real g_B_Na nanoS; g_B_Na=0.060599; real g_B_Ca nanoS; g_B_Ca=0.078681; real E_Ca(time) millivolt; real Ca_c(time) millimolar; when(time=time.min) Ca_c=1.815768; real Ca_i(time) millimolar; when(time=time.min) Ca_i=6.5e-5; real K_NaK_K millimolar; K_NaK_K=1; real i_NaK_max picoA; i_NaK_max=68.55; real pow_K_NaK_Na_15 millimolar15; pow_K_NaK_Na_15=36.4829; real pow_Na_i_15(time) millimolar15; real i_CaP_max picoA; i_CaP_max=4; real k_CaP millimolar; k_CaP=0.0002; real K_NaCa picoA_per_millimolar_4; K_NaCa=0.0374842; real d_NaCa per_millimolar_4; d_NaCa=0.0003; real gamma_Na dimensionless; gamma_Na=0.45; real ACh millimolar; ACh=1e-24; real phi_Na_en picoA; phi_Na_en=0; real Vol_i nanolitre; Vol_i=0.005884; real Vol_d nanolitre; Vol_d=0.00011768; real i_di(time) picoA; real tau_di second; tau_di=0.01; real i_up(time) picoA; real i_rel(time) picoA; real J_O(time) per_second; real O_C(time) dimensionless; when(time=time.min) O_C=0.026766; real O_TC(time) dimensionless; when(time=time.min) O_TC=0.012922; real O_TMgC(time) dimensionless; when(time=time.min) O_TMgC=0.190369; real O_TMgMg(time) dimensionless; when(time=time.min) O_TMgMg=0.714463; real O(time) dimensionless; when(time=time.min) O=1.38222; real J_O_C(time) per_second; real J_O_TC(time) per_second; real J_O_TMgC(time) per_second; real J_O_TMgMg(time) per_second; real Mg_i millimolar; Mg_i=2.5; real Vol_c nanolitre; Vol_c=0.000800224; real tau_Na second; tau_Na=14.3; real tau_K second; tau_K=10; real tau_Ca second; tau_Ca=24.7; real Na_b millimolar; Na_b=130; real Ca_b millimolar; Ca_b=1.8; real K_b millimolar; K_b=5.4; real i_tr(time) picoA; real I_up_max picoA; I_up_max=2800; real k_cyca millimolar; k_cyca=0.0003; real k_srca millimolar; k_srca=0.5; real k_xcs dimensionless; k_xcs=0.4; real alpha_rel picoA_per_millimolar; alpha_rel=200000; real Ca_rel(time) millimolar; when(time=time.min) Ca_rel=0.632613; real Ca_up(time) millimolar; when(time=time.min) Ca_up=0.649195; real Vol_up nanolitre; Vol_up=0.0003969; real Vol_rel nanolitre; Vol_rel=0.0000441; real r_act(time) per_second; real r_inact(time) per_second; real r_recov per_second; r_recov=0.815; real r_Ca_d_term(time) dimensionless; real r_Ca_i_term(time) dimensionless; real r_Ca_d_factor(time) dimensionless; real r_Ca_i_factor(time) dimensionless; real i_rel_f2(time) dimensionless; real i_rel_factor(time) dimensionless; real O_Calse(time) dimensionless; when(time=time.min) O_Calse=0.431547; real J_O_Calse(time) per_second; real F1(time) dimensionless; when(time=time.min) F1=0.470055; real F2(time) dimensionless; when(time=time.min) F2=0.002814; real tau_tr second; tau_tr=0.01; real k_rel_i millimolar; k_rel_i=0.0003; real k_rel_d millimolar; k_rel_d=0.003; // // 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 pA_per_nF)); I=((i_Na+i_Ca_L+i_t+i_Kur+i_K1+i_Kr+i_Ks+i_B_Na+i_B_Ca+i_NaK+i_CaP+i_NaCa+i_KACh)/Cm+i_Stim); V:time=((-1)*I*1E3); Q_tot=(.05*V); // i_Na=(P_Na*m*m*m*(.9*h1+.1*h2)*Na_c*V*F*F/(R*T)*(exp((V-E_Na)*F/(R*T))-1)/(exp(V*F/(R*T))-1)); E_Na=(R*T/F*ln(Na_c/Na_i)); // m:time=((m_infinity-m)/tau_m); m_factor=((V+(25.57 millivolt))/(28.8 millivolt)); m_infinity=(1/(1+exp((V+(27.12 millivolt))/((-1)*(8.21 millivolt))))); tau_m=((4.2E-5 second)*exp((-1)*m_factor*m_factor)+(2.4E-5 second)); // h1:time=((h_infinity-h1)/tau_h1); h_infinity=(1/(1+exp((V+(63.6 millivolt))/(5.3 millivolt)))); h_factor=(1/(1+exp((V+(35.1 millivolt))/(3.2 millivolt)))); tau_h1=((.03 second)*h_factor+(3E-4 second)); // h2:time=((h_infinity-h2)/tau_h2); tau_h2=((.12 second)*h_factor+(.003 second)); // i_Ca_L=(g_Ca_L*d_L*(f_Ca*f_L1+(1-f_Ca)*f_L2)*(V-E_Ca_app)); f_Ca=(Ca_d/(Ca_d+k_Ca)); // d_L:time=((d_L_infinity-d_L)/tau_d_L); d_L_infinity=(1/(1+exp((V+(9 millivolt))/((-1)*(5.8 millivolt))))); d_L_factor=((V+(35 millivolt))/(30 millivolt)); tau_d_L=((.0027 second)*exp((-1)*d_L_factor*d_L_factor)+(.002 second)); // f_L1:time=((f_L_infinity-f_L1)/tau_f_L1); f_L_infinity=(1/(1+exp((V+(27.4 millivolt))/(7.1 millivolt)))); f_L_factor=(V+(40 millivolt)); tau_f_L1=((.161 second)*exp((-1)*f_L_factor*f_L_factor/(14.4 millivolt)/(14.4 millivolt))+(.01 second)); // f_L2:time=((f_L_infinity-f_L2)/tau_f_L2); tau_f_L2=((1.3323 second)*exp((-1)*f_L_factor*f_L_factor/(14.2 millivolt)/(14.2 millivolt))+(.0626 second)); // i_t=(g_t*r*s*(V-E_K)); E_K=(R*T/F*ln(K_c/K_i)); // r:time=((r_infinity-r)/tau_r); r_infinity=(1/(1+exp((V-(1 millivolt))/((-1)*(11 millivolt))))); tau_r=((.0035 second)*exp((-1)*V*V/(30 millivolt)/(30 millivolt))+(.0015 second)); // s:time=((s_infinity-s)/tau_s); s_infinity=(1/(1+exp((V+(40.5 millivolt))/(11.5 millivolt)))); s_factor=((V+(52.45 millivolt))/(15.8827 millivolt)); tau_s=((.025635 second)*exp((-1)*s_factor*s_factor)+(.01414 second)); // i_Kur=(g_kur*a_ur*i_ur*(V-E_K)); // a_ur:time=((a_ur_infinity-a_ur)/tau_a_ur); a_ur_infinity=(1/(1+exp((-1)*(V+(6 millivolt))/(8.6 millivolt)))); tau_a_ur=((.009 second)/(1+exp((V+(5 millivolt))/(12 millivolt)))+(5E-4 second)); // i_ur:time=((i_ur_infinity-i_ur)/tau_i_ur); i_ur_infinity=(1/(1+exp((V+(7.5 millivolt))/(10 millivolt)))); tau_i_ur=((.59 second)/(1+exp((V+(60 millivolt))/(10 millivolt)))+(3.05 second)); // i_K1=(g_K1*(K_c/(1 millimolar))^.4457*(V-E_K)/(1+exp(1.5*(V-E_K+(3.6 millivolt))*F/(R*T)))); // i_Ks=(g_Ks*n*(V-E_K)); i_Kr=(g_Kr*pa*pip*(V-E_K)); // n:time=((n_infinity-n)/tau_n); n_infinity=(1/(1+exp((V-(19.9 millivolt))/((-1)*(12.7 millivolt))))); n_factor=((V-(20 millivolt))/(20 millivolt)); tau_n=((.7 second)+(.4 second)*exp((-1)*n_factor*n_factor)); // pa:time=((p_a_infinity-pa)/tau_pa); p_a_infinity=(1/(1+exp((V+(15 millivolt))/((-1)*(6 millivolt))))); pa_factor=((V+(20.1376 millivolt))/(22.1996 millivolt)); tau_pa=((.03118 second)+(.21718 second)*exp((-1)*pa_factor*pa_factor)); // pip=(1/(1+exp((V+(55 millivolt))/(24 millivolt)))); // i_B_Na=(g_B_Na*(V-E_Na)); i_B_Ca=(g_B_Ca*(V-E_Ca)); E_Ca=(R*T/(2*F)*ln(Ca_c/Ca_i)); // pow_Na_i_15=(Na_i^1.5); i_NaK=(i_NaK_max*K_c/(K_c+K_NaK_K)*pow_Na_i_15/(pow_Na_i_15+pow_K_NaK_Na_15)*(V+(150 millivolt))/(V+(200 millivolt))); // i_CaP=(i_CaP_max*Ca_i/(Ca_i+k_CaP)); // i_NaCa=(K_NaCa*(Na_i*Na_i*Na_i*Ca_c*exp(F*V*gamma_Na/(R*T))-Na_c*Na_c*Na_c*Ca_i*exp((gamma_Na-1)*V*F/(R*T)))/(1+d_NaCa*(Na_c*Na_c*Na_c*Ca_i+Na_i*Na_i*Na_i*Ca_c))); // i_KACh=((10 nanoS_per_nF)/(1+9.13652*(1 millimolar)^.477811/ACh^.477811)*(.0517+.4516/(1+exp((V+(59.53 millivolt))/(17.18 millivolt))))*(V-E_K)*Cm); // K_i:time=((-1)*(i_t+i_Kur+i_K1+i_Ks+i_Kr-2*i_NaK+i_Stim*Cm)/(Vol_i*F)); Na_i:time=((-1)*(i_Na+i_B_Na+3*i_NaCa+3*i_NaK+phi_Na_en)/(Vol_i*F)); Ca_i:time=((-1)*(i_B_Ca+i_CaP+i_up-(i_di+i_rel+2*i_NaCa))/(2*Vol_i*F)-(1 millimolar)*J_O); Ca_d:time=((-1)*(i_Ca_L+i_di)/(2*Vol_d*F)); i_di=((Ca_d-Ca_i)*2*Vol_d*F/tau_di); // J_O_C=((2E5 per_millimolar_second)*Ca_i*(1-O_C)-(476 per_second)*O_C); J_O_TC=((78400 per_millimolar_second)*Ca_i*(1-O_TC)-(392 per_second)*O_TC); J_O_TMgC=((2E5 per_millimolar_second)*Ca_i*(1-O_TMgC-O_TMgMg)-(6.6 per_second)*O_TMgC); J_O_TMgMg=((2E3 per_millimolar_second)*Mg_i*(1-O_TMgC-O_TMgMg)-(666 per_second)*O_TMgMg); O_C:time=J_O_C; O_TC:time=J_O_TC; O_TMgC:time=J_O_TMgC; O_TMgMg:time=J_O_TMgMg; J_O=(.08*J_O_TC+.16*J_O_TMgC+.045*J_O_C); O:time=J_O; // Ca_c:time=((Ca_b-Ca_c)/tau_Ca+(i_Ca_L+i_B_Ca+i_CaP-2*i_NaCa)/(2*Vol_c*F)); K_c:time=((K_b-K_c)/tau_K+(i_t+i_Kur+i_K1+i_Ks+i_Kr-2*i_NaK)/(Vol_c*F)); Na_c:time=((Na_b-Na_c)/tau_Na+(i_Na+i_B_Na+3*i_NaCa+3*i_NaK+phi_Na_en)/(Vol_c*F)); // r_Ca_d_term=(Ca_d/(Ca_d+k_rel_d)); r_Ca_i_term=(Ca_i/(Ca_i+k_rel_i)); r_Ca_d_factor=(r_Ca_d_term*r_Ca_d_term*r_Ca_d_term*r_Ca_d_term); r_Ca_i_factor=(r_Ca_i_term*r_Ca_i_term*r_Ca_i_term*r_Ca_i_term); r_act=((203.8 per_second)*(r_Ca_i_factor+r_Ca_d_factor)); r_inact=((33.96 per_second)+(339.6 per_second)*r_Ca_i_factor); F1:time=(r_recov*(1-F1-F2)-r_act*F1); F2:time=(r_act*F1-r_inact*F2); i_rel_f2=(F2/(F2+.25)); i_rel_factor=(i_rel_f2*i_rel_f2); i_rel=(alpha_rel*i_rel_factor*(Ca_rel-Ca_i)); i_up=(I_up_max*(Ca_i/k_cyca-k_xcs*k_xcs*Ca_up/k_srca)/((Ca_i+k_cyca)/k_cyca+k_xcs*(Ca_up+k_srca)/k_srca)); i_tr=((Ca_up-Ca_rel)*2*Vol_rel*F/tau_tr); J_O_Calse=((480 per_millimolar_second)*Ca_rel*(1-O_Calse)-(400 per_second)*O_Calse); O_Calse:time=J_O_Calse; Ca_up:time=((i_up-i_tr)/(2*Vol_up*F)); Ca_rel:time=((i_tr-i_rel)/(2*Vol_rel*F)-(31 millimolar)*J_O_Calse); }