From: Sebastien Bihorel <*sebastien.bihorel*>

Date: Tue, 13 Mar 2018 21:35:14 -0400 (EDT)

So, you want F1 to change while the infusion is on-going. In that case, I w=

ould use the same kind of MTIME-based code as you included in your original=

post.

From: Bill Denney <wdenney

To: "Sebastien Bihorel" <sebastien.bihorel

Cc: "NMUsers" <nmusers

Sent: Tuesday, March 13, 2018 9:21:00 PM

Subject: RE: [NMusers] Time-Varying Bioavailability on Zero-Order Infusion=

Hi Sebastien,

Thanks for that suggestion!

Unfortunately, that will only update when I have observation records, so it=

will change R1 in discrete steps at each observation (I could insert a lot=

of observations, but it still has the same limitation). I need it to conti=

nuously vary—this solution does that, but I’d like to learn=

a simpler way than what I suggested.

Thanks,

Bill

From: Sebastien Bihorel < [ mailto:sebastien.bihorel

astien.bihorel

Sent: Tuesday, March 13, 2018 9:17 PM

To: Bill Denney < [ mailto:wdenney

ictions.com ] >

Cc: NMUsers < [ mailto:nmusers

Subject: Re: [NMusers] Time-Varying Bioavailability on Zero-Order Infusion=

Hi,

I would suggest the following solution which should also work if you want t=

o apply some covariate effect on bioavailability:

* On the dataset side, set your RATE variable to -1 and store the actual in=

fusion 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 < [ mailto:wdenney

predictions.com ] >

To: "NMUsers" < [ mailto:nmusers

*>
*

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 wit=

h is something like the below. It seems like something that should be easie=

r 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 th=

e 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

Received on Tue Mar 13 2018 - 21:35:14 EDT

Date: Tue, 13 Mar 2018 21:35:14 -0400 (EDT)

So, you want F1 to change while the infusion is on-going. In that case, I w=

ould use the same kind of MTIME-based code as you included in your original=

post.

From: Bill Denney <wdenney

To: "Sebastien Bihorel" <sebastien.bihorel

Cc: "NMUsers" <nmusers

Sent: Tuesday, March 13, 2018 9:21:00 PM

Subject: RE: [NMusers] Time-Varying Bioavailability on Zero-Order Infusion=

Hi Sebastien,

Thanks for that suggestion!

Unfortunately, that will only update when I have observation records, so it=

will change R1 in discrete steps at each observation (I could insert a lot=

of observations, but it still has the same limitation). I need it to conti=

nuously vary—this solution does that, but I’d like to learn=

a simpler way than what I suggested.

Thanks,

Bill

From: Sebastien Bihorel < [ mailto:sebastien.bihorel

astien.bihorel

Sent: Tuesday, March 13, 2018 9:17 PM

To: Bill Denney < [ mailto:wdenney

ictions.com ] >

Cc: NMUsers < [ mailto:nmusers

Subject: Re: [NMusers] Time-Varying Bioavailability on Zero-Order Infusion=

Hi,

I would suggest the following solution which should also work if you want t=

o apply some covariate effect on bioavailability:

* On the dataset side, set your RATE variable to -1 and store the actual in=

fusion 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 < [ mailto:wdenney

predictions.com ] >

To: "NMUsers" < [ mailto:nmusers

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 wit=

h is something like the below. It seems like something that should be easie=

r 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 th=

e 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

Received on Tue Mar 13 2018 - 21:35:14 EDT