RE: backward integration from t-a to t
Pavel:
I am glad someone informed you of the ALAG option for handling your problem.
My colleague [email protected]<mailto:[email protected]> and his associates have
published on the general aspects of time delay differential equations, of which
yours is a particular example. Although Jacob Ribbing has already discussed as
to whether or not using AUC for driving efficacy is appropriate from a
mechanistic stand-point, and Leonid Gibiansky has offered another way of
looking at the problem, it is nonetheless worthwhile to present to the nmusers
audience an example of how to use the ALAG option for your particular case,
from which they may generalize for use of other time delay problems.
In the following simple absorption model example developed by me and Alison
Boeckmann for illustration purposes, compartments 1, 2, and 3 are the "real
time" depot, central, auc,
and compartments 4,5,6 are the "delayed time" depot, central, auc. So, the
base model (non-time delay) system (compartments 1,2,3) is replicated
(compartments 4,5,6) for the time delay portion. In addition, the data set
duplicates the dose information of compartment 1 into compartment 4, and
setting ALAG4 to a non-zero value in the control stream file provides a lag
time to any doses inputted into compartment 4 (so this would take care of
multiple dose problems as well). This allows for assessment and availability
of AUC(t) and AUCT(t-time-delay) at any time t. The comments explain the
meaning of each compartment.
$PROB TEST AUC DELAY
$INPUT ID TIME AMT CMT DV
$DATA DELAYDATA IGNORE=@
$SUBR ADVAN6 TOL=5
$MODEL
COMP=(DEPOT) COMP=(CENTRAL) COMP=(AUC)
COMP=(D_DEPOT) COMP=(D_CENTR) COMP=(D_AUC)
COMP=(AUCDIFF)
$PK
TDY=THETA(1)*EXP(ETA(1))
ALAG4=TDY
KA=THETA(2)*EXP(ETA(2))
KE=THETA(3)*EXP(ETA(3))
$DES
DADT(1)=-KA*A(1)
DADT(2)= KA*A(1)-KE*A(2) ; C(T)
DADT(3)= A(2) ; AUC(T)
DADT(4)=-KA*A(4)
DADT(5)= KA*A(4)-KE*A(5) ; C(T-TDY)
DADT(6)= A(5) ; AUC(T-TDY)
DADT(7)= A(2)-A(5) ; AUC(T-TDY)
$ERROR
A1=A(1)
A2=A(2)
A3=A(3)
A4=A(4)
A5=A(5)
A6=A(6)
A7=A(7)
DAUC=A(3)-A(6) ; AUC(T)-AUC(T-TDY)
Y=F+EPS(1)
$THETA 3
$THETA 1 2
$OMEGA 1 1 1
$SIGMA 1
$TABLE ID TIME A1 A2 A3 A4 A5 A6 A7 DAUC NOAPPEND NOPRINT FILE=aucdelay.tbl
FORMAT=sF8.3
And the example data set:
ID TIME AMT CMT DV
1 0 100 1 .
1 0 100 4 .
1 1 . 2 .
1 2 . 2 .
1 3 . 2 .
1 4 . 2 .
1 5 . 2 .
1 6 . 2 .
1 7 . 2 .
1 8 . 2 .
1 9 . 2 .
1 10 . 2 .
1 11 . 2 .
1 12 . 2 .
1 13 . 2 .
1 14 . 2 .
1 15 . 2 .
Robert J. Bauer, Ph.D.
Vice President, Pharmacometrics, R&D
ICON Development Solutions
7740 Milestone Parkway
Suite 150
Hanover, MD 21076
Tel: (215) 616-6428
Mob: (925) 286-0769
Email: [email protected]<mailto:[email protected]>
Web: http://www.iconplc.com/
Quoted reply history
From: [email protected] [mailto:[email protected]] On
Behalf Of Pavel Belo
Sent: Tuesday, January 14, 2014 1:45 PM
To: Bauer, Robert
Cc: [email protected]
Subject: [NMusers] backward integration from t-a to t
Dear Robert,
Efficacy is frequently considered a function of AUC. (AUC is just an integral.
It is obvious how to calculate AUC any software which can solve ODE.) A
disadvantage of this model of efficacy is that the effect is irreversable
because AUC of concentration can only increase; it cannot decrease. In many
cases, a more meaningful model is a model where AUC is calculated form time t
-a to t (kind of "moving average"), where t is time in the system of
differential equations (variable T in NONMEM). There are 2 obvious ways to
calculate AUC(t-a, t). The first is to do backward integration, which looks
like a hard and resource consuming way for NONMEM. The second one is to keep
in memory AUC for all time points used during the integration and calculate
AUC(t-a,t) as AUC(t) - AUC(t-a), there AUC(t-a) can be interpolated using two
closest time points below and above t-a.
Is there a way to access AUC for the past time points (<t) from the integration
routine? It seems like an easy thing to do.
Kind regards,
Pavel