recursive PRED
From R.Port@dkfz-heidelberg.de Thu Sep 26 01:05:45 1996
Subject: recursive PRED
Rik Schoemaker's message of Sept 26
Hi Rik,
I think for calculating the effect site concentration at time t as a function of the effect site concentration at time (t - 1) it's enough to store the current value of the effect site concentration at the end of $PRED as a variable which, at the next time point, is invoked at the beginning of $PRED. E.g.:
$PRED
IF (TIME.EQ.0) Celast = 0 ; or some other initial value
Cenew = ... Celast ... (function of Celast and the PK parameters)
effect = ... (function of Cenew and more parameters
Y = ... effect ... EPS( )
Celast = Cenew
This way, Celast should have the value of the effect site concentration at time (t - 1) when PRED is invoked at the next time point and, thus, could be used for calculating Ce at time t.
Best wishes! Ruedi
-------------------------------------------------------------------------------
R.E. Port, Dept. 0420, German Cancer Research Center
P.O. Box 10 19 49, D-69009 Heidelberg
phone: x49-6221 42-3385
-3347
fax: -3346
e-mail: r.port@dkfz-heidelberg.de
***
From lewis Thu Sep 26 10:45:14 1996
To all:
It *is* possible to use plines in $DES. I have some coding for this as part of my lecture notes in my Advanced PK course, and if I find the time, I will try to make this available.
But, this is not necessary, as I wrote to Sam yesterday. A linear spline is adequate to represent Cp.
In that case, one adds 2 columns to the data records. In the first one records the slope, and in the
second, the intercept for the line connecting the bracketing observed Cp values.
To be precise, imagine some data as follows:
Time Cp observation Pd observation
0 0 -
3 - .5
5 10 -
7 - .7
10 15 -
There will be 2 data records in the control stream, for the PD observation at time 3. The records will start like this:
Time DV SLO INT
3 .5 2 0
7 .7 1 5
Because the line interpolating the Cp from time 0 to 10 has int=0, and slope =2, and the line interpolating the Cp from time=5 to 1ime=10 has intercept 5 and slope=1.
The approriate time scale is the actual time scale (as it is in the time column, above). DES advances the solution of the differential equations using a variable called T. Thus, in $DES, if the "effect compartment" is A(1), you need have only the code
DADT(1) = KEO*(INT+SLO*T - A(1))
to "convolve" the "connect the dots" interpolating function with the monoexponential of the effect comp[artment. Then in $ERROR, if A(1) is the default observation compartment, you write
Y = PD_model(F) + error_model
The DV are all PD observations, of course, and the step that computes the slopes and intercepts for each record can be done just once, before the nonmem run as these never change (the PK data is treated as fixed).
Things get a little trickier (but not much) if the "0" time has a Cp (e.g., steady-state), since then you must initialize A(1) to the approriate (e.g., steady-state) Ce.