arterio-venous modeling
From: alison@c255.ucsf.EDU (ABoeckmann)
Subject: arterio-venous modeling
Date: 26 Sep 1997 19:56:25 -0400
Most of you have seen Rik Schoemaker's question, and responses from Mark Sale and Lew Sheiner.
I'm interested in the PK part of the model.
Lewis remarked to me that the PK part of the model is not of great interest and can be handled with a series of constant rate infusions. During the time of rapid rise (say 30 mins), use several short infusion records (6 or so) with fixed rate infusions having RATE = the mean infusion rate during that 5 minute period, and the known AMT, followed by a longer (plateau) infusion, again with the known RATE and AMT. This implements the infusion via a sort of step function.
ADVAN1 can be used, or, if Differential eqns. are needed for the rest of the model, use the constant rate infusions into the central comparment of the model.
However, I am interested in Mark's attempt to model variable rate infusion with differential eqns.
His D.E.'s have a flaw that we have not perhaps warned people about in Guide VI. Within an integration interval, the D.E.'s must be continuous and smooth. His D.E.'s have a discontinuity when A(1) becomes 0. They may seem to work, but this is not guaranteed.
Discontinuities in D.E.'s should occur only at event times (or at non-event dose times such as lagged doses).
He needs event records at the start and end of the plateau. This can easliy by done because the times (T1 and T2) are known to the experimenter.
I think it is easiest to introduce a new Covariate PLAT with 3 values: 0 (before plateau), 1 (during plateau), 2 (after plateau)
What we want is this:
RATE=T from 0 to T1 ; fast rise
RATE=T1 from T1 to T2 ; plateau rate
RATE=0 from T2 onwards ; normal elimination
Thus:
IF (PLAT.EQ.0) RATE=T
IF (PLAT.EQ.1) RATE=T1
IF (PLAT.EQ.2) RATE=0
T1 is the time when the target concentration was reached.
T2 is the time when the infusion ends.
Suppose T1=30 and T2=60.
Use PLAT=0 in event records up to and including 30, and PLAT=1 in the event records subsequent to 30, so that PLAT=0 governs the advance up to time 30, and PLAT=1 governs the advance past time 30. Similarly, PLAT=1 at TIME 60, PLAT=2 at larger times.
The AMT of drug for CMT 1 is effectively infinite - it simply acts as a resevoir of drug.
$INPUT ... TIME PLAT AMT ...
0 0 999999
30 0 .
30 1 . "documentation" record
60 1 .
60 2 . "documentation" record
The "docuementation" records have no effect on the predictions because there is no advance when TIME does not change. However, they do serve to remind people who look at the data that this is the actual time that the covariate PLAT changes.
Control stream and DATAPL follow. They are based on Mark Sale's control stream and data file. IND1 changes after time T1: it switches beteen T and T1 as the rate of infusion. IND2 changes after time T2. It turns off the infusion altogether.
I've appended extra other-type event records at later points in time so that one can see the compartment amounts beyond the last observation, to verify that the plateau exists.
I've also put some "debugging" output RR, RATE, etc. in the table.
There is no $ESTIM record - no point in Estimation till we are sure the model is doing the right thing!!!
In Rik's case, T1 and T2 are definitely known. It would be possible to estimate T1 and T2 using NONMEM. However, this is more complicated. Lewis says that people who need continuously varying input rates know what the rates and times are and don't need to estimate them, and there's no point solving a problem that doesnt exist, so I'll leave it at that.
$PROB infusions
$INPUT TIME AMT DV PLAT EVID
$SUBROUTINES ADVAN6 TOL = 5 LIB
$DATA DATAPL
$MODEL
COMP = (DEPOT,DEFDOSE)
COMP = (CENTRAL,DEFOBS)
$PK
S2 = THETA(1)
KEL = THETA(2)
IND1=0
IND2=1
IF (PLAT.GE.1) IND1=1
IF (PLAT.EQ.2) IND2=0
T1=30
$DES
RR=T*(1-IND1)+T1*IND1
RATE=IND2*RR
DADT(1) = -RATE
DADT(2) = RATE - KEL*A(2)
$ERROR
Y = F+ERR(1)
A1=A(1)
A2=A(2)
$THETA
(0,1) ;VOLUME
(0,1) ;KEL
$OMEGA 1
;$ESTIMATION MAX=9999 PRINT=2
$TABLE TIME IND1 IND2 RR RATE FILE = OUTP.XLS
$SCAT PRED VS TIME
$SCAT (A1,A2) VS TIME
============= DATAPL ===============
0 9999999 . 0 1
0.5 . 3 0 0
1 . 7 0 0
1.5 . 10 0 0
2 . 12 0 0
2.5 . 17 0 0
3 . 20 0 0
3.5 . 22 0 0
4 . 25 0 0
5 . 30 0 0
6 . 35 0 0
7 . 40 0 0
8 . 45 0 0
9 . 50 0 0
10 . 55 0 0
11 . 48 0 0
12 . 44 0 0
13 . 40 0 0
20 . . 0 2
30 . . 0 2
30 . . 1 2
35 . . 1 2
40 . . 1 2
50 . . 1 2
60 . . 1 2
60 . . 2 2
61 . . 2 2
65 . . 2 2
70 . . 2 2
89 . . 2 2