Re: Enterohepatic Circulation!!!
From:Luann Phillips
Subject:Re: [NMusers] Enterohepatic Circulation!!!
Date:Tue, 11 Jun 2002 17:58:53 -0400
The models suggested work for single dose datasets. If you need to model
enterhepatic circulation for multiple dose datasets, you can use the
code provided below.
This code was adapted from code that Dr. Beal wrote for a model with a
changing Ka value.
Regards,
Luann Phillips
Manager of Pharmacometrics R&D
Cognigen Corporation
395 Youngs Rd.
Williamsville, NY 14221
(716) 633-3463 ext. 236
$PROB ENTEROHEPATIC Circulation for multiple doses - GB Empties twice
following each dose
;Data Description
; Doses of Drug go into CMT=1 with ADDL=10 and II=24
; Dummy Dose into CMT=5 with ADDL=10, II=24, and AMT=1
; Dummy Dose into CMT=6 with ADDL=10, II=24, and AMT=1
; Dummy Dose into CMT=7 with ADDL=10, II=24, and AMT=1
; Dummy Dose into CMT=8 with ADDL=10, II=24, and AMT=1
; Structural Model
; 3 compartment model plus a depot compartment
; compartment 1 serves as the depot
; compartment 2 and 3 serve as a standard 2 cmt model (central + peri.)
; compartment 4 represents the gall bladder (GB)
; To control the 'on' and 'off' of flow to the GB and from the GB to the
depot a 'change point'
; modeling technique will be used. This technique uses dummy dose
compartments
; to allow the estimation of lag times which will be used to control
the
; on-off switch for transport to and from the GB.
; flow into the GB (K24) will be 'on' from 0 to 8 hours after each
dose and
; then will be turned 'off' until the following dose
; flow from the GB to the depot compartment (K41) will be turned 'on'
at
; the time of lunch and dinner(known times) and turned 'off' at an
estimated time later
$INPUT ID TIME AMT DV CMT EVID ADDL II
$DATA
$SUBROUTINES ADVAN6 TRANS1 TOL=5
$MODEL
COMP=(DEPOT,DEFDOSE,INITIALOFF);dosing compartment - also used to turn
on GB entry
COMP=(CENTRAL,NODOSE,DEFOBS) ;central compartment
COMP=(PERI,NODOSE) ;peripherial compartment
COMP=(GB,NODOSE) ;gall bladder
COMP=(GB4ON) ;dummy cmt to turn on GB exit at lunch
COMP=(GB4OFF) ;dummy cmt to turn off GB exit at lunch
COMP=(GB8ON) ;dummy cmt to turn on GB exit at dinner
and turn off GB entry
COMP=(GB8OFF) ;dummy cmt to turn off GB exit at
dinner
$PK
;this allows PK to be called at LAGGED dose times - critical
CALLFL=-2
KA=THETA(1)
ALAG1=THETA(2)
TVCL=THETA(3)
CL=TVCL*EXP(ETA(1))
TVVC=THETA(4)
V2=TVVC*EXP(ETA(2))
;flows to and from the peripherial compartment
K23=THETA(5)
K32=THETA(6)
;to prevent drug from accumulating in the gall bladder after the gall
bladder empties
; K24 will be turned off from the last modeled time the gall bladder
empties for a day
; until the next day
;K24= flow from central to the gall bladder (this will be turned on and
off)
;K41= flow from gall bladder to depot (this will be turned on and off)
K24=THETA(7)
K41=THETA(8)
;for this model it was assumed that the amount of elapsed time the gall
bladder exit rate will
; be on each time it empties will be the same (GBL)
;ALAG5 and ALAG7 were set to fixed values based upon the known time of
lunch and dinner
; 0.0001 was added in each case to prevent the possibility of an
infinite value of OBJ value
; because the dataset had PK samples at time=4 and time=8
;ALAG5 AND ALAG7 could be estimated
GBL=THETA(9)
ALAG5=4.0001
ALAG6=ALAG5+GBL
ALAG7=8.0001
ALAG8=ALAG7+GBL
;SCALE FACTOR
S2=V2/1000
;the following code sets up indicator variables to control K24 and K41
in the
; $DES block- JON/JOFF/Z control K41 and GBON/GBOFF/Z2 control K24
;first record in an individual K24 is 'on' and K41 is 'off'
IF(NEWIND.LT.2)THEN
JON=0
JOFF=1
GBON=1
GBOFF=0
ENDIF
;set the values of the on'off indicator variables
IF(JON.EQ.1) Z=1
IF(JOFF.EQ.1) Z=0
IF(GBON.EQ.1) Z2=1
IF(GBOFF.EQ.1) Z2=0
;reset control switches to zero - note these do not change the value of
Z or Z2
JON=0
JOFF=0
GBON=0
GBOFF=0
;note that DOSREC(variable)=0 except at the time a dose actually enters
the system
; (doses enter the system at TIME + n*II + ALAG#)
;dose records to cmt 1 should turn on GB entry (K24)
IF(DOSREC(CMT).EQ.1) GBON=1
;dose record to cmt 7 should turn off GB entry (K24)
IF(DOSREC(CMT).EQ.7) GBOFF=1
;dose records to cmt=5 and cmt=7 should turn on GB exit (K41)
IF(DOSREC(CMT).EQ.5.OR.DOSREC(CMT).EQ.7) JON=1
;dose records to cmt=6 or 8 should turn off GB exit (K41)
IF(DOSREC(CMT).EQ.6.OR.DOSREC(CMT).EQ.8) JOFF=1
$DES
K10=CL/V2
DADT(1) = -KA*A(1)+K41*Z*A(4)
DADT(2) = KA*A(1) + K32*A(3) - K23*A(2) - K24*Z2*A(2) - K10*A(2)
DADT(3) = K23*A(2) - K32*A(3)
DADT(4) = K24*Z2*A(2) - K41*Z*A(4)
DADT(5) = 0
DADT(6) = 0
DADT(7) = 0
DADT(8) = 0
$ERROR
Y = F * (1 + EPS(1))
$THETA
(0, 0.8) ;Ka :theta 1
(0, 0.3) ;lag time for depot 1 cmt:theta 2
(0,20) ;clearance:theta 3
(0,80) ;Vc:theta 4
(0,0.15) ;k23:theta 5
(0,0.09) ;k32: theta 6
(0, 0.2) ;K24:theta 7
(0, 1) ;K41:theta 8
(0, 0.5) ;elapsed time GB exit is 'on' (Theta9)
$OMEGA 0.25 0.25
$SIGMA 0.04