67 An Empirical Method of Achieving Steady State (NM75)
Introduction to NONMEM 7.6.0
The usual way of inserting steady state dosing is to use the SS data item, and allowing NONMEM’s PREDPP component to determine the starting state variables that will result in no change in values in state from one inter-dose interval (date item II) to the next. However, such a technique cannot be used with some systems of ODE’s. This includes delay differential equations and also other systems, for example, those in which there is a change in kinetics outside the dosing interval. Some additional restrictions on use of the SS data item are as follows:
ALAG: the lag time should be less than the interdose interval. The lag time applies to the present and all preceding implied doses.ADDL: For steady-state infusions (AMT=0,RATE>0),ADDLmust be 0. For other steady-state doses,ADDLis optional. If it is a positive number, it continues the pattern of implied doses beyond the steady-state dose. The additional doses of the pattern are non-steady state doses.F (Bioavailability): bioavailability fractions apply to all transient (non steady-state) doses, and to steady-state doses for which the
AMTis specified. The bioavailability fraction applies to the dose and to all implied doses leading to the steady-state. The only doses to which biavailability fractions do not apply are steady-state with constant infusion (those specified byAMT=0andRATE>0).
See Guide VIII for additional information on the SS data item.
Use of SS requires that at least first derivatives be used, even when using EM/Bayes methods that do not normally require first derivatives.
An alternative method of steady state assessment to avoid some of these restrictions is to do this empirically, by using the usual II, and ADDL (additional doses) data item method, where a pre-prescribed large number of doses (ADDL+1) are given, which are presumed to be a sufficient number such that near steady state is reached for all subjects and parameters, and thereafter records are added for monitoring after the last dose. One could decide to have 100 doses, say, followed by time samples after the last dose. But this would mean that 100 doses are always given, even though perhaps just 20 were needed to reach the steady state to an appropriate SSTOL/SSATOL tolerance.
As of nm75, the user may enter a negative valued ADDL to the data set, whose absolute value represents the maximum number of dose inputs to be given, followed by records with times relative to this last maximum dose. PREDPP will then determine, as it simulates each added dose, when the state variables no longer change according to the SSTOL/SSATOL tolerance specified in $SUBROUTINES, and stop adding doses when this is reached, up to the maximal ABS(ADDL). In addition, PREDPP will adjust the times of the subsequent records so it retains the same time after last dose relationship according to the actual number of doses given. The actual additional doses used is recorded in a reserved variable called ADDL_ACTUAL, accessible from $PK, $ERROR, $DES, and $AES. If ADDL_ACTUAL remains 0 for all records, this means the maximal number of doses ABS(ADDL) was reached before steady state occurred. The adjusted times are recorded in reserved variable ADDL_TIME, and the time difference between TIME (which is not altered) and ADDL_TIME is recorded in reserved variable ADDL_TIMEDIFF. The time of integration T for the ODE’s, TSTATE, DOSTIM, MTIME() are in reference to ADDL_TIME, not TIME, and the user’s model should be aware of this adjustment. When outputting results to a table, the relevant times displayed should be ADDL_TIME, not TIME. A user defined variable defined in $PK or $ERROR may store the ADDL_TIME value, such as
ADDLTIME=ADDL_TIMEand then ADDLTIME can be outputted to the table. If $PK is given limited calls (such as with CALLFL=1), then ADDLTIME should be defined in $ERROR. Similarly, if $ERROR is given limited calls (such as OBS ONLY or CALLFL=0), then ADDLTIME should be defined in $PK. In this way, the user-defined variable ADDLTIME is updated for each outputted record. There is no harm in defining ADDLTIME in both $PK and $ERROR.
Consider the example ..\examples\simpledii16_2d, which consists of a DDE problem, using ADVAN16, and records are set up for a maximum of 100 additional doses (designated as ADDL=-100) given every II=8 hours. The pertinent information is captured for table output as follows (..\examples\simpledii16_2d.ctl):
$SUBROUTINES ADVAN16 TOL=10 ATOL=10 SSTOL=6 SSATOL=6
...
$PK
ADDLA=ADDL_ACTUAL ; may be set in $PK and/or $ERROR
ADDLTIME=ADDL_TIME ; may be set in $PK and/or $ERROR
...
$TABLE ID TIME ADDLTIME A1 A4 A5 ADDL ADDLA
NOAPPEND NOPRINT ONEHEADER FILE=simpledii16_2d.tab
...
$ERROR
ADDLA=ADDL_ACTUAL
ADDLTIME=ADDL_TIMEIf you have code that involves MTIME(), the MTIME should be adjusted with ADDL_TIMEDIFF. For example, if you want MTIME(1) to be at TIME=812.5 hours (relative to maximal number of doses), then MTIME should be set to the adjusted time value, after ADDL_TIMEDIFF becomes non-zero (which is after PREDPP has assessed the appropriate number of additional doses):
IF(ADDL_TIMEDIFF/=0.0.AND.MTIME(1)==0.0) THEN
MTIME(1)=812.5+ADDL_TIMEDIFF
MTDIFF=1
ELSE
MTIME(1)=MTIME(1)
ENDIFThe above code is written for efficiency, so that MTIME(1) is set once.
Only the first negative ADDL is recognized as an indicator to adjust the number of doses. However, if you have a cluster of doses together, with the same starting time (although they may have different lag times), II, and ADDL, these will be treated as a composite steady state dosing strategy. For example, in method of steps problems, you may want a second dose record for the delay compartment (which may have an ALAG modeled in the control stream).
A steady state continuous infusion problem would also be modeled with II and negative valued ADDL. For this case, set the II equal to AMT/RATE, so that when one infusion period ends, the next one begins. See ..\examples\simpledii16_2e.ctl. Do not use the SS item with the negative valued ADDL method.