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 youwant to apply some covariate effect on bioavailability:* On the dataset side, set your RATE variable to -1 and store the actualinfusion 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 azero-order rate of infusion in NONMEM? The best I’ve been able to comeup with is something like the below. It seems like something thatshould be easier than what I’m doing below (I adjusted it from the realexample as I was typing it into the email—I could have introduced a bugin the process). And importantly, -9998 is well before any time in mydatabase.(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)=DOSEENDF1 = 0 ; Bioavailability is zero so that the $DES block has fullcontrol 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