From: TBTZENG@aol.com
Subject: [NMusers] Problem in using $PRED
Date: Fri, 22 Mar 2002 07:50:05 EST
Dear NONMEM Users:
I am exploring the function of user-written using $PRED and find that the
program appears not to function right in $PRED as compared to $PREDPP in the
same set of data. Under $PREDPP, the parameter estimates and program
iteration are reasonable and normal with 1779 iterations and MOF value of
-460.51. However, under $PRED , program appears to reach local convergence
(minimization was successful with no warning signs) with only 16 iterations,
MOF value of 1708.311 and the parameter estimates are exactly the same as
the initial estimates. Included here are my two control streams and one
partial data set. Any clue about the problems in my control stream and/or
data format using $PRED is appreciated. Data are from a cross-over oral
bioequivalence study for two formula with same active ingredient. Plasma
concentrations were transformed into log scale. Thanks a lot!
Tsang-Bin Tzeng
MegaMed PRI/PPC USA
(609) 870-0248
Here are my two control streams
$PROB Test1 bioavailability
$INPUT FORM ID TIME CON MDV AMT LCON=DV
$DATA TEST1BIO.PRN
$PRED ;$SUBROUTINES ADVAN2 TRANS2
;$PK CALFL=1 ; once per individual
CL = THETA(1) * EXP(ETA(1))
V = THETA(2) * EXP(ETA(2))
IF (FORM.EQ.1) THEN
KA = THETA(3) * EXP(ETA(3))
ALAG1 = THETA(4) * EXP(ETA(4))
F1 = THETA(5) * EXP(ETA(5))
ELSE
KA = THETA(6) * EXP(ETA(6))
ALAG1 = THETA(7) * EXP(ETA(7))
F1 = 1.0000
ENDIF
DT=TIME-ALAG1
S2 = V/1000
F=KA*F1*AMT/S2/(KA-CL/V)*(EXP(-CL/V*DT)-EXP(-KA*DT))
;$ERROR CALLFL=0
IF (F.GT.0) THEN
IPRE=LOG(F)
ELSE
IPRE=LOG(10)
ENDIF
IRES= DV - IPRE
QQ=1
IF(FORM.EQ.1) QQ=0
Y=IPRE + (1-QQ)* ERR(1)+ QQ*ERR(2)
$THETA
(0 4.7 100); 1 CL
(1 129 400); 2 V
(0 2 10); 3 KA1
(0 0.1 5); 4 TLAG1
(0 1 3); 5 F
(0 2 10); 6 KA2
(0 0.1 5); 7 TLAG2
$OMEGA 0.1 0.1 0.1 0.2 0.1 0.1 0.2
$SIGMA 0.01 0.01
$EST MSFO=msf MAX=9990 PRINT=10 POSTHOC; METHOD=1
;$COV
$SCATTER IPRE VS DV
$PROB Test1 bioavailability
$INPUT FORM ID TIME CON MDV AMT LCON=DV
$DATA TEST1BIO.PRN
$SUBROUTINES ADVAN2 TRANS2
$PK CALFL=1 ; once per individual
CL = THETA(1) * EXP(ETA(1))
V = THETA(2) * EXP(ETA(2))
IF (FORM.EQ.1) THEN
KA = THETA(3) * EXP(ETA(3))
ALAG1 = THETA(4) * EXP(ETA(4))
F1 = THETA(5) * EXP(ETA(5))
ELSE
KA = THETA(6) * EXP(ETA(6))
ALAG1 = THETA(7) * EXP(ETA(7))
F1 = 1.0000
ENDIF
S2 = V/1000
$ERROR CALLFL=0
IF (F.GT.0) THEN
IPRE=LOG(F)
ELSE
IPRE=LOG(10)
ENDIF
IRES= DV - IPRE
QQ=1
IF(FORM.EQ.1) QQ=0
Y=IPRE + (1-QQ)* ERR(1)+ QQ*ERR(2)
$THETA
(0 4.7 100); 1 CL
(1 129 400); 2 V
(0 2 10); 3 KA1
(0 0.1 5); 4 TLAG1
(0 1 3); 5 F
(0 2 10); 6 KA2
(0 0.1 5); 7 TLAG2
$OMEGA 0.1 0.1 0.1 0.2 0.1 0.1 0.2
$SIGMA 0.01 0.01
$EST MSFO=msf MAX=9990 PRINT=10 POSTHOC; METHOD=1
;$COV
$SCATTER IPRE VS DV
My data file is (The first 4 subjects are provided here):
1 1 0 . 1 100 .
1 1 0 . 1 0 .
1 1 0.5 20 0 0 2.995732
1 1 1 33.6 0 0 3.514526
1 1 1.5 45.6 0 0 3.819908
1 1 2 60.9 0 0 4.109233
1 1 2.5 116 0 0 4.75359
1 1 3 153 0 0 5.030438
1 1 4 245 0 0 5.501258
1 1 6 375 0 0 5.926926
1 1 8 364 0 0 5.897154
1 1 10 360 0 0 5.886104
1 1 12 341 0 0 5.831882
1 1 24 285 0 0 5.652489
1 1 36 319 0 0 5.765191
1 1 48 235 0 0 5.459586
1 1 72 76.8 0 0 4.341205
1 1 96 26 0 0 3.258097
1 2 0 . 1 100 .
1 2 0 . 1 0 .
1 2 0.5 . 1 0 .
1 2 1 28.8 0 0 3.360375
1 2 1.5 38.5 0 0 3.650658
1 2 2 59.8 0 0 4.091006
1 2 2.5 83 0 0 4.418841
1 2 3 132 0 0 4.882802
1 2 4 146 0 0 4.983607
1 2 6 346 0 0 5.846439
1 2 8 421 0 0 6.042633
1 2 10 472 0 0 6.156979
1 2 12 439 0 0 6.084499
1 2 24 420 0 0 6.040255
1 2 36 285 0 0 5.652489
1 2 48 163 0 0 5.09375
1 2 72 40.5 0 0 3.701302
1 2 96 16.3 0 0 2.791165
1 3 0 . 1 100 .
1 3 0 . 1 0 .
1 3 0.5 11.6 0 0 2.451005
1 3 1 22.5 0 0 3.113515
1 3 1.5 37.8 0 0 3.632309
1 3 2 57.1 0 0 4.044804
1 3 2.5 104 0 0 4.644391
1 3 3 124 0 0 4.820282
1 3 4 172 0 0 5.147494
1 3 6 184 0 0 5.214936
1 3 8 191 0 0 5.252273
1 3 10 235 0 0 5.459586
1 3 12 319 0 0 5.765191
1 3 24 206 0 0 5.327876
1 3 36 . 1 0 .
1 3 48 118 0 0 4.770685
1 3 72 49.7 0 0 3.906005
1 3 96 26.2 0 0 3.265759
1 4 0 . 1 100 .
1 4 0 . 1 0 .
1 4 0.5 . 1 0 .
1 4 1 14.3 0 0 2.66026
1 4 1.5 18.4 0 0 2.912351
1 4 2 28 0 0 3.332205
1 4 2.5 45.7 0 0 3.822098
1 4 3 73 0 0 4.290459
1 4 4 127 0 0 4.844187
1 4 6 159 0 0 5.068904
1 4 8 177 0 0 5.17615
1 4 10 200 0 0 5.298317
1 4 12 237 0 0 5.46806
1 4 24 256 0 0 5.545177
1 4 36 118 0 0 4.770685
1 4 48 112 0 0 4.718499
1 4 72 29.3 0 0 3.377588
1 4 96 15 0 0 2.70805
Problem in using $PRED
3 messages
2 people
Latest: Mar 22, 2002
From: TBTZENG@aol.com
Subject: RE: [NMusers] Problem in using $PRED
Date: Fri, 22 Mar 2002 09:36:44 EST
Dear Bill:
Thanks a lot. You are right about this. The trick is not only the dose has to
be placed in every record, but also "AMT" is not allowed to be used for dose
item. Otherwise, NM-TRAN would come out an error indicating that it is
inconsistent with MDV record.
Tsang-Bin Tzeng
MegaMed PRI/PPC USA
*******
From: "Bachman, William"
Subject: RE: [NMusers] Problem in using $PRED
Date: Fri, 22 Mar 2002 08:12:06 -0500
Tsang-Bin,
The program is fuctioning correctly. Your data file is coded wrong for your
$PRED. When you use $PRED you no longer have the dosing advantages of
PREDPP (e.g one record containing the dosing info). You must either:
1. add a DOSE column with "100" for all data records and change "
F=KA*F1*AMT/S2..." to " F=KA*F1*DOSE/S2..."
or
2. add some clever coding to $PRED to calculate DOSE from the AMT at time=0
(and change " F=KA*F1*AMT/S2..." to " F=KA*F1*DOSE/S2...")
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