Dear NMusers,
I am trying to implement the transit compartments absorption model as
described by Savic et al. (1).
As my dataset includes some multiple dosing data, I have recoded the actual
time as time after last dose (see code below), as suggested by Wilkins et
al. (2)
However, I always got the following error message for the first observation
record:
0PROGRAM TERMINATED BY OBJ
ERROR IN OBJ2 WITH INDIVIDUAL 1 ID= 1.01010000000000E+04
CONDITIONAL CONTRIBUTION OR IT'S DERIVATIVE IS INFINITE
MESSAGE ISSUED FROM ESTIMATION STEP
AT INITIAL OBJ. FUNCTION EVALUATION
I have tried to play with the initial estimates, but always with the same
outcome.
The relevant part of the code is given here below.
Thanks in advance for any suggestion!
Fabrice
Fabrice Nollevaux,
Pharmacometrician
Arlenda SA
www.arlenda.com
(1) Savic et al. J Pharmacokinet Pharmacodyn (2007) 34:711-726
(2) Wilkins et al. Antimicrob Agents Chemother (2008) 52(6):2138-2148
...
$SUBROUTINES ADVAN6 TOL=3
$MODEL NCOMP=3
COMP(DEPOT, DEFDOSE) ; absorption compartment
COMP(CENTRAL,DEFOBS) ; central compartment
COMP(PERIPH) ; peripheral compartment
$PK
KA = THETA(1)*EXP(ETA(1))
CL = THETA(2)*EXP(ETA(2))
V2 = THETA(3)*EXP(ETA(3))
Q = THETA(4)*EXP(ETA(4))
V3 = THETA(5)*EXP(ETA(5))
KTR = THETA(8)
N = THETA(9)
S2 = V2/1000
K = CL/V2
K23 = Q/V2
K32 = Q/V3
LNFAC = LOG(2.5066)+(N+0.5)*LOG(N)-N
IF (AMT.GT.0) TDOS=TIME
$DES
TALD=T-TDOS ; Time after last dose
DADT(1) = EXP(LOG(DOSE)+LOG(KTR)+N*LOG(KTR*TALD)-KTR*TALD-LNFAC)-KA*A(1)
DADT(2) = KA*A(1)-K*A(2)-K23*A(2)+K32*A(3)
DADT(3) = K23*A(2)-K32*A(3)
$ERROR
IPRED=F
IF (F.GT.0) THEN
W=(F*F*THETA(6)**2+THETA(7)**2)**0.5
ELSE
W=1
ENDIF
Y=F+W*EPS(1)
IRES=DV-IPRED
IWRES=IRES/W
...
Transit compartment model with multiple dose data
2 messages
2 people
Latest: Apr 13, 2011
Dear Fabrice,
Since the model is dying with the first individual in the data, one
explanation might lie with the initial estimates of your model
parameters. A suggestion would be to implement the model in an
exploratory modelling tool like Berkeley Madonna to see whether the
initial estimates are OK, and the model is behaving as it should.
It's worth mentioning as well that this model really needs quite a
bit of information in the absorption phase in order to be useful -
if data in this region of your PK profiles is limited, you'll almost
certainly see numerical issues.
The only obvious issue I see with the implementation in the code
you've provided is that F1 (bioavailability of the dose compartment)
should be set to 0, since dosing is completely handled by the model
code (assuming DOSE is set in $DATA and is appropriately populated
in every record in the data file) - if not, you'll want to add
IF(AMT.GT.0) DOSE=AMT
to your control stream as well.
Hope that's helpful!
Best
Justin
On 4/13/11 8:49 AM, [email protected] wrote:
Dear NMusers,
I am trying to implement the transit compartments absorption model as
described by Savic et al. (1).
As my dataset includes some multiple dosing data, I have recoded the actual
time as time after last dose (see code below), as suggested by Wilkins et
al. (2)
However, I always got the following error message for the first observation
record:
0PROGRAM TERMINATED BY OBJ
ERROR IN OBJ2 WITH INDIVIDUAL 1 ID= 1.01010000000000E+04
CONDITIONAL CONTRIBUTION OR IT'S DERIVATIVE IS INFINITE
MESSAGE ISSUED FROM ESTIMATION STEP
AT INITIAL OBJ. FUNCTION EVALUATION
I have tried to play with the initial estimates, but always with the same
outcome.
The relevant part of the code is given here below.
Thanks in advance for any suggestion!
Fabrice
Fabrice Nollevaux,
Pharmacometrician
Arlenda SA
www.arlenda.com
(1) Savic et al. J Pharmacokinet Pharmacodyn (2007) 34:711-726
(2) Wilkins et al. Antimicrob Agents Chemother (2008) 52(6):2138-2148
...
$SUBROUTINES ADVAN6 TOL=3
$MODEL NCOMP=3
COMP(DEPOT, DEFDOSE) ; absorption compartment
COMP(CENTRAL,DEFOBS) ; central compartment
COMP(PERIPH) ; peripheral compartment
$PK
KA = THETA(1)*EXP(ETA(1))
CL = THETA(2)*EXP(ETA(2))
V2 = THETA(3)*EXP(ETA(3))
Q = THETA(4)*EXP(ETA(4))
V3 = THETA(5)*EXP(ETA(5))
KTR = THETA(8)
N = THETA(9)
S2 = V2/1000
K = CL/V2
K23 = Q/V2
K32 = Q/V3
LNFAC = LOG(2.5066)+(N+0.5)*LOG(N)-N
IF (AMT.GT.0) TDOS=TIME
$DES
TALD=T-TDOS ; Time after last dose
DADT(1) = EXP(LOG(DOSE)+LOG(KTR)+N*LOG(KTR*TALD)-KTR*TALD-LNFAC)-KA*A(1)
DADT(2) = KA*A(1)-K*A(2)-K23*A(2)+K32*A(3)
DADT(3) = K23*A(2)-K32*A(3)
$ERROR
IPRED=F
IF (F.GT.0) THEN
W=(F*F*THETA(6)**2+THETA(7)**2)**0.5
ELSE
W=1
ENDIF
Y=F+W*EPS(1)
IRES=DV-IPRED
IWRES=IRES/W
...
--
Justin Wilkins, PhD
Exprimo NV
Tel:
+41 (0) 81 599 23 82
Mobile:
+41 (0) 76 561 09 49
E-mail:
[email protected]
Web:
www.exprimo.com
This e-mail is confidential. It is also privileged or
otherwise protected by work product immunity or other legal
rules. The information is intended to be for use of the
individual or entity named above. If you are not the intended
recipient, please be aware that any disclosure, copying,
distribution or use of the contents of this information is
prohibited. You should therefore delete this message from your
computer system. If you have received the message in error,
please notify us by reply e-mail. The integrity and security of
this message cannot be guaranteed on the Internet.
Thank you for your co-operation.