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