/* * A Model Of Beta-Cell Mitochondrial Calcium Handling And Electrical * Activity * * Model Status * * This is the original unchecked version of the model imported * from the previous CellML model repository, 24-Jan-2006. * * Model Structure * * When exposed to a threshold concentration of glucose, pancreatic * beta-cells from a wide range of species exhibit a complicated * pattern of electrical activity. Bursts of action potential spikes * (the "active" phase) are observed, separated by a "silent" phase * of membrane repolarisation. At even higher glucose concentrations, * continuous action potentials are seen. This electrical activity * has two important physiological correlates: increased cytosolic * Ca2+ concentration ([Ca2+]i) and increased rate of insulin secretion * during the active phase. It is generally accepted that the rise * in [Ca2+]i plays a major role in insulin secretion and that * the action potential spikes during a burst are responsible for * the rise in [Ca2+]i. * * Because the glucose signal for insulin secretion operates via * metabolism rather than through a plasma membrane-bound receptor, * the details of how glucose stimulates electrical activity have * been difficult to resolve. However, experimental data and theoretical * models have begun to investigate the phenomenon. In 1997 Gerhard * Magnus and Joel Keizer published a minimal mathematical model * to describe Ca2+ handling by mitochondria in the pancreatic * beta-cell (see The Magnus-Keizer Mitochondrial Ca2+ Handling * Model, 1997). Their kinetic model incorporated six transport * mechanisms in the inner mitochondrial membrane, including proton * pumping via respiration and proton pumping by the F0F1-ATPase, * a proton leak, adenine nucleotide exchange, the Ca2+ uniporter * and Na+/Ca2+ exchange. In their 1998 model, Gerhard Magnus and * Joel Keizer continue their development of a kinetic model of * bursting electrical activity in the pancreatic beta-cell. Their * minimal model of Ca2+ handling is expanded to include, amongst * other factors, the glucose dependence of the rate of production * of mitochondrial reducing equivalents (see below). * * The complete original paper reference is cited below: * * Model of beta-cell mitochondrial calcium handling and electrical * activity. I. Cytoplasmic variables, Gerhard Magnus and Joel * Keizer, 1998,American Journal of Physiology, 274, C1158-C1173. * PubMed ID: 9575813 * * The raw CellML description of the model of beta-cell mitochondrial * calcium handling can be downloaded in various formats as described * in * * diagram of the mitochondrial Ca2+ handling model * * [[Image file: magnus_1998.png]] * * A schematic representation of the bursting mechanism assumed * by the Magnus-Keizer whole cell model. This diagram shows the * plasma membrane currents associated with burst and spike oscillations; * the area corresponding to the cytosol gives a simplified description * of Ca2+ feedback driving adenine nucleotide concentration oscillations * and ATP-sensitive K+ (KATP) channel gating. Uptake of Ca2+ by * mitochondria positively affects oxidative phosphorylation by * activating pyruvate dehydrogenase (PDH) and other dehydrogenases; * futile cycling of Ca2+ across the mitochondrial inner membrane * periodically diminishes ATP production by lower the inner membrane * voltage (delta_psi). The black arrows represent ion fluxes and * the red and green arrows represent inactivation and activation * (respectively) of membrane transport and other key processes. */ import nsrunit; // Warning: unit conversion turned off due to unit errors in 18 equation(s) unit conversion off; unit minute=60 second^1; unit per_second=1 second^(-1); // unit millisecond predefined unit per_millisecond=1E3 second^(-1); // unit millivolt predefined // unit millimolar predefined unit per_millimolar=1 meter^3*mole^(-1); // unit micromolar predefined // unit nanomolar predefined unit picoS=1E-12 kilogram^(-1)*meter^(-2)*second^3*ampere^2; unit picoS_per_mM=1E-12 kilogram^(-1)*meter^1*second^3*ampere^2*mole^(-1); unit picoF=1E-12 kilogram^(-1)*meter^(-2)*second^4*ampere^2; unit nanomole_per_min_mV_mg=.01666667 kilogram^(-2)*meter^(-2)*second^2*ampere^1*mole^1; unit nanomole_per_mg=.001 kilogram^(-1)*mole^1; unit nanomole_per_mV_mg=1 kilogram^(-2)*meter^(-2)*second^3*ampere^1*mole^1; unit nanomole_per_min_mg=1.6666667E-5 kilogram^(-1)*second^(-1)*mole^1; unit nanomole_per_min_mg_mM=1.6666667E-5 kilogram^(-1)*meter^3*second^(-1); unit micromolar_3=1E-9 meter^(-9)*mole^3; unit femtoA=1E-15 ampere^1; unit micromolar_per_ms_fA=1E15 meter^(-3)*second^(-1)*ampere^(-1)*mole^1; unit per_mM_mV_ms=1E6 kilogram^(-1)*meter^1*second^2*ampere^1*mole^(-1); unit mM_min_mg_per_ms_nmol=6E7 kilogram^1*meter^(-3); unit uM_min_mg_per_ms_nmol=6E4 kilogram^1*meter^(-3); 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 { //Warning: the following variables were set 'extern' or given // an initial value of '0' because the model would otherwise be // underdetermined: V, delayed_rectifier_K_channel_current.n, // I, ADP_i, k_plus_2, fast_Ca_channel_current.C, B, J, glu, delta_J_hyd, // cytosolic_ADP.delta_J_gly_total, Ca_i, pH_m, NADH_m, ATP_m_free, // ADP_m, Ca_m, ATP_ADP_exchange.ATP_m, Jp_TCA realDomain time minute; time.min=0; extern time.max; extern time.delta; real V(time) millivolt; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) V=0; real R millijoule_per_mole_kelvin; R=8314.0; real T kelvin; T=310.0; real F coulomb_per_mole; F=96845.0; real plasma_membrane.C picoF; plasma_membrane.C=6157.0; real i_K_dr(time) femtoA; real i_K_ATP(time) femtoA; real i_Ca_f(time) femtoA; real i_Ca_s(time) femtoA; real i_NS(time) femtoA; real V_K millivolt; V_K=-75.0; real g_K_dr picoS; g_K_dr=5000.0; real delayed_rectifier_K_channel_current.n(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) delayed_rectifier_K_channel_current.n=0; real I(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) I=0; real n_infinity(time) dimensionless; real tau_n(time) millisecond; real I_infinity(time) dimensionless; real tau_I millisecond; tau_I=2600.0; real g_K_ATP picoS; g_K_ATP=70000.0; real O_K_ATP(time) dimensionless; real K_dd micromolar; K_dd=17.0; real K_td micromolar; K_td=26.0; real K_tt micromolar; K_tt=1.0; real MgADP_i(time) millimolar; real ADP3_i(time) nanomolar; real ATP4_i(time) nanomolar; real ADP_i(time) nanomolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) ADP_i=0; real g_Ca picoS_per_mM; g_Ca=4116.0; real O_f(time) dimensionless; real k_plus_1(time) per_millisecond; real k_minus_1(time) per_millisecond; extern real k_plus_2 per_millisecond; real k_minus_2 per_millisecond; k_minus_2=65.0; real k_plus_3 per_millisecond; k_plus_3=0.02; real k_minus_3 per_millisecond; k_minus_3=0.005; real Ca_o millimolar; Ca_o=2.5; real Ca_d(time) millimolar; real O_infinity(time) dimensionless; real tau_Ca_f millisecond; tau_Ca_f=1.3; real fast_Ca_channel_current.C(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) fast_Ca_channel_current.C=0; real B(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) B=0; real O_s(time) dimensionless; real J(time) dimensionless; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) J=0; real J_infinity(time) dimensionless; real tau_J(time) millisecond; real TJ millisecond; TJ=50000.0; real Tmin millisecond; Tmin=1500.0; real K_NS millimolar; K_NS=0.5; real g_NS picoS_per_mM; g_NS=24.0; real ATP_i(time) nanomolar; extern real glu millimolar; real gamma1 mM_min_mg_per_ms_nmol; gamma1=0.00000153; real tau_hyd second; tau_hyd=50.0; real n_hyd dimensionless; n_hyd=2.7; real J_hyd(time) nanomole_per_min_mg; real k_hyd nanomole_per_min_mg_mM; k_hyd=41.0; real delta_J_hyd(time) nanomole_per_min_mg; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) delta_J_hyd=0; real delta_J_hyd_ss nanomole_per_min_mg; real delta_J_hyd_max nanomole_per_min_mg; delta_J_hyd_max=30.1; real Jp_gly nanomole_per_min_mg; extern real cytosolic_ADP.delta_J_gly_total nanomole_per_min_mg; real K_glu millimolar; K_glu=8.7; real J_ANT(time) nanomole_per_min_mg; real Ca_i(time) nanomolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) Ca_i=0; real gamma2 uM_min_mg_per_ms_nmol; gamma2=0.00153; real alpha micromolar_per_ms_fA; alpha=0.00000678; real k_Ca per_millisecond; k_Ca=0.19; real f_i dimensionless; f_i=0.01; real J_uni(time) nanomole_per_min_mg; real J_NaCa(time) nanomole_per_min_mg; real delta_psi(time) millivolt; when(time=time.min) delta_psi=50.0; real proton_motive_force(time) nanomole_per_min_mg; real g_H nanomole_per_min_mV_mg; g_H=0.2; real delta_pH dimensionless; delta_pH=-0.4; real Cmito nanomole_per_mV_mg; Cmito=0.00145; real pH_i dimensionless; extern real pH_m dimensionless; real JH_leak(time) nanomole_per_min_mg; real JH_res(time) nanomole_per_min_mg; real JH_F1(time) nanomole_per_min_mg; real J_o(time) nanomole_per_min_mg; real A_res(time) dimensionless; real K_res millimolar; K_res=135000000000000000.0; real rho_res nanomole_per_mg; rho_res=0.4; real r1 dimensionless; r1=0.000000000000000002077; real r2 dimensionless; r2=0.000000001728; real r3 dimensionless; r3=0.00000000000000000000000001059; real ra per_second; ra=0.0000000006394; real rb per_second; rb=0.0000000000001762; real rc1 per_second; rc1=0.0000000000000000002656; real rc2 per_second; rc2=0.000000000000000000000000008632; real g dimensionless; g=0.85; real NAD_m(time) nanomolar; real NADH_m(time) nanomolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) NADH_m=0; real Jp_F1(time) nanomole_per_min_mg; real rho_F1 nanomole_per_mg; rho_F1=0.7; real K_F1 millimolar; K_F1=1710000.0; real A_F1(time) dimensionless; extern real ATP_m_free nanomolar; real ADP_m_free(time) nanomolar; real Pi_m millimolar; Pi_m=20.0; real p1 dimensionless; p1=0.00000001346; real p2 dimensionless; p2=0.0000007739; real p3 dimensionless; p3=0.00000000000000665; real pa per_second; pa=0.00001656; real pb per_second; pb=0.0000003373; real pc1 per_second; pc1=0.00000000000009651; real pc2 per_second; pc2=0.0000000000000000004845; real F0_F1_ATPase.ATP_m(time) nanomolar; real ADP_m(time) nanomolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) ADP_m=0; real beta_max nanomole_per_min_mg_mM; beta_max=126.0; real beta1 per_millimolar; beta1=1.66; real beta2 per_millimolar; beta2=0.0249; real beta3 per_millimolar; beta3=4.0; real beta4 per_millimolar; beta4=2.83; real beta5 per_millimolar; beta5=1.3; real beta6 per_millimolar; beta6=2.66; real beta7 per_millimolar; beta7=0.16; real u2 dimensionless; u2=1.1; real u1 dimensionless; u1=15.0; real J_red(time) nanomole_per_min_mg; real delta_J_red_I(time) nanomole_per_min_mg; real delta_J_red_II(time) nanomole_per_min_mg; real J_red_basal nanomole_per_min_mg; J_red_basal=20.0; real mitochondrial_NADH.delta_J_gly_total(time) nanomole_per_min_mg; real f_glu(time) dimensionless; real f_PDHa(time) dimensionless; real K_Ca2 micromolar; K_Ca2=0.05; real Ca_m(time) nanomolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) Ca_m=0; real Jmax_ANT nanomole_per_min_mg; Jmax_ANT=1000.0; extern real ATP_ADP_exchange.ATP_m nanomolar; real ATP4_m nanomolar; real ADP3_m(time) nanomolar; real f dimensionless; f=0.5; extern real Jp_TCA nanomole_per_min_mg; real delta_psi_offset millivolt; delta_psi_offset=91.0; real Jmax_uni nanomole_per_min_mg; Jmax_uni=400.0; real K_trans micromolar; K_trans=6.0; real K_act micromolar; K_act=0.38; real L dimensionless; L=50.0; real na dimensionless; na=2.8; real fm dimensionless; fm=0.0003; real Jmax_NaCa nanomole_per_min_mg; Jmax_NaCa=5.5; real Na_i millimolar; Na_i=30.0; real K_Na millimolar; K_Na=9.4; real K_Ca nanomole_per_mg; K_Ca=0.003; real b dimensionless; b=0.5; real NaCa_exchanger.n dimensionless; NaCa_exchanger.n=3.0; // // V:time=((-1)*(i_K_dr+i_K_ATP+i_Ca_f+i_Ca_s+i_NS)/plasma_membrane.C); // i_K_dr=(g_K_dr*delayed_rectifier_K_channel_current.n*I*(V-V_K)); // delayed_rectifier_K_channel_current.n:time=((n_infinity-delayed_rectifier_K_channel_current.n)/tau_n); n_infinity=(1/(1+exp((((-20 millivolt))-V)/(5.3 millivolt)))); tau_n=((50 millisecond)/(exp((V+(75 millivolt))/(65 millivolt))+exp((-1)*(V+(75 millivolt))/(20 millivolt)))); // I:time=((-1)*((I-I_infinity)/tau_I)); I_infinity=(1/(1+exp(((36 millivolt)+V)/(4.5 millivolt)))); // i_K_ATP=(g_K_ATP*O_K_ATP*(V-V_K)); O_K_ATP=((.8*(1+2*MgADP_i/K_dd)+.89*(MgADP_i/K_dd)^2)/((1+MgADP_i/K_dd)^2*(1+ADP3_i/K_td+ATP4_i/K_tt))); MgADP_i=(.55*.3*ADP_i); // i_Ca_f=(.27*g_Ca*O_f*(Ca_o*V/(1-exp(2*F*V/(R*T))))); O_f=(1-(fast_Ca_channel_current.C+B)); k_plus_1=(O_infinity/tau_Ca_f); k_minus_1=((1-O_infinity)/tau_Ca_f); O_infinity=(1/(1+exp((-1)*((15 millivolt)+V)/(6.2 millivolt)))); Ca_d=(((-3.02 per_mM_mV_ms))/k_plus_2*(Ca_o*V/(1-exp(2*F*V/(R*T))))); // fast_Ca_channel_current.C:time=(k_minus_1*(k_minus_2/(k_plus_2*Ca_d*V+k_minus_2))*O_f-k_plus_1*fast_Ca_channel_current.C); // B:time=(k_plus_3*(k_plus_2*Ca_d*V/(k_plus_2*Ca_d*V+k_minus_2))*O_f-k_minus_3*B); // i_Ca_s=(.73*g_Ca*O_s*(Ca_o*V/(1-exp(2*F*V/(R*T))))); O_s=(J/(1+exp((-1)*((11 millivolt)+V)/(3.6 millivolt)))); // J:time=((-1)*((J-J_infinity)/tau_J)); J_infinity=(1/(1+exp((V+(50 millivolt))/(6.3 millivolt)))); tau_J=(TJ/(exp((V+(50 millivolt))/(6.3 millivolt))+exp((-1)*(V+(50 millivolt))/(6.3 millivolt)))+Tmin); // i_NS=(g_NS/(1+K_NS/ATP_i)*(Ca_o*V/(1-exp(2*F*V/(R*T))))); // ADP_i:time=(gamma1*(J_hyd-(J_ANT+Jp_gly))); ATP_i=((2 millimolar)-ADP_i); J_hyd=(k_hyd*ATP_i+delta_J_hyd); Jp_gly=(2*cytosolic_ADP.delta_J_gly_total); delta_J_hyd:time=(1/tau_hyd*(delta_J_hyd_ss-delta_J_hyd)); delta_J_hyd_ss=(delta_J_hyd_max/(1+(K_glu/glu)^n_hyd)); // Ca_i:time=(f_i*((-1)*alpha*(i_NS+i_Ca_f+i_Ca_s)-(gamma2*(J_uni-J_NaCa)+k_Ca*Ca_i))); // delta_psi:time=((-1)/(6E4*Cmito)*((-1)*JH_res+JH_F1+J_ANT+JH_leak+J_uni*2+J_NaCa)); delta_pH=(pH_i-pH_m); proton_motive_force=(V-2.303*R*T/F*delta_pH); // JH_res=(360*rho_res*((ra*10^(6*delta_pH)*exp(F*A_res/(R*T))+ra*10^(6*delta_pH)+(-1)*((ra+rb)*exp(g*6*F*V/(R*T))))/((1+r1*exp(F*A_res/(R*T)))*exp(6*F*delta_psi/(R*T))+(r2+r3*exp(F*A_res/(R*T)))*exp(g*6*F*V/(R*T))))); J_o=(30*rho_res*(((ra*10^(6*delta_pH)+rc1*exp(6*F*delta_psi/(R*T)))*exp(F*A_res/(R*T))-ra*exp(g*6*F*V/(R*T))+rc2*exp(F*A_res/(R*T))*exp(g*6*F*V/(R*T)))/((1+r1*exp(F*A_res/(R*T)))*exp(6*F*delta_psi/(R*T))+(r2+r3*exp(F*A_res/(R*T)))*exp(g*6*F*V/(R*T))))); A_res=(R*T/F*ln(K_res*sqrt(NADH_m)/sqrt(NAD_m))); // JH_leak=(g_H*proton_motive_force); // JH_F1=((-180)*rho_F1*((pa*10^(3*delta_pH)*exp(F*A_F1/(R*T))+pb*10^(3*delta_pH)+(-1)*((pa+pb)*exp(3*F*V/(R*T))))/((1+p1*exp(F*A_F1/(R*T)))*exp(3*F*delta_psi/(R*T))+(p2+p3*exp(F*A_F1/(R*T)))*exp(3*F*V/(R*T))))); Jp_F1=((-60)*rho_F1*(((pa*10^(3*delta_pH)+pc1*exp(3*F*delta_psi/(R*T)))*exp(F*A_F1/(R*T))-pa*exp(3*F*V/(R*T))+pc2*exp(F*A_F1/(R*T))*exp(3*F*V/(R*T)))/((1+p1*exp(F*A_F1/(R*T)))*exp(3*F*delta_psi/(R*T))+(p2+p3*exp(F*A_F1/(R*T)))*exp(3*F*V/(R*T))))); A_F1=(R*T/F*ln(K_F1*F0_F1_ATPase.ATP_m/(ADP_m_free*Pi_m))); ADP_m_free=(.8*ADP_m); // NADH_m:time=(1/6E4*(J_red-J_o)); NAD_m=((8 nanomole_per_mg)-NADH_m); J_red=(J_red_basal+delta_J_red_I+.66*delta_J_red_II); delta_J_red_I=(4.52*f_glu*mitochondrial_NADH.delta_J_gly_total); delta_J_red_II=(2.84*f_glu*mitochondrial_NADH.delta_J_gly_total); f_glu=f_PDHa; f_PDHa=(1/(1+u2*(1+u1*(1+Ca_m/K_Ca2)^(-2)))); mitochondrial_NADH.delta_J_gly_total=(beta_max*beta2*(1+beta1*glu)*glu*ATP_i/(1+beta3*ATP_i+(1+beta4*ATP_i)*(beta5*glu)+(1+beta6*ATP_i)*(beta7*glu^2))); // J_ANT=(Jmax_ANT*((1-ATP4_i*ADP3_m/(ADP3_i*ATP4_m)*exp((-1)*F*V/(R*T)))/((1+ATP4_i/ADP3_i*exp((-1)*f*F*V/(R*T)))*(1+ADP3_m/ATP4_m)))); ADP3_m=(.45*.8*ADP_m); ADP3_i=(.45*.3*ADP_i); ATP4_m=(.05*ATP_ADP_exchange.ATP_m); ATP4_i=(.05*ATP_i); // ADP_m:time=(1/6E4*(J_ANT-(Jp_TCA+Jp_F1))); F0_F1_ATPase.ATP_m=(12-ADP_m); // J_uni=(Jmax_uni*(Ca_i/K_trans*(1+Ca_i/K_trans)^3/((1+Ca_i/K_trans)^4-L/(1+Ca_i/K_act)^na))*(2*F*(V-delta_psi_offset)/(R*T)/(1-exp((-2)*F*(V-delta_psi_offset)/(R*T))))); // J_NaCa=(Jmax_NaCa*(exp(b*F*(V-delta_psi_offset)/(R*T))/((1+K_Na/Na_i)^NaCa_exchanger.n*(1+K_Ca/Ca_m)))); // Ca_m:time=(fm/6E4*(J_uni-J_NaCa)); }