Re: Algebraic equations and IOV
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
Quoted reply history
________________________________
From: [email protected] <[email protected]> on behalf of
Ruben Faelens <[email protected]>
Sent: Wednesday, October 23, 2019 5:59:04 PM
To: [email protected]
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:
TIME;OCC;EVID;AMT
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
________________________________