/* * One-dimensional mathematical model of the atrioventricular node * including atrio-nodal, nodal, and nodal-his cells * * Model Status * * This CellML model runs in both COR and PCEnv to reproduce the * published results. The units have been checked and they balance. * This version of the CellML model represents the nodal (N) cell. * The CellML model has been based on both the published paper * and the original C++ code. * * Model Structure * * ABSTRACT: Mathematical models are a repository of knowledge * as well as research and teaching tools. Although action potential * models have been developed for most regions of the heart, there * is no model for the atrioventricular node (AVN). We have developed * action potential models for single atrio-nodal, nodal, and nodal-His * cells. The models have the same action potential shapes and * refractoriness as observed in experiments. Using these models, * together with models for the sinoatrial node (SAN) and atrial * muscle, we have developed a one-dimensional (1D) multicellular * model including the SAN and AVN. The multicellular model has * slow and fast pathways into the AVN and using it we have analyzed * the rich behavior of the AVN. Under normal conditions, action * potentials were initiated in the SAN center and then propagated * through the atrium and AVN. The relationship between the AVN * conduction time and the timing of a premature stimulus (conduction * curve) is consistent with experimental data. After premature * stimulation, atrioventricular nodal reentry could occur. After * slow pathway ablation or block of the L-type Ca(2+) current, * atrioventricular nodal reentry was abolished. During atrial * fibrillation, the AVN limited the number of action potentials * transmitted to the ventricle. In the absence of SAN pacemaking, * the inferior nodal extension acted as the pacemaker. In conclusion, * we have developed what we believe is the first detailed mathematical * model of the AVN and it shows the typical physiological and * pathophysiological characteristics of the tissue. The model * can be used as a tool to analyze the complex structure and behavior * of the AVN. * * model diagram * * [[Image file: inada_2009.png]] * * Schematic diagram of the Inada et al. 2009 cell model. * * The original paper reference is cited below: * * One-dimensional mathematical model of the atrioventricular node * including atrio-nodal, nodal, and nodal-his cells, S. Inada, * J.C. Hancox, H. Zhang and M.R. Boyett, 2009, Biophysical Journal, * 97, 2117-2127. PubMed ID: 19843444 */ import nsrunit; unit conversion on; unit per_second=1 second^(-1); // unit millivolt predefined unit millivolt2=1E-6 kilogram^2*meter^4*second^(-6)*ampere^(-2); 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 microS=1E-6 kilogram^(-1)*meter^(-2)*second^3*ampere^2; unit microF=1E-6 kilogram^(-1)*meter^(-2)*second^4*ampere^2; unit nanoA=1E-9 ampere^1; // unit millimolar 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 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 micrometre3=1E-18 meter^3; unit microlitre_micrometre3=1E9 dimensionless; unit microlitre_per_second=1E-9 meter^3*second^(-1); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; when(time=time.min) V=-49.7094187908202; real R joule_per_kilomole_kelvin; R=8314.472; real T kelvin; T=310; real F coulomb_per_mole; F=96485.3415; real C microF; C=4e-5; real RTONF millivolt; real i_Na(time) nanoA; real i_CaL(time) nanoA; real i_to(time) nanoA; real i_Kr(time) nanoA; real i_f(time) nanoA; real i_st(time) nanoA; real i_K1(time) nanoA; real i_NaCa(time) nanoA; real i_p(time) nanoA; real i_b(time) nanoA; real i_ACh(time) nanoA; real g_f microS; g_f=0.001; real ACh millimolar; ACh=0; real y(time) dimensionless; when(time=time.min) y=0.0462303183096481; real y_inf(time) dimensionless; real tau_y(time) second; real g_Kr microS; g_Kr=0.0035; real rapid_delayed_rectifier_potassium_current.E_K millivolt; real Ki millimolar; Ki=140; real Kc millimolar; Kc=5.4; real paf(time) dimensionless; when(time=time.min) paf=0.192515363116553; real pas(time) dimensionless; when(time=time.min) pas=0.0797182955833868; real pik(time) dimensionless; when(time=time.min) pik=0.949023698965401; real paf_infinity(time) dimensionless; real tau_paf(time) second; real pas_infinity(time) dimensionless; real tau_pas(time) second; real pik_infinity(time) dimensionless; real alpha_pik(time) per_second; real beta_pik(time) per_second; real tau_pik(time) second; real g_K1 microS; g_K1=0; real g_K1_prime(time) microS; real g_b microS; g_b=0.0012; real E_b millivolt; E_b=-22.5; real I_p nanoA; I_p=0.14268; real Nai millimolar; Nai=8; real kNaCa nanoA; kNaCa=2.14455; real x1(time) dimensionless; real x2(time) dimensionless; real x3(time) dimensionless; real x4(time) dimensionless; real k41(time) dimensionless; real k34 dimensionless; real k23(time) dimensionless; real k21(time) dimensionless; real k32(time) dimensionless; real k43 dimensionless; real k12(time) dimensionless; real k14(time) dimensionless; real Qci dimensionless; Qci=0.1369; real Qn dimensionless; Qn=0.4315; real Qco dimensionless; Qco=0; real Kci millimolar; Kci=0.0207; real K1ni millimolar; K1ni=395.3; real K2ni millimolar; K2ni=2.289; real K3ni millimolar; K3ni=26.44; real Kcni millimolar; Kcni=26.44; real K3no millimolar; K3no=4.663; real K1no millimolar; K1no=1628; real K2no millimolar; K2no=561.4; real Kco millimolar; Kco=3.663; real do(time) dimensionless; real di(time) dimensionless; real Cao millimolar; Cao=2; real Nao millimolar; Nao=140; real Casub(time) millimolar; when(time=time.min) Casub=0.000160310601192365; real g_Na microlitre_per_second; g_Na=0; real E_Na millivolt; real m(time) dimensionless; when(time=time.min) m=0.143642247226618; real h1(time) dimensionless; when(time=time.min) h1=0.0243210273637729; real h2(time) dimensionless; when(time=time.min) h2=0.0157156121147801; 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_h1(time) per_second; real beta_h1(time) per_second; real h1_inf(time) dimensionless; real tau_h1(time) second; real alpha_h2(time) per_second; real beta_h2(time) per_second; real h2_inf(time) dimensionless; real tau_h2(time) second; real g_CaL microS; g_CaL=0.009; real E_CaL millivolt; E_CaL=62; real d(time) dimensionless; when(time=time.min) d=0.00179250298710316; real f(time) dimensionless; when(time=time.min) f=0.975550840189597; real f2(time) dimensionless; when(time=time.min) f2=0.774394220125623; real alpha_d(time) per_second; real beta_d(time) per_second; real d_inf(time) dimensionless; real tau_d(time) second; real act_shift millivolt; act_shift=-15; real slope_factor_act millivolt; slope_factor_act=-5; real f_inf(time) dimensionless; real tau_f(time) second; real L_type_calcium_current_f_gate.inact_shift millivolt; L_type_calcium_current_f_gate.inact_shift=-5; real f2_inf(time) dimensionless; real tau_f2(time) second; real L_type_calcium_current_f2_gate.inact_shift millivolt; L_type_calcium_current_f2_gate.inact_shift=-5; real transient_outward_potassium_current.E_K millivolt; real g_to microS; g_to=0; real r(time) dimensionless; when(time=time.min) r=0.0296516611999521; real q_fast(time) dimensionless; when(time=time.min) q_fast=0.899732315818241; real q_slow(time) dimensionless; when(time=time.min) q_slow=0.190111737767474; real tau_r(time) second; real r_infinity(time) dimensionless; real tau_qfast(time) second; real qfast_infinity(time) dimensionless; real tau_qslow(time) second; real qslow_infinity(time) dimensionless; real E_st millivolt; E_st=-37.4; real g_st microS; g_st=0.0001; real qa(time) dimensionless; when(time=time.min) qa=0.476404610622697; real qi(time) dimensionless; when(time=time.min) qi=0.542303657353244; real tau_qa(time) second; real qa_infinity(time) dimensionless; real alpha_qa(time) per_second; real beta_qa(time) per_second; real tau_qi(time) second; real alpha_qi(time) per_second; real beta_qi(time) per_second; real qi_infinity(time) dimensionless; real g_ACh(time) microS; real g_ACh_max microS; g_ACh_max=0.0198; real K_ACh millimolar; K_ACh=0.00035; real achf(time) dimensionless; when(time=time.min) achf=0.550559577208797; real achs(time) dimensionless; when(time=time.min) achs=0.567277036232041; real alpha_achf per_second; alpha_achf=73.1; real beta_achf(time) per_second; real alpha_achs per_second; alpha_achs=3.7; real beta_achs(time) per_second; real Cai(time) millimolar; when(time=time.min) Cai=0.000184969821581882; real V_up micrometre3; real V_rel micrometre3; real V_sub micrometre3; real Vi micrometre3; real V_cell micrometre3; V_cell=3.18872e-6; real i_up(time) millimolar_per_second; real i_tr(time) millimolar_per_second; real i_rel(time) millimolar_per_second; real i_diff(time) millimolar_per_second; real Ca_up(time) millimolar; when(time=time.min) Ca_up=1.11092514657408; real Ca_rel(time) millimolar; when(time=time.min) Ca_rel=0.296249516481577; real P_rel per_second; P_rel=1500; real K_up millimolar; K_up=0.0006; real tau_tr second; tau_tr=0.06; real f_TC(time) dimensionless; when(time=time.min) f_TC=0.0356473236675985; real f_TMC(time) dimensionless; when(time=time.min) f_TMC=0.443317425115817; real f_TMM(time) dimensionless; when(time=time.min) f_TMM=0.491718960234865; real f_CMi(time) dimensionless; when(time=time.min) f_CMi=0.0723007987059414; real f_CMs(time) dimensionless; when(time=time.min) f_CMs=0.0630771339141488; real f_CQ(time) dimensionless; when(time=time.min) f_CQ=0.261430602900137; real f_CSL(time) dimensionless; when(time=time.min) f_CSL=4.1497704886823e-5; real diff_f_TC(time) per_second; real diff_f_TMC(time) per_second; real diff_f_TMM(time) per_second; real diff_f_CMi(time) per_second; real diff_f_CMs(time) per_second; real diff_f_CQ(time) per_second; real diff_f_CSL(time) per_second; // // RTONF=(R*T/F); V:time=((-1)*(i_Na+i_CaL+i_to+i_Kr+i_f+i_st+i_K1+i_NaCa+i_p+i_b+i_ACh)/C); // i_f=(y*g_f*(V-(-1)*(30 millivolt))); // y_inf=(1/(1+exp((V+(83.19 millivolt)-(-1)*(7.2 millivolt)*ACh^.69/((1.26E-5 millimolar)^.69+ACh^.69))/(13.56 millivolt)))); tau_y=((.25 second)+(2 second)*exp((-1)*(V+(70 millivolt))^2/(500 millivolt2))); y:time=((y_inf-y)/tau_y); // rapid_delayed_rectifier_potassium_current.E_K=(RTONF*ln(Kc/Ki)); i_Kr=(g_Kr*(.9*paf+.1*pas)*pik*(V-rapid_delayed_rectifier_potassium_current.E_K)); // paf_infinity=(1/(1+exp((V+(10.22 millivolt))/((-1)*(8.5 millivolt))))); tau_paf=(1/((17 per_second)*exp((.0398 per_millivolt)*V)+(.211 per_second)*exp((-1)*(.051 per_millivolt)*V))); paf:time=((paf_infinity-paf)/tau_paf); // pas_infinity=(1/(1+exp((V+(10.22 millivolt))/((-1)*(8.5 millivolt))))); tau_pas=((.33581 second)+(.90673 second)*exp((-1)*(V+(10 millivolt))^2/(988.05 millivolt2))); pas:time=((pas_infinity-pas)/tau_pas); // pik_infinity=(1/(1+exp((V+(4.9 millivolt))/(15.14 millivolt)))*(1-.3*exp((-1)*V^2/(500 millivolt2)))); alpha_pik=((92.01 per_second)*exp((-1)*(.0183 per_millivolt)*V)); beta_pik=((603.6 per_second)*exp((.00942 per_millivolt)*V)); tau_pik=(1/(alpha_pik+beta_pik)); pik:time=((pik_infinity-pik)/tau_pik); // g_K1_prime=(g_K1*(.5+.5/(1+exp((V+(30 millivolt))/(5 millivolt))))); i_K1=(g_K1_prime*(Kc/(Kc+(.59 millimolar)))^3*(V+(81.9 millivolt))/(1+exp(1.393*(V+(81.9 millivolt)+(3.6 millivolt))/RTONF))); // i_b=(g_b*(V-E_b)); // i_p=(I_p*(Nai/((5.64 millimolar)+Nai))^3*(Kc/((.621 millimolar)+Kc))^2*1.6/(1.5+exp((-1)*(V+(60 millivolt))/(40 millivolt)))); // do=(1+Cao/Kco*(1+exp(Qco*V/RTONF))+Nao/K1no+Nao^2/(K1no*K2no)+Nao^3/(K1no*K2no*K3no)); k32=exp(Qn*V/(2*RTONF)); k23=((Nao^2/(K1no*K2no)+Nao^3/(K1no*K2no*K3no))*exp((-1)*Qn*V/(2*RTONF))/do); k21=(Cao/Kco*exp((-1)*Qco*V/RTONF)/do); k34=(Nao/(K3no+Nao)); di=(1+Casub/Kci*(1+exp((-1)*Qci*V/RTONF)+Nai/Kcni)+Nai/K1ni+Nai^2/(K1ni*K2ni)+Nai^3/(K1ni*K2ni*K3ni)); k41=exp((-1)*Qn*V/(2*RTONF)); k14=((Nai^2/(K1ni*K2ni)+Nai^3/(K1ni*K2ni*K3ni))*exp(Qn*V/(2*RTONF))/di); k12=(Casub/Kci*exp((-1)*Qci*V/RTONF)/di); k43=(Nai/(K3ni+Nai)); x1=(k41*k34*(k23+k21)+k21*k32*(k43+k41)); x2=(k32*k43*(k14+k12)+k41*k12*(k34+k32)); x3=(k14*k43*(k23+k21)+k12*k23*(k43+k41)); x4=(k23*k34*(k14+k12)+k14*k21*(k34+k32)); i_NaCa=(kNaCa*(x2*k21-x1*k12)/(x1+x2+x3+x4)); // E_Na=(RTONF*ln(Nao/Nai)); i_Na=(g_Na*m^3*(.635*h1+.365*h2)*Nao*V*F/RTONF*(exp((V-E_Na)/RTONF)-1)/(exp(V/RTONF)-1)); // E0_m=(V+(44.4 millivolt)); alpha_m=(if (abs(E0_m) alpha_h1=((44.9 per_second)*exp((V+(66.9 millivolt))/((-1)*(5.57 millivolt)))); beta_h1=((1491 per_second)/(1+323.3*exp((V+(94.6 millivolt))/((-1)*(12.9 millivolt))))); h1_inf=(alpha_h1/(alpha_h1+beta_h1)); tau_h1=((.03 second)/(1+exp((V+(40 millivolt))/(6 millivolt)))+(3.5E-4 second)); h1:time=((h1_inf-h1)/tau_h1); // alpha_h2=((44.9 per_second)*exp((V+(66.9 millivolt))/((-1)*(5.57 millivolt)))); beta_h2=((1491 per_second)/(1+323.3*exp((V+(94.6 millivolt))/((-1)*(12.9 millivolt))))); h2_inf=(alpha_h2/(alpha_h2+beta_h2)); tau_h2=((.12 second)/(1+exp((V+(60 millivolt))/(2 millivolt)))+(.00295 second)); h2:time=((h2_inf-h2)/tau_h2); // i_CaL=(g_CaL*d*(.675*f+.325*f2)*(V-E_CaL)*(1-i_ACh*ACh/((9E-5 millimolar)+ACh)/(1 nanoA))); // alpha_d=((-1)*(26.12 per_millivolt_second)*(V+(35 millivolt))/(exp((V+(35 millivolt))/((-1)*(2.5 millivolt)))-1)+(-1)*(78.11 per_millivolt_second)*V/(exp((-1)*(.208 per_millivolt)*V)-1)); beta_d=((10.52 per_millivolt_second)*(V-(5 millivolt))/(exp((.4 per_millivolt)*(V-(5 millivolt)))-1)); d_inf=(1/(1+exp((V-((-1)*(3.2 millivolt)+act_shift))/slope_factor_act))); tau_d=(1/(alpha_d+beta_d)); d:time=((d_inf-d)/tau_d); // f_inf=(1/(1+exp((V-((-1)*(24 millivolt)+L_type_calcium_current_f_gate.inact_shift))/(6.31 millivolt)))); tau_f=((.01 second)+(.1539 second)*exp((-1)*(V+(40 millivolt))^2/(185.67 millivolt2))); f:time=((f_inf-f)/tau_f); // f2_inf=(1/(1+exp((V-((-1)*(24 millivolt)+L_type_calcium_current_f2_gate.inact_shift))/(6.31 millivolt)))); tau_f2=((.06 second)+(.48076 second)*2.25*exp((-1)*(V-(-1)*(40 millivolt))^2/(138.04 millivolt2))); f2:time=((f2_inf-f2)/tau_f2); // i_to=(g_to*r*(.45*q_fast+.55*q_slow)*(V-transient_outward_potassium_current.E_K)); transient_outward_potassium_current.E_K=(RTONF*ln(Kc/Ki)); // r:time=((r_infinity-r)/tau_r); r_infinity=(1/(1+exp((V-(7.44 millivolt))/((-1)*(16.4 millivolt))))); tau_r=((5.96E-4 second)+(.003118 second)/(1.037*exp((.09 per_millivolt)*(V+(30.61 millivolt)))+.396*exp((-1)*(.12 per_millivolt)*(V+(23.84 millivolt))))); // q_fast:time=((qfast_infinity-q_fast)/tau_qfast); qfast_infinity=(1/(1+exp((V+(33.8 millivolt))/(6.12 millivolt)))); tau_qfast=((.012660000000000001 second)+(4.72716 second)/(1+exp((V+(154.5 millivolt))/(23.96 millivolt)))); // q_slow:time=((qslow_infinity-q_slow)/tau_qslow); qslow_infinity=(1/(1+exp((V+(33.8 millivolt))/(6.12 millivolt)))); tau_qslow=((.1 second)+(4 second)*exp((-1)*(V+(65 millivolt))^2/(500 millivolt2))); // i_st=(g_st*qa*qi*(V-E_st)); // qa:time=((qa_infinity-qa)/tau_qa); qa_infinity=(1/(1+exp((V-(-1)*(49.1 millivolt))/((-1)*(8.98 millivolt))))); alpha_qa=(1/((.15 second)*exp((-1)*V/(11 millivolt))+(.2 second)*exp((-1)*V/(700 millivolt)))); beta_qa=(1/((16 second)*exp(V/(8 millivolt))+(15 second)*exp(V/(50 millivolt)))); tau_qa=(.001/(alpha_qa+beta_qa)); // qi:time=((qi_infinity-qi)/tau_qi); alpha_qi=(.1504/((3100 second)*exp(V/(13 millivolt))+(700 second)*exp(V/(70 millivolt)))); beta_qi=(.1504/((95 second)*exp((-1)*V/(10 millivolt))+(50 second)*exp((-1)*V/(700 millivolt)))+(2.29E-4 per_second)/(1+exp((-1)*V/(5 millivolt)))); qi_infinity=(alpha_qi/(alpha_qi+beta_qi)); tau_qi=(.001/(alpha_qi+beta_qi)); // g_ACh=(g_ACh_max*achf*achs*ACh^1.5/(K_ACh^1.5+ACh^1.5)); i_ACh=(g_ACh*Kc/((10 millimolar)+Kc)*(V-rapid_delayed_rectifier_potassium_current.E_K)/(1+exp((V-rapid_delayed_rectifier_potassium_current.E_K-(140 millivolt))/(2.5*RTONF)))); // beta_achf=((120 per_second)/(1+exp((-1)*(V+(50 millivolt))/(15 millivolt)))); achf:time=(alpha_achf*(1-achf)-beta_achf*achf); // beta_achs=((5.82 per_second)/(1+exp((-1)*(V+(50 millivolt))/(15 millivolt)))); achs:time=(alpha_achs*(1-achs)-beta_achs*achs); // // // // i_diff=((Casub-Cai)/(4E-5 second)); i_up=((5 millimolar_per_second)/(1+K_up/Cai)); i_tr=((Ca_up-Ca_rel)/tau_tr); i_rel=(P_rel*(Ca_rel-Casub)/(1+((.0012 millimolar)/Casub)^2)); Ca_up:time=(i_up-i_tr*V_rel/V_up); V_up=(.0116*V_cell); Ca_rel:time=(i_tr-i_rel-(10 millimolar)*diff_f_CQ); V_rel=(.0012*V_cell); Cai:time=((i_diff*V_sub-i_up*V_up)/Vi-((.045 millimolar)*diff_f_CMi+(.031 millimolar)*diff_f_TC+(.062 millimolar)*diff_f_TMC)); Casub:time=(((-1)*(i_CaL-2*i_NaCa)/((2 microlitre_micrometre3)*F)+i_rel*V_rel)/V_sub-i_diff-(.045 millimolar)*diff_f_CMs-(.031 millimolar)/1.2*diff_f_CSL); Vi=(.46*V_cell-V_sub); V_sub=(.01*V_cell); diff_f_TC=((88800 per_millimolar_per_second)*Cai*(1-f_TC)-(446 per_second)*f_TC); f_TC:time=diff_f_TC; diff_f_TMC=((227700 per_millimolar_per_second)*Cai*(1-f_TMC-f_TMM)-(7.51 per_second)*f_TMC); f_TMC:time=diff_f_TMC; diff_f_TMM=((2277 per_millimolar_per_second)*(2.5 millimolar)*(1-f_TMC-f_TMM)-(751 per_second)*f_TMM); f_TMM:time=diff_f_TMM; diff_f_CMi=((227700 per_millimolar_per_second)*Cai*(1-f_CMi)-(542 per_second)*f_CMi); f_CMi:time=diff_f_CMi; diff_f_CMs=((227700 per_millimolar_per_second)*Casub*(1-f_CMs)-(542 per_second)*f_CMs); f_CMs:time=diff_f_CMs; diff_f_CQ=((534 per_millimolar_per_second)*Ca_rel*(1-f_CQ)-(445 per_second)*f_CQ); f_CQ:time=diff_f_CQ; diff_f_CSL=(.001*((115 per_millimolar_per_second)*Casub*(1-f_CSL)-(1E3 per_second)*f_CSL)); f_CSL:time=diff_f_CSL; // // }