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