From: "David Nix, Pharm D." <nix@pharmacy.arizona.edu>
Subject: Rich data set
Date: Mon, 14 May 2001 10:12:59 -0700
I am trying to fit some data involving administration of a drug under four different conditions. The individual data exhibit good fits using a one-compartment model with first order absorption and first order elimination, except that a lag time is necessary in most cases. The data consists of 16 subjects each being administered 4 different treatments. There are 15 samples available per subject. I deleted all "0" concentrations at the end of each profile, and some of the 0 concentrations between the dose and first detectable concentration.
I am having two problems: 1. the lag time is not handled very well. An estimate for lag time was 98.9 hours for the run using the control steam below. If I set an upper bound, the estimate approaches this bound.
2. Errors NO. OF SIG. DIGITS IN FINAL EST.: 3.1 (sometimes unreportable), R MATRIX ALGORITHMICALLY SINGULAR, COVARIANCE MATRIX UNOBTAINABLE, S MATRIX ALGORITHMICALLY SINGULAR. I have tried many things to get around these problems including using different residual error models, etc. I have included at least one "0.0" concentration in the data at the time prior to the first measurable concentration following the dose.
The control stream follows:
$PROBLEM POPULATION DATA
$INPUT ID PERD TX SEQ DOSE=AMT TIME DV AGE SEX RACE SMOK
$INPUT HT WT BMI LBW CLCR
$DATA LOFAZ2.PRN
$SUBROUTINES ADVAN2 TRANS2
$PK
TVKA=THETA(1)
TVCL=THETA(2)
TVV=THETA(3)
KA=TVKA*EXP(ETA(1))
CL=TVCL*EXP(ETA(2))
V=TVV*EXP(ETA(3))
S2=V
ALAG1=THETA(4)*EXP(ETA(4))
>>>IF(TX.EQ.1) TVLAG=2.34
>>>IF(TX.EQ.2) TVLAG=1.67
>>>IF(TX.EQ.3) TVLAG=2.14
>>>IF(TX.EQ.4) TVLAG=2.43
; I have tried fixing the lag time given the best estimates of the mean from individual estimates.
; ALAG1=TVLAG*EXP(ETA(4))
$ERROR
DEL=0
IF(F.EQ.0) DEL=1
IPRED=F
W=(F**2+THETA(5)**2)**0.5
W=W+DEL
IRES=DV-IPRED
IWRES=IRES/W
PHI2=1
IF(TX.EQ.2) PHI2=THETA(6)
PHI3=1
IF(TX.EQ.3) PHI3=THETA(7)
PHI4=1
IF(TX.EQ.4) PHI4=THETA(8)
Y=(IPRED+W*EPS(1))*PHI2*PHI3*PHI4
; PHI2 is the relative bioavailability of treatment 2 compared to treatment 1
; PHI3 is the relative bioavailability of treatment 3 compared to treatment 1
; PHI4 is the relative bioavailability of treatment 4 compared to treatment 1
; All treatments involve administration of the same drug and dose; however, Tx1 is fasting, Tx2 is ; with food, Tx3 is w/acidic juice and Tx4 is w/ antacid
$THETA (0,1.0) (0,202) (0,1270) (0,2) (0,0.05)
$THETA (0,1.5) (0,1) (0,.94)
$OMEGA 0.25 0.25 0.25 0.25
$ESTIMATION METHOD=0 POSTHOC MAXEVAL=1000 NOABORT
$COVR
Any suggestions on revised coding or troubleshooting would be greatly appreciated.
Rich data set
4 messages
3 people
Latest: May 23, 2001
From: "Gibiansky, Leonid" <gibianskyl@globomax.com>
Subject: RE: Rich data set
Date: Mon, 14 May 2001 13:42:03 -0400
I would use
METHOD=1 INTERACTION
simplify the error structure as:
$ERROR
IPRED=F
Y=IPRED*(1+EPS(1))+EPS(2)
and include bioavailability into the model as
F1=1
IF(TX.EQ.2) F1=THETA(6)
IF(TX.EQ.3) F1=THETA(7)
IF(TX.EQ.4) F1=THETA(8)
Hope this helps,
Leonid
From: "David Nix, Pharm D." <nix@pharmacy.arizona.edu>
Subject: Re: Rich data set
Date: Mon, 14 May 2001 14:38:42 -0700
Thanks Leonid Gibiansky for your suggestion. I tried the following control stream:
$PROBLEM POPULATION DATA
$INPUT ID PERD TX SEQ DOSE=AMT ATIM TIME DV AGE SEX RACE SMOK
$INPUT HT WT BMI LBW CLCR
$DATA CLOFAZ3.PRN
$SUBROUTINES ADVAN2 TRANS2
$PK
TVKA=THETA(1)
TVCL=THETA(2)
TVV=THETA(3)
KA=TVKA*EXP(ETA(1))
CL=TVCL*EXP(ETA(2))
V=TVV*EXP(ETA(3))
S2=V
ALAG1=THETA(4)*EXP(ETA(4))
F1=1
IF(TX.EQ.2) F1=THETA(5)
IF(TX.EQ.3) F1=THETA(6)
IF(TX.EQ.3) F1=THETA(7)
$ERROR
IPRED=F
Y=IPRED*(1+EPS(1))+EPS(2)
$THETA (0,1.0) (0,202) (0,1270) (0,2)
$THETA (0,1.5) (0,1) (0,.94)
$OMEGA 0.25 0.25 0.25 0.25
$ESTIMATION METHOD=1 INTERACTION POSTHOC MAXEVAL=9000 NOABORT
$COVR
The error message was:
0MINIMIZATION TERMINATED
DUE TO PROXIMITY OF LAST ITERATION EST. TO A VALUE
AT WHICH THE OBJ. FUNC. IS INFINITE (ERROR=136)
0AT THE LAST COMPUTED INFINITE VALUE OF THE OBJ. FUNCT.:
ERROR IN NCONTR WITH INDIVIDUAL 5 ID= .50000000E+01
NUMERICAL HESSIAN OF OBJ. FUNC. FOR COMPUTING CONDITIONAL ESTIMATE
IS NON POSITIVE DEFINITE
THETA=
2.48E-01 7.80E+01 5.27E+03 1.44E+00 1.32E+00 1.00E+00
2.15E+02
NO. OF FUNCTION EVALUATIONS USED: 1131
NO. OF SIG. DIGITS UNREPORTABLE
ETABAR IS THE ARITHMETIC MEAN OF THE ETA-ESTIMATES,
AND THE P-VALUE IS GIVEN FOR THE NULL HYPOTHESIS THAT THE TRUE MEAN IS
0.
ETABAR: .35E+00 .83E+00 -.70E+00 -.62E+00
P VAL.: .13E-01 .65E-01 .11E+00 .10E-02
The error made be think about a possible data coding problem
ID PERD TX SEQ DOSE=AMT TIME DV AGE SEX RACE SMOK HT WT BMI LBW CLCR
Originally I had:
ID =1, Tx=1, dose=200 then several lines for concentrations
ID =1, Tx=2, dose=200 then several lines for concentrations.
ID =1, Tx=3, dose=200 then several lines for concentrations
....
This did not work since the times were interpreted out of sequence - so I provided a single dose then
time 1, Tx 1, conc
time 1, Tx 2, conc
time 1, Tx 3, conc
time 1, Tx 4, conc
......
I then recoded data with new times: (note two weeks washout between doses)
Tx provided during period 1 = time
Tx provided during period 2 = time + 336
Tx provided during period 3 = time + 672
Tx provided during period 4 = time + 1008
After fixing the data set and re running some of my previous control streams, I got the program to run without errors.
From: "Bachman, William" <bachmanw@globomax.com>
Subject: RE: Rich data set
Date: Wed, 23 May 2001 14:02:35 -0400
David,
You might try something like the following which allows all absorption related parameters (KA, ALAG1 & F1) to vary except the bioavailability of the reference formulation, which is fixed to one. Your data may sufficiently dense and informative to support all these parameters. It's worked for me for multiple formulations to allow assessment of relative F. Use FOCE with INTERACTION if possible.
Bill
William J. Bachman, Ph.D.
GloboMax LLC
7250 Parkway Dr., Suite 430
Hanover, MD 21076
Voice (410) 782-2212
FAX (410) 712-0737
bachmanw@globomax.com
$PK
TVCL=THETA(1)
TVV=THETA(2)
CL=TVCL*EXP(ETA(1))
V=TVV*EXP(ETA(2))
S2=V
;these 3 lines keep NONMEM from complaining about the if-then-elses
F1=1
KA=1
ALAG1=0
;reference formulation 1
IF (FORM.EQ.1) THEN
F1 =1.0
KA =THETA(3)*EXP(ETA(3))
ALAG1=THETA(4)+ETA(4) ;could also try expo iiv
ENDIF
;formulation 2
IF (FORM.EQ.2) THEN
F1 =THETA(5)*EXP(ETA(5))
KA =THETA(6)*EXP(ETA(6))
ALAG1=THETA(7)+ETA(8)
ENDIF
;formulation 3
IF (FORM.EQ.3) THEN
F1 =THETA(9)*EXP(ETA(9))
KA =THETA(10)*EXP(ETA(10))
ALAG1=THETA(11)+ETA(11)
ENDIF
;formulation 4
IF (FORM.EQ.4) THEN
F1 =THETA(12)*EXP(ETA(12))
KA =THETA(13)*EXP(ETA(13))
ALAG1=THETA(14)+ETA(14)
ENDIF