/* * Interaction of glycolysis and mitochondrial respiration in metabolic * oscillations of pancreatic islets * * Model Status * * This CellML model has been coded by translating the authors * original XPPAUT.ode file, which can be found at http://www.math.fsu.edu/~bertram/software/islet/BJ_07/mitophan.ode. * The model runs in PCEnv in COR and is able to produce the published * results. The parameters have been chosen to recreate the bursting * behaviour seen in figures 3 and 4 of the original paper. Some * equations have inconsistent magnitudes due to the fact that * some units are defined in milliseconds whereas others are defined * in seconds. * * Model Structure * * Glucose metabolism plays a key signalling role in insulin-secreting * pancreatic beta cells. In addition to generating ATP - the ubiquitous * form of energy used to fuel many cellular processes - glucose * metabolism in pancreatic beta cells is also the means by which * blood glucose levels are monitored, ensuring an appropriate * level of insulin secretion. ATP-sensitive potassium channels * in the plasma membrane are activated by ADP and are inactivated * by ATP, therefore a high ATP/ADP ratio results in a reduced * number of open, ATP-sensitive, potassium channels. In turn, * this results in membrane depolarisation and voltage-sensitive * calcium channels open. The resulting influx of calcium ions * into the cell cytosol induces insulin secretion, which in a * healthy individual typically occurs in oscillatory waves. These * can be fast with an oscillatory period of less than a minute, * or slow with a duration of 2 to 7 minutes, or they can be a * combination of fast and slow waves. This oscillatory pattern * of insulin secretion appears to have a physiological function * which is of particular interest since it is lost in patients * with type II diabetes. * * Although the definitive mechanisms underlying these insulin * oscillations are unknown, in the paper described here, Richard * Bertram et al. suggest that calcium feedback onto ATP production * or consumption is responsible for the fast component of the * insulin oscillations, while oscillations in the glycolytic pathway * are responsible for the slow component. Furthermore, they build * these phenomena into a mathematical model that combines a model * of mitochondrial metabolism with models of glycolytic oscillations, * plasma membrane electrical activity, and calcium handling in * the cytosol and endoplasmic reticulum (summarised in the figure * below). * * model diagram * * [[Image file: bertram_2007.png]] * * Schematic diagram of the model components and the variables * which are exchanged between the components. * * The original paper reference is cited below: * * Interaction of glycolysis and mitochondrial respiration in metabolic * oscillations of pancreatic islets, Richard Bertram, Leslie S. * Satin, Morten Gram Pedersen, Dan S. Luciani, and Arthur Sherman, * 2007, Biophysical Journal, 92, 1544-1555. PubMed ID: 17172305 * * The authors highlight that the original model code can be downloaded * here. */ import nsrunit; unit conversion on; unit minute=60 second^1; // unit millisecond predefined // unit millivolt predefined unit per_millivolt=1E3 kilogram^(-1)*meter^(-2)*second^3*ampere^1; // unit femtofarad predefined // unit picosiemens predefined // unit femtoampere predefined // unit millimolar predefined // unit micromolar predefined unit per_micromolar=1E3 meter^3*mole^(-1); unit millimolar_millisecond=1E3 meter^(-3)*second^(-1)*mole^1; unit micromolar_millisecond_millivolt=1E3 kilogram^(-1)*meter^(-5)*second^2*ampere^1*mole^1; unit per_micromolar_millisecond_millivolt=1E9 kilogram^(-1)*meter^1*second^2*ampere^1*mole^(-1); unit micromolar_millisecond=1 meter^(-3)*second^(-1)*mole^1; unit micromolar_second=1E-3 meter^(-3)*second^(-1)*mole^1; unit micromolar_millisecond_femtoampere=1E12 meter^(-3)*second^(-1)*ampere^(-1)*mole^1; unit micromolar_millivolt=1 kilogram^(-1)*meter^(-5)*second^3*ampere^1*mole^1; unit first_order_rate_constant=1E3 second^(-1); unit second_order_rate_constant=1E6 meter^3*second^(-1)*mole^(-1); math main { realDomain time millisecond; time.min=0; extern time.max; extern time.delta; real Vm(time) millivolt; when(time=time.min) Vm=-60.0; real cm femtofarad; cm=5300.0; real Ica(time) femtoampere; real Ik(time) femtoampere; real Ikca(time) femtoampere; real Ikatp(time) femtoampere; real gK picosiemens; gK=2700.0; real VK millivolt; VK=-75.0; real n(time) dimensionless; when(time=time.min) n=0.0; real n_infinity(time) dimensionless; real tau_n millisecond; tau_n=20.0; real vn millivolt; vn=-16.0; real sn millivolt; sn=5.0; real gCa picosiemens; gCa=1000.0; real VCa millivolt; VCa=25.0; real m_infinity(time) dimensionless; real v millivolt; v=-20.0; real sm millivolt; sm=12.0; real gkCa picosiemens; gkCa=300.0; real kd micromolar; kd=0.5; real c(time) micromolar; when(time=time.min) c=0.17; real gkATP_ picosiemens; gkATP_=16000.0; real katpo(time) dimensionless; real topo(time) dimensionless; real bottomo(time) dimensionless; real mgadp(time) micromolar; real adp3m(time) micromolar; real atp4m(time) micromolar; real atp(time) micromolar; real adp(time) micromolar; when(time=time.min) adp=1137.0; real JGPDH(time) micromolar_millisecond; real kGPDH micromolar_millisecond; kGPDH=0.0005; real FBP(time) micromolar; when(time=time.min) FBP=2.16; real G6P(time) micromolar; when(time=time.min) G6P=301.0; real JGK_ms micromolar_millisecond; real JPFK_ms(time) micromolar_millisecond; real F6P(time) micromolar; real JPFK(time) micromolar_second; real bottom1 dimensionless; bottom1=1; real topa1 dimensionless; topa1=0; real k1 micromolar; k1=30; real k2 micromolar; k2=1; real k3 micromolar; k3=50000; real k4 micromolar; k4=1000; real VmaxPFK micromolar_millisecond; VmaxPFK=5.0; real weight2(time) dimensionless; real topa2 dimensionless; real bottom2(time) dimensionless; real topa3(time) dimensionless; real weight3(time) dimensionless; real bottom3(time) dimensionless; real f13 dimensionless; f13=0.02; real f43 dimensionless; f43=20; real f23 dimensionless; f23=0.2; real f42 dimensionless; f42=20; real f41 dimensionless; f41=20; real weight4(time) dimensionless; real topa4(time) dimensionless; real bottom4(time) dimensionless; real weight5(time) dimensionless; real topa5(time) dimensionless; real bottom5(time) dimensionless; real weight6(time) dimensionless; real topa6(time) dimensionless; real bottom6(time) dimensionless; real weight7(time) dimensionless; real topa7(time) dimensionless; real bottom7(time) dimensionless; real weight8(time) dimensionless; real topa8(time) dimensionless; real bottom8(time) dimensionless; real weight9 dimensionless; real topa9(time) dimensionless; real bottom9(time) dimensionless; real weight10(time) dimensionless; real topa10(time) dimensionless; real bottom10(time) dimensionless; real weight11(time) dimensionless; real topa11(time) dimensionless; real bottom11(time) dimensionless; real weight12(time) dimensionless; real topa12(time) dimensionless; real bottom12(time) dimensionless; real weight13(time) dimensionless; real topa13(time) dimensionless; real bottom13(time) dimensionless; real weight14(time) dimensionless; real topa14(time) dimensionless; real bottom14(time) dimensionless; real weight15(time) dimensionless; real topa15(time) dimensionless; real bottom15(time) dimensionless; real weight16(time) dimensionless; real topa16(time) dimensionless; real bottom16(time) dimensionless; real topb(time) dimensionless; real AMP micromolar; AMP=500.0; real lambda dimensionless; lambda=0.06; real kappa dimensionless; kappa=0.001; real JPDH(time) micromolar_millisecond; real p1 dimensionless; p1=400.0; real p2 dimensionless; p2=1.0; real p3 micromolar; p3=0.01; real JGPDHbas micromolar_millisecond; JGPDHbas=0.0005; real NADm(time) millimolar; real Cam(time) micromolar; when(time=time.min) Cam=0.2; real NADHm(time) millimolar; when(time=time.min) NADHm=0.4; real gamma dimensionless; gamma=0.001; real JO(time) micromolar_millisecond; real p4 micromolar_millisecond; p4=0.6; real p5 millimolar; p5=0.1; real p6 millivolt; p6=177.0; real p7 millivolt; p7=5.0; real delta_psi(time) millivolt; when(time=time.min) delta_psi=164.0; real NADmtot millimolar; NADmtot=10.0; real Cmito micromolar_millivolt; Cmito=1.8; real JHres(time) micromolar_millisecond; real JHatp(time) micromolar_millisecond; real JANT(time) micromolar_millisecond; real JHleak(time) micromolar_millisecond; real JNaCa(time) micromolar_millisecond; real Juni(time) micromolar_millisecond; real p8 micromolar_millisecond; p8=7.0; real p9 millimolar; p9=0.1; real p10 millivolt; p10=177.0; real p11 millivolt; p11=5.0; real JF1F0(time) micromolar_millisecond; real p13 millimolar; p13=10.0; real p14 millivolt; p14=190.0; real p15 millivolt; p15=8.5; real p16 micromolar_millisecond; p16=35.0; real ATPm(time) millimolar; real JGK micromolar_second; JGK=0.4; real p17 micromolar_millisecond_millivolt; p17=0.002; real p18 micromolar_millisecond; p18=-0.03; real p19 micromolar_millisecond; p19=0.35; real p20 dimensionless; p20=2.0; real FRT per_millivolt; FRT=0.037410133; real RATm(time) dimensionless; real ADPm(time) millimolar; when(time=time.min) ADPm=11.1; real p21 per_micromolar_millisecond_millivolt; p21=0.04; real p22 second_order_rate_constant; p22=1.1; real p23 micromolar_millisecond; p23=0.01; real p24 per_millivolt; p24=0.016; real fmito dimensionless; fmito=0.01; real Jmito(time) micromolar_millisecond; real Amtot millimolar; Amtot=15.0; real delta dimensionless; real Jhyd(time) micromolar_millisecond; real khyd second_order_rate_constant; khyd=0.00005; real khydbas first_order_rate_constant; khydbas=0.00005; real atot micromolar; atot=2500.0; real fcyt dimensionless; fcyt=0.01; real Jer(time) micromolar_millisecond; real Jmem(time) micromolar_millisecond; real kPMCA first_order_rate_constant; kPMCA=0.1; real alpha micromolar_millisecond_femtoampere; alpha=4.5E-6; real Cbas micromolar; Cbas=0.05; real Jleak(time) micromolar_millisecond; real pleak first_order_rate_constant; pleak=0.0002; real Caer(time) micromolar; when(time=time.min) Caer=345.0; real was_JSERCA(time) micromolar_millisecond; real kSERCA first_order_rate_constant; kSERCA=0.4; real fer dimensionless; fer=0.01; real Vc_Ver dimensionless; Vc_Ver=31.0; // // Vm:time=((-1)*(Ik+Ica+Ikca+Ikatp)/cm); // Ik=(gK*n*(Vm-VK)); // n:time=((n_infinity-n)/tau_n); n_infinity=(1/(1+exp((vn-Vm)/sn))); // Ica=(gCa*m_infinity*(Vm-VCa)); // m_infinity=(1/(1+exp((v-Vm)/sm))); // Ikca=(gkCa/(1+(kd/c)^2)*(Vm-VK)); // Ikatp=(gkATP_*katpo*(Vm-VK)); katpo=(topo/bottomo); topo=(.08*(1+2*mgadp/(17 micromolar))+.89*(mgadp/(17 micromolar))^2); bottomo=((1+mgadp/(17 micromolar))^2*(1+adp3m/(26 micromolar)+atp4m/(1 micromolar))); mgadp=(.165*adp); adp3m=(.135*adp); atp4m=(.05*atp); // JGPDH=(kGPDH*sqrt(abs(FBP/(1 micromolar)))); // G6P:time=(JGK_ms-JPFK_ms); // FBP:time=(JPFK_ms-.5*JGPDH); // F6P=(.3*G6P); // JPFK_ms=(kappa*JPFK); JPFK=((lambda*VmaxPFK*topa16+VmaxPFK*topb)/bottom16); weight2=(atp^2/(k4*(1 micromolar))); topa2=topa1; bottom2=(bottom1+weight2); weight3=(F6P^2/(k3*(1 micromolar))); topa3=(topa2+weight3); bottom3=(bottom2+weight3); weight4=((F6P*atp)^2/(f43*k3*k4*(1 micromolar)^2)); topa4=(topa3+weight4); bottom4=(bottom3+weight4); weight5=(FBP/k2); topa5=topa4; bottom5=(bottom4+weight5); weight6=(FBP*atp^2/(k2*k4*f42*(1 micromolar))); topa6=topa5; bottom6=(bottom5+weight6); weight7=(FBP*F6P^2/(k2*k3*f23*(1 micromolar))); topa7=(topa6+weight7); bottom7=(bottom6+weight7); weight8=(FBP*F6P^2*atp^2/(k2*k3*k4*f23*f42*f43*(1 micromolar)^2)); topa8=(topa7+weight8); bottom8=(bottom7+weight8); weight9=(AMP/k1); topa9=topa8; bottom9=(bottom8+weight9); weight10=(AMP*atp^2/(k1*k4*f41*(1 micromolar))); topa10=topa9; bottom10=(bottom9+weight10); weight11=(AMP*F6P^2/(k1*k3*f13*(1 micromolar))); topa11=(topa10+weight11); bottom11=(bottom10+weight11); weight12=(AMP*F6P^2*atp^2/(k1*k3*k4*f13*f41*f43*(1 micromolar)^2)); topa12=(topa11+weight12); bottom12=(bottom11+weight12); weight13=(AMP*FBP/(k1*k2)); topa13=topa12; bottom13=(bottom12+weight13); weight14=(AMP*FBP*atp^2/(k1*k2*k4*f42*f41*(1 micromolar))); topa14=topa13; bottom14=(bottom13+weight14); weight15=(AMP*FBP*F6P^2/(k1*k2*k3*f23*f13*(1 micromolar))); topa15=topa14; bottom15=(bottom14+weight15); topb=weight15; weight16=(AMP*FBP*F6P^2*atp^2/(k1*k2*k3*k4*f23*f13*f42*f41*f43*(1 micromolar)^2)); topa16=(topa15+weight16); bottom16=(bottom15+weight16); // JPDH=(p1/(p2+NADHm/NADm)*(Cam/(p3+Cam))*(JGPDH+JGPDHbas)); // NADHm:time=(gamma*(JPDH-JO)); // JO=(p4*(NADHm/(p5+NADHm))/(1+exp((delta_psi-p6)/p7))); // NADm=(NADmtot-NADHm); // delta_psi:time=((JHres-(JHatp+JANT+JHleak+JNaCa+2*Juni))/Cmito); // JHres=(p8*(NADHm/(p9+NADHm))/(1+exp((delta_psi-p10)/p11))); // JF1F0=(p16*p13/(p13+ATPm)/(1+exp((p14-delta_psi)/p15))); // JHatp=(3*JF1F0); // JGK_ms=(kappa*JGK); // JHleak=(p17*delta_psi+p18); // JANT=(p19*(RATm/(RATm+p20)/exp((-0.5)*FRT*delta_psi))); // RATm=(ATPm/ADPm); // Juni=((p21*delta_psi-p22)*c^2); // JNaCa=(p23/c*Cam*exp(p24*delta_psi)); // Cam:time=((-1)*fmito*Jmito); // Jmito=(JNaCa-Juni); // ADPm:time=(gamma*(JANT-JF1F0)); // ATPm=(Amtot-ADPm); // adp:time=((-1)*delta*JANT+Jhyd); // Jhyd=((khyd*c+khydbas)*atp); // atp=(atot-adp); // c:time=(fcyt*(Jmem+Jer+delta*Jmito)); // Jmem=((-1)*(alpha*Ica+kPMCA*(c-Cbas))); // Jleak=(pleak*(Caer-c)); // was_JSERCA=(kSERCA*c); // Jer=(Jleak-was_JSERCA); // Caer:time=((-1)*fer*Vc_Ver*Jer); // delta=(3.9/53.2); }