Re: [NMusers] Limit for model complexity in NONMEM?

From: Liping (CD) Zhang <liping.zhang3_at_bms.com>
Date: Tue, 19 Dec 2006 10:54:07 -0500

Dear Martin,

I am not aware of theoretical "maximum complexity with NONMEM" and wish
I never need to test that boundary.

As a modeler, I would always start simple by "dividing and conquering":
first fit the parent, and then one metabolite, and then another. Since
you assume both metabolites are converted by parent from central
compartment, it is easy to do. When model parent, ignore all different
elimination routes, estimate a Ktot just to fit the parent profile
right. Then condition on that, to get the one metabolite right at a
time, as each is independent of the other given the parent. You can try
to fit them together once you are certain about the structural model.
Your priority should always be getting the structure right then take
care of the precision. See a good example in Fattinger and Verotta et
al, 1996

Following the same spirit, I would not add random effect on every
parameter. Pick up a few important ones first. You can always test the
significance of them and the others later. Model fitting is iterative by
nature.

FOCE does have a higher standard than FO. But your log-transformed data
and CCV would not replace FOCE. Once your model is simpler, I assume
FOCE would be less a hurdle.

You can, but do not have to start with ADVAN 6 (time saving here), even
you had non-linear kinetics in mind for later. Keep it simple.

You deleted 0 observation event. It is OK to do so (search "nmusers
archive" by "NM tips"), providing they occur right after the dose and
there are not "a lot" of them. An argument can be made that these are
BQL's and could be deleted.

best of luck, Liping




Martin Fransson wrote:

> Dear all,
>
>
>
> I am a novice in NONMEM and am currently trying to fit data for a
> parent substance (P) and its two metabolites (Ma resp. Mb). As you can
> see below I use a nine compartment model with three compartments for
> each compound. The data (ln-transformed) is measured concentrations
> from infusion treatment and the total amount of data is approximately
> 20 (patients) x 10 (samples) x 3 (compounds), i.e., about 600 data
> records. Dose is applied to compartment P1. Since I am still trying to
> figure out the features of NONMEM (working with v. 6) perhaps you can
> help with me some questions I have.
>
>
>
> 1) Is it at all sensible to use nine compartment models in NONMEM? Is
> there an unspoken maximum complexity (in terms of no of parameters, no
> of compartments, "degree" of nonlinearity etc.) for the models one
> should use? As you can see there are already 10 unknown parameters
> with equally many random effects. If I a introduce nonlinearities such
> as MM-kinetics it is most likely that there will be even more
> parameters (I guess making the model nonlinear will also make things
> more difficult for the optimization algorithm). Investigating effects
> of covariates will also require additional parameters. (Some models I
> have tried did have up to 18 unknown parameters.)
>
>
>
> 2) Are there any obvious errors in the code? For instance when it
> comes to the aspect of modeling parent and metabolites at the same time?
>
>
>
> 3) It seems that it is almost impossible to get FOCE with interaction
> to work when using complex models, but if I assume CCV-error, perform
> ln-transformation of the data and use FO instead will it make any
> difference?
>
>
>
> Notes:
>
> 1) I use Advan6 since I intend to make parts of the model nonlinear
> at later stage.
>
> 2) I do not capture any exceptions in the ERROR record in form of
> LOG(0) since I removed any zero valued data records.
>
>
>
> All comments and critics are highly appreciated!
>
>
>
> Best regards,
>
> Martin
>
>
>
>
>
> $PROBLEM Model 0 (linear),
> $INPUT ID AMT=DOSE RATE TIME CP=DV CMT EVID MDV CO1 CO2 CO3 AGE BSA
> $DATA DCPLog.txt
> $SUBROUTINES ADVAN6 TOL=5
> $MODEL COMP (P1) COMP (P2) COMP (P3)
> COMP (Ma1) COMP (Ma2) COMP (Ma3)
> COMP (Mb1) COMP (Mb2) COMP (Mb3)
> $PK
> V1=THETA(1)*EXP(ETA(1))
> V2=THETA(2)*EXP(ETA(2))
> V3=THETA(3)*EXP(ETA(3))
> Q12=THETA(4)*EXP(ETA(4))
> Q13=THETA(5)*EXP(ETA(5))
>
> ;Enzyme kinetics
> kPMa=THETA(6)*EXP(ETA(6))
> kPMb=THETA(7)*EXP(ETA(7))
> kelP=THETA(8)*EXP(ETA(8))
> kelMa=THETA(9)*EXP(ETA(9))
> kelMb=THETA(10)*EXP(ETA(10))
>
> $DES
> x1=A(1)/V1
> x2=A(2)/V2
> x3=A(3)/V3
> x4=A(4)/V1
> x5=A(5)/V2
> x6=A(6)/V3
> x7=A(7)/V1
> x8=A(8)/V2
> x9=A(9)/V3
>
> DADT(1)=-Q12*(x1-x2)-Q13*(x1-x3)
> DADT(2)=Q12*(x1-x2)-V2*(kPMa+kPMb+kelP)*x2
> DADT(3)=Q13*(x1-x3)
> DADT(4)=-Q12*(x4-x5)-Q13*(x4-x6)
> DADT(5)=Q12*(x4-x5)+V2*kPMa*x2-V2*kelMa*x5
> DADT(6)=Q13*(x4-x6)
> DADT(7)=-Q12*(x7-x8)-Q13*(x7-x9)
> DADT(8)=Q12*(x7-x8)+V2*kPMb*x2-V2*kelMb*x8
> DADT(9)=Q13*(x7-x9)
>
> $ERROR CALLFL=0
> IF (CMT.EQ.1) z=A(1)/V1
> IF (CMT.EQ.4) z=A(4)/V1
> IF (CMT.EQ.7) z=A(7)/V1
> Y=LOG(z)+LOG(1+EPS(1))
>
> $THETA
> (3,5) ; V1
> (1,3) ; V2
> (30,70) ; V3
> (0.01,1.5) ; Q12
> (0.001,0.02) ; Q13
> (0.0001,0.01)
> (0.0001,0.01)
> (0.0001,0.01)
> (0.0001,0.01)
> (0.0001,0.01)
>
> $OMEGA .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,
> $SIGMA .15
>
> $EST METHOD=0 MAXEVAL=9999 PRINT=1
> $COV
> ;$TABLE TIME PRED
> $SCAT CP VS TIME
> $SCAT PRED VS TIME
> $SCAT PRED VS CP UNIT
> $SCAT RES VS TIME
>
> ===============================
> Martin Fransson
> Dept. of Computer and Information Science
> Linköping University
> 581 83 LINKÖPING, SWEDEN
> marfr_at_ida.liu.se <mailto:marfr_at_ida.liu.se>
> +46 13 281467
> ===============================


Received on Tue Dec 19 2006 - 10:54:07 EST

This archive was generated by hypermail 2.2.0 : Tue Nov 06 2007 - 15:06:14 EST