Hi Bill,

Interesting problem...
Bioavailability + dose are implemented as initial conditions (for bolus) or constant term in equations (for infusion). It is very difficult if not impossible to implement general time-dependent right-hand side with the user interface simpler than what you are using now (that is, define RATEIN as a function of time).
Best!
Leonid


On 3/13/2018 10:08 PM, Bill Denney wrote:
Hi Leonid,

The biology behind it is that during a long (many day) infusion, there
appears to be adsorption to the infusion tubing and/or catheter.  The real
model I'm developing is more complex in the adsorption part (there may be
saturable adsorption as shown with the dynamics in the first days), and I
want it to be accurate as a continuous time variant IV bioavailability
because I'm trying to predict different infusion rates and durations.

The model mis-fit is both a dose-related apparent bioavailability change
(much simpler to implement than what is here) and a dose- and time-related
apparent change in bioavailability during the first portion of the dosing
due to the potential saturation of the adsorption.  The kinetics after the
end of the infusion all appear to be linear over a moderate-to-large dose
range, so I don't think that it's more complex human biology.

And for the current data set, the model runs quickly (it isn't that I'm
having to sit around forever for the solution).  The technical question was
if there was some part of NONMEM that I didn't know related to controlling
infusion rates in the $DES block.  (Feature request to Bob and Alison: Maybe
in NONMEM 7.5, the user could set R1 = -1 in $PK and have continuous control
of R1 in $DES-- generalized to include all compartments.)

Thanks,

Bill

-----Original Message-----
From: Leonid Gibiansky <lgibian...@quantpharm.com>
Sent: Tuesday, March 13, 2018 9:34 PM
To: Sebastien Bihorel <sebastien.biho...@cognigencorp.com>; Bill Denney
<wden...@humanpredictions.com>
Cc: NMUsers <nmusers@globomaxnm.com>
Subject: Re: [NMusers] Time-Varying Bioavailability on Zero-Order Infusion

Hi Bill,

I think the proposed original solution is the only one if you would like to
implement it exactly. May be it can be approximated somehow? What is the
real reason for this questions? What is the biology behind the time-variant
IV bioavailability? Or what is the model mis-fit that you are trying to fix?

Leonid




On 3/13/2018 9:16 PM, Sebastien Bihorel wrote:
Hi,

I would suggest the following solution which should also work if you
want to apply some covariate effect on bioavailability:
* On the dataset side, set your RATE variable to -1 and store the
actual infusion rates into another variable, eg IVRATE
* On the model side:
$PK
...

; assuming the IV infusion are made in compartment 1
F1 = <whatever time varying function>
R1 = F1*IVRATE

Voila, NONMEM should take care of the dosing in the background as usual.

Sebastien

----------------------------------------------------------------------
--
*From: *"Bill Denney" <wden...@humanpredictions.com>
*To: *"NMUsers" <nmusers@globomaxnm.com>
*Sent: *Tuesday, March 13, 2018 8:58:41 PM
*Subject: *[NMusers] Time-Varying Bioavailability on Zero-Order
Infusion

Hi NONMEMers,

Is there a good way to assign a time-varying bioavailabilty on a
zero-order rate of infusion in NONMEM?  The best I’ve been able to
come up with is something like the below.  It seems like something
that should be easier than what I’m doing below (I adjusted it from
the real example as I was typing it into the email—I could have
introduced a bug in the process).  And importantly, -9998 is well
before any time in my database.

(dosing into CMT=1 with an IV infusion)

$MODEL

COMP=(CENTRAL DEFDOSE DEFOBS)    ; central

COMP=(P1)                        ; peripheral 1

COMP=(P2)                        ; peripheral 2

$PK

    ; Normal stuff and ...

    ; Record the dosing time

    IF (NEWIND.LT.2) THEN

      TDOSE = -9999

      DOSEEND = -9998

      DOSE = -999

      DOSERATE = 0

    ENDIF

    IF ((EVID.EQ.1 .OR. EVID.EQ.4) .AND. RATE.GT.0) THEN

      TDOSE = TIME

      DOSEEND = TIME + AMT/RATE

      DOSERATE=RATE

      MTDIFF=1

    ENDIF

    MTIME(1)=TDOSE

    MTIME(2)=DOSEEND

    F1 = 0 ; Bioavailability is zero so that the $DES block has full
control over the rate.

    RATEADJTAU=THETA(10)

    RATEADJMAX=THETA(11)

$DES

    ; Manually control the infusion

    RATEIN = 0

    IF (MTIME(1).LE.T .AND. T.LE.MTIME(2)) THEN

      RATEADJCALC = RATEADJMAX * EXP(-(T – MTIME(1)) * RATEADJTAU)

      RATEIN = DOSERATE - RATEADJCALC

    ENDIF

    DADT(1) = RATEIN - K10*A(1) - K12*A(1) + K21*A(2) - K13*A(1) +
K31*A(3)

    DADT(2) =                     K12*A(1) - K21*A(2)

    DADT(3) =                                           K13*A(1) -
K31*A(3)

Thanks,

Bill




Reply via email to