Ok, since no-one else has responded, I'll bite. Here are a few =
comments:
1) your data, for the most part, dictates "sensibility" in the sense =
that if
you have sufficient data you can support any model. conversely, if you
don't have data from enough of the species and compartments, you will =
have
problems fitting your model due to identifiability issues. often we =
don't
have sufficient data for parent-metabolite models. I don't know what =
data
you have to make this call for you.
2) most of us don't have time to error check others models. a sometimes
acceptable alternative to having someone check your models is to =
simulate
using your model to see if you "get what you are expecting".
3) this is often the case, that you can't get a successful run =
(particularly
right off the bat) with FOCE Interaction. Try doing initial runs with =
FO
and then using those parameter estimates in your FOCE runs. Also, try
NONMEM 6. It seems to have less stability issues than NONMEM V. =
Another
thought, as your developing model begins to explain more of the =
variability
in the data, you will probably have a better chance with a successful =
FOCE
run. There is a certain amount of "art" (prior experience?, dumb luck?)
associated with population analysis that comes with time.
Vultures may now proceed to pounce. (JUST KIDDING, I can take it!)
:)
Bill
_____
From: owner-nmusers_at_globomaxnm.com [mailto:owner-nmusers_at_globomaxnm.com] =
On
Behalf Of Martin Fransson
Sent: Tuesday, December 19, 2006 3:33 AM
To: nmusers_at_globomaxnm.com
Subject: [NMusers] Limit for model complexity in NONMEM?
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
+46 13 281467
==========================
======
Received on Tue Dec 19 2006 - 10:45:01 EST
This archive was generated by hypermail 2.2.0 : Tue Nov 06 2007 - 15:06:17 EST