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
...

## Advertising

; 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