Oscillations in the Oral Glucose Tolerance Test (OGTT)

by Reinaldo Baretti Machín

 

http://www1.uprh.edu/rbaretti

 

 www.geocities.com/serienumerica4

www.geocities.com/serienumerica3

www.geocities.com/serienumerica2

www.geocities.com/serienumerica

 

For questions and suggestions write to:

reibaretti2004@yahoo.com

 

 

 

References:

1. The human body's response to glucose and three physical models American Journal of Physics -- July 1987 -- Volume 55, Issue 7, pp. 641-645

2. E. Ackerman et. al, Phys. Med. Biol. , 9 ,203, (1964) .

A normal glucose response curve to an oral glucose test (OGTT) looks like a damped oscillator (see fig 1.) around baseline values of 90-100 mg/dL.

The DE describing the glucose concentration g(t)  and the insulin concentration in the blood  h(t) are those given in a model proposed by Ackerman (ref 2) by

 

        dg/dt = -k1 g(t) –k2 h(t) + S(t)                                         (1)

        dh/dt = -k3 h(t)  + k4 g(t)                                  .               (2)

where k1 , k2 , k3 , k4 ~ 1/minutes   and S(t) represents the ingestion of glucose per unit time ~ concentration/minute administered to a person (see fig 2). S(t) can be approximated by a constant value S0 for an interval τ , the time it takes to ingest a high glucose cola.

      

 

 

Fig 1. (Taken from Ref 1) Oscillations of the blood glucose level during an OGTT.

Fig 2.  Ingestion of glucose at the rate S(t) during τ .

 

Ou aim in this note is to ascertain, using fig (2) , some plausible values for the rate constants k1 , k2 , k3 , k4 . After finding k1 , k2 , k3 , k4 , we solve numerically the differential equations (1) and (2) to see if it reproduces the data of figure 1.

First lets dispense with S(t). That is we start at t=50 minutes when the dosage S(t) has been fully delivered. The DE are now

    

   dg/dt = -k1 g(t) –k2 h(t)                                         (3)

   dh/dt = -k3 h(t)  + k4 g(t)                   .              (4)

Some insight is gained by eliminating h(t) from(3) and obtaining the second order DE for a damped oscillator

d2g/dt2 + (k1 + k3 ) dg/dt + ( k1 k 3+ k2 k4 ) g = 0       (5).

Eq (5) is of the form

d2g/dt2 + 2β dg/dt + (ω0 )2 g = 0                              (6)

 

where   2β  =(k1 + k3 )  ,  (ω0 )2  =( k1 k 3+ k2 k4 )      .

β ~ 1/minute     , (ω0 )2 ~ 1/minute2     .

The solution of (6) is of the form

g(t) = A exp(-βt )sin (ω1 t )                            (7-a)

with

( ω1)2 = ( ω0 2 – β2 )                              .         (7-b)

 

 

 

 

 

Fig 3.  In the interval of 85 minutes g(t) undergoes an oscillation of frequency ω1 = 2π/(85) ~ rad/minute . It also decays from an amplitude of 150 mg/dL to nearly 125 mg/dL.

 

Examining fig. 3 we have that

 ω1 = 7.39E-2 rad/min          ,      (8)  

and 

exp(-β 85) =  125/150 = 0.833                                     .  (9)

From (9)  

         β = - ln (.833) /85  = 2.15 E-3  minute-1         

                                       = =(k1 + k2 )/2                      . (10)

To find the rate constants ki  we  introduce the following “ansatz” .

Let     k1 = k3  and  k2=k4 .

This gives , from (10)

                             k1=2.15E-3/min                          (11)

and from (7-b)    k2 = ω1 =  7.39E-2 rad/min   .       (12)

 

 

Fig 4. Oscillations of g(t) assuming k1=2.15E-3/min ,k2=7.39E-2/min. Compare with the experimental data in Fig 1.

Fig 5. Oscillation with increased  k1=55E-3/min , k2=7.39E-2. The figure is closer to Fig 1.

 

CONCLUSION

A near fit to blood glucose oscillations during OGTT  can be modeled by assuming initially k1=k3 and k2=k4 in equations (3) and (4).

FORTRAN code

c DE equations for OGTT oral glucose tolerance test

c ref AJP Vol 55 (7),page 645 , July 1987

c assume k1=k3  ,   k2=k4

      real k1,k2,k3,k4

      data k1,k2/5.e-3,7.39E-2 /

      data ti,tf,tstop/50.,300.,50./

      k3=k1

      k4=k2

      pi=2.*asin(1.)

      tau=100.

      beta=(k1+k3)/2.

      w0=sqrt((2.*pi/tau)**2 +beta**2)

      t1=1./k1

      t2=1./k2

      t3=1./k3

      t4=1./k4

      w0=sqrt(k1*k3+k2*k4)

      w1=2.*pi/100.

      dt=amin1(t1,t2,t3,t4)/100.

      nstep=int(tf/dt)

      kp=int(float(nstep)/80.)

      kount=kp

c g ~ glucose concentration in mg/dL

      gbase=100.

c g0 ,g1 ,h0 ,h1 refer to values above a baseline

c at t=50 min g(t) passes through a maximum dg/dt =0 and h0=-k1*g0/k2

      g0=50.

      h0=k1*g0/k2

      print*,'t1,t2,t3,t4=',t1,t2,t3,t4

      print*,'tau0,tau1=',2.*pi/w0,2.*pi/w1

      print*,'w1**2,w0**2-beta**2=',w1**2,w0**2-beta**2

      print*,'  '

      print 100,ti,g0+gbase

      do 10 i=1,nstep

      t=ti+dt*float(i)

      g1=g0+dt*(-k1*g0-k2*h0+s(t-dt,tstop))

      h1=h0+dt*(-k3*h0+k4*g0 )

      if(i.eq.kount)then

      print  100,t,g1+gbase

      kount=kount+kp

      endif

      g0=g1

      h0=h1

10    continue

100   format('t,g+gbase=',2(3x,e10.3))

      stop

      end

     

     

      function s(t,tstop)

c      if(t.le.tstop)s=2.3

c      if(t.gt.tstop)s=0.

      s=0.

      return

      end