NONMEM Users Network Archive

Hosted by Cognigen

Re: Code to avoid flip-flop kinetics

From: Leonid Gibiansky <LGibiansky>
Date: Fri, 07 Aug 2009 16:46:41 -0400

Option 1 is very helpful. Option 2 is not attractive for the reason that
you stated, especially, extra correlation introduced by this trick. If
used, it should be used with the full OMEGA block (CL-V-KA). I used it
once but only as the last resort when nothing else worked. I have not
tried option 3 but this option artificially restricts distributions, so
I am not sure whether it is good or not even when it is working.

On the other hand, if population K and KA are sufficiently far apart,
you are unlikely to get individual K and KA flip-flopped.

If population K and KA are close, then it is unclear why individual K
and KA should be consistently ordered as K < KA and not vice versa for
some subjects. If so, why not to allow the model to decide whether to
have flip flop or not?

I would try to use option (1), and if you like the model, diagnostic
plots, etc, I would not worry about individual K and KA relation. One of
the diagnostics could be the fraction of patients with the flip-flop. If
it is small, this would justify the approach. Another possible
diagnostic is ETA_KA - ETA_K differences, If it is close to normal you
are OK, if it has two mirror-symmetric (relative to the y-axis) peaks,
then flip flop is interfering with the model.


Leonid Gibiansky, Ph.D.
President, QuantPharm LLC
e-mail: LGibiansky at
tel: (301) 767 5566

Paolo Denti wrote:
> 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:
> 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:
> V=THETA(2)*EXP(ETA(2))
> 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.
> V=THETA(2)*EXP(ETA(2))
> 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
> 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.denti
> ------------------------------------------------
Received on Fri Aug 07 2009 - 16:46:41 EDT

The NONMEM Users Network is maintained by ICON plc. Requests to subscribe to the network should be sent to:

Once subscribed, you may contribute to the discussion by emailing: