NONMEM Users Network Archive

Hosted by Cognigen

Re: Algebraic equations and IOV

From: Leonid Gibiansky <lgibiansky>
Date: Thu, 24 Oct 2019 13:15:09 -0400

We have to be careful with data structure. When Nonmem advances from
time T1=0 to time T2=24 (whether with DES or exact solution), covariate
values (OCC in this case) at time T2=24 are used. So for the data file
presented, 0 to 24 hours will be treated as OCC=2

> will then use CL1=THETA*EXP(ETA1 + ETA3) from 0 to 24h (NOT ETA2)

Value of CL for time > 24 will depend on OCC value of the next record
(not presented in the data file)


On 10/23/2019 2:11 PM, Eleveld-Ufkes, DJ wrote:
> Hi Ruben,
> As I understand it the way you seem to intend it that CL takes value
> THETA(1)*EXP(ETA(2)) when IOV1=1 (thus IOV2=0) from 0 to 24h, and
> THETA(1)*EXP(ETA(3)) when IOV2=1 (thus IOV1=0) from 24h onwards. These
> are separate occasions and do not overlap, so ETA(2) has no meaning (no
> influence on any predictions or likelihood or anything) after 24 hours.
> The opposite meaning is for ETA(3). So in my view only A) makes sense
> and B) and C) dont. At least as far as I understand your code style.
> When you say algebraic equations do you mean the closed-form solutions
> for particular mammilary models? You only have to know the equations
> which can handle non-zero initial conditions which you would need
> starting at 24h to do the prediction at 30h. I dont know what structures
> you need, if you have unusual structures then DES is the only way I
> think. For some normal structures take a look at: Abuhelwa, A.Y.,
> Foster, D.J. and Upton, R.N., 2015. ADVAN-style analytical solutions for
> common pharmacokinetic models. /Journal of pharmacological and
> toxicological methods/, /73/, pp.42-48. In the supplements is R code I
> believe. I have gotten some of the models to work in C just by
> cut-paste-compile and fix errors, so they should work in R as well.
> I hope this helps.
> Warm regards,
> Douglas Eleveld
> ------------------------------------------------------------------------
> *From:* owner-nmusers
> behalf of Ruben Faelens <ruben.faelens
> *Sent:* Wednesday, October 23, 2019 5:59:04 PM
> *To:* nmusers
> *Subject:* [NMusers] Algebraic equations and IOV
> Dear colleagues,
> I am implementing my own simulation engine for non-linear mixed-effects
> models in R. To ensure that I can reproduce models estimated in NONMEM
> or Monolix, I was wondering how IOV is treated in those software.
> Usually, IOV is implemented as follows (NONMEM code):
> IOV1=0
> IOV2=0
> IF(OCC.EQ.1) IOV1=1
> IF(OCC.EQ.2) IOV2=1
> CL = THETA(1) * EXP( ETA(1)+ IOV1*ETA(2)+ IOV2*ETA(3) )
> Assume a data-set with the following items:
> 0;1;1;50
> 24;2;1;50
> We will then use CL1=THETA*EXP(ETA1+ ETA2) from 0 to 24h, and
> CL2=THETA*EXP(ETA1+ETA3) from 24h onwards.
> When using differential equations, the implementation is clear. We
> integrate the ODE system using CL1 until time 24h. We then continue to
> integrate from 24h onwards, but using CL2.
> My question is how this works when we use algebraic equations. Let's
> define CONC_tmt1(CL, X) to represent the concentration at time X due to
> treatment 1 at time 0. For tmt2 (which happens at t=24), we write
> CONC_tmt2(CL, X-24).
> Suppose we need a prediction at times 5h and 30h. Without IOV, we would
> calculate this as follows:
> CONC(5) = CONC_tmt1(CL, 5)
> CONC(30) = CONC_tmt1(CL, 30)+ CONC_tmt2(CL, 30-24)
> There are multiple options to do this with IOV:
> A) Approximate what an ODE implementation would do:
> CONC(5) = CONC_tmt1(CL1, 5)
> INIT_24 = CONC_tmt1(CL1, 24)
> CONC(30) = CONC_virtualTreatment( Dose=INIT_24, CL2, 30-24 )+
> CONC_tmt2(CL2, 30-24)
> We calculate the elimination of the remaining drug amounts in each
> compartment, and calculate the elimination of them into occasion 2.
> Are these equations available somewhere?
> B) We ignore overlap in dosing profiles. The full profile of tmt1 (even
> the part in occasion 2) is calculated using CL1.
> CONC(5) = CONC_tmt1(CL1, 5)
> CONC(30) = CONC_tmt1(CL1, 30)+ CONC_tmt2(CL2, 30-24)
> C) We can ignore continuity in concentrations. The contribution of tmt1
> in occasion 2 is calculated as if the full treatment occurred under CL2.
> CONC(5) = CONC_tmt1(CL1, 5)
> CONC(30) = CONC_tmt1(CL2, 30)+ CONC_tmt2(CL2, 30-24)
> *_Which technique does NONMEM and Monolix use for simulating PK
> concentration using algebraic equations with IOV?_*
> This is important for numerical validation between my framework and
> NONMEM / Monolix.
> Best regards,
> Ruben Faelens
> ------------------------------------------------------------------------
> De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de
> geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik
> maken van dit bericht, het niet openbaar maken of op enige wijze
> verspreiden of vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld
> worden voor een incomplete aankomst of vertraging van dit verzonden
> bericht.
> The contents of this message are confidential and only intended for the
> eyes of the addressee(s). Others than the addressee(s) are not allowed
> to use this message, to make it public or to distribute or multiply this
> message in any way. The UMCG cannot be held responsible for incomplete
> reception or delay of this transferred message.
Received on Thu Oct 24 2019 - 13:15:09 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: