Dear NMUsers,
having to deal with the flip-flop kinetics phenomenon, I had a look at
previous posts on the NMusers list.
I found this post particularly enlightening:
http://www.cognigencorp.com/nonmem/nm/99aug072003.html
Some code was proposed to avoid the flip-flop at population and
individual level. Here's a not-so-brief summary.
This parameterization solves the issue at population level:
CL=THETA(1)*EXP(ETA(1))
V=THETA(2)*EXP(ETA(2))
TVKE=THETA(1)/THETA(2)
TVKA=TVKE+THETA(3)
KA=TVKA*EXP(ETA(3))
However, it does not prevent the phenomenon occurring at individual
level. Vlamidir Piotrovsky proposed the code below, which does solve the
problem at individual level, but makes the interpretation of the results
a bit awkward and introduces correlation among the model parameters. In
particular, variance of ETA3 was greatly increased.
CL=THETA(1)*EXP(ETA(1))
V=THETA(2)*EXP(ETA(2))
KE=CL/V
KA=KE+THETA(3)*EXP(ETA(3))
Another approach, suggested by Nick Holford, implements error recovery
using EXIT 1. The code is reported below:
CL=THETA(cl)*EXP(ETA(cl))
V=THETA(v)*EXP(ETA(v))
KA=THETA(ka)*EXP(ETA(ka))
K=CL/V
IF (KA.LE.K) EXIT 1 101 ; try again (PREDERR message error code 101)
As far as I understand, this interrupts the computation whenever the
flip-flop occurs and lets NONMEM restart. However, if such an error
arises at initialization, NONMEM does not recover and the run goes no
further. Nick probably experienced something similar, but apparently
received no answer
http://www.cognigencorp.com/nonmem/nm/99oct072004.html
Does anyone know of a way around this drawback? Or have other code to
deal with flip-flop kinetics?
Thank you in advance,
Paolo
--
------------------------------------------------
Paolo Denti, Post-Doctoral Fellow
Division of Clinical Pharmacology
Department of Medicine
University of Cape Town
K45 Old Main Building
Groote Schuur Hospital
Observatory, Cape Town
7925 South Africa
phone: +27 21 404 7719
fax: +27 21 448 1989
email: paolo.de...@uct.ac.za
------------------------------------------------