Liu,

The info that I sent to you allows the following to happen:

(1) A constant rate of infusion to the central cmt begins immediately at
the time of dose.
(2) At time=alag1=d2, the constant rate of infusion shuts off and
first-order absorption begins at the same time that the infusion shuts
off (not at a lagged time). The alag is just used to keep first-order
turned off until the zero-order infusion is done.
(3) The way that I coded F1 & F2 is to ensure that 100% of the drug will
go into the central compartment. However, to implement the model it
requires that a dose of 100 mg be put it 2 times (100 mg into cmt=1 and
100 mg into cmt=2 or 200 mg total). You don't really want 200 mg of drug
going into the system (But putting in the dose 2 times allows the use of
D2 & ALAG1 to turn on & off zero-order vs. first-order). So the
following trick is used to get back to a dose of 100 mg .

F1=THETA(N)  where 0<Theta(N)<1
F2=1-F1

NONMEM DOSE = F1*AMT in CMT=1 + F2*AMT in CMT=2

Example: F1*100 + F2*100
or  F1*100 + (1-F1)*100          (substitute definition of f2)
or F1*100 + 100 - F1*100
which equals 100 which is 100% of the original dose.

You can still use ADVAN6 or ADVAN8 with this set up. However, unless the
PD feeds back and impacts the PK, I suggest figuring out the PK model
alone first (using ADVAN4 for speed).

$DES
;Q=intercompartmental clearance
;Note: NONMEM inputs all doses based upon the description in the dataset
;So with the data description provided earlier, the des below has a
;zero-order input starting at the time of dose that turns off at
;time=d2. The 1st cmt (-ka*a(1)) is turned off until time=d2=alag1.
;At that time the first-order absorption from cmt 1 is turned on.
K10=CL/V1
K12=Q/V1
K21=Q/V2

DADT(1) = -KA*A(1)
DADT(2) = K21*A(3) - K10*A(2) - K12*A(2)
DADT(3) = K12*A(2) - K21*A(3)


Best regards,

Luann Phillips
Director, PK/PD
Cognigen Corporation








LiuDongyang wrote:
> Hello Mahesh and Luann Phillips,
>  
>   Thanks a lot for your kind help and detailed information. My case is a 
> little bit complicated:
> The drug is filled in a mini-pump, which is implant in rats. Drug could 
> infuse in a constant rate
> into rat body. Because of anesthesia in the first couple hours, the drug 
> is absorbed very slowly.
> Based on the fact that drug is absorbed and eliminated rapidly after SC 
> injection, I construct
> this sequential absorption PK model. ALAG is not a little appropriate 
> because plasma concentration
> go down quickly after completion of infusion. If I use ALAG, the 
> infusion completing time will expand to
> the true completing time plus lag time, witch is not expected. These 
> above are one of reason to
> use $DES. The other reason I use $DES because I want to do Pop-PKPD 
> modeling, which need
> ADVAN6 or ADVAN8.
>  
>   I did not set absorption fraction because all drug put in CMT 1 will 
> go into CMT2 with either zero-
> or first-order absorption constant. The value of K0 come from mean data 
> fitting using ADAPT. When
> I change k0, the predicted concentration does not change. I think the 
> problem might come from
> the IF statement or other sources. But I do not know how to fix it. The 
> whole code and data are listed as below:
>  
> $DATA ANK2.PKtime.CSV IGNORE=# 
> $INPUT ID,GRP, TIME,EVID,DV, WT,AMT,RATE,MDV,CMT 
> ;MASS NG, VOLUME ML, TIME HR, PAW UNIT
> $SUBROUTINES  ADVAN6  TOL=5 
>  
> $MODEL
> COMP=(DEPOT)              ;1
> COMP=(CENTRAL)          ;2
> COMP=(TISSUE)             ;3
>  
> $PK
> KA=THETA(1)*EXP(ETA(1))                 ;KA
> TVCL=THETA(2)
> CL=TVCL*EXP(ETA(2))                        ;LINEAR CLEARANCE
> V1=THETA(3)                                     
>  ;VOLUME OF CENTRAL COMPARTMENT (L)
> CLD=THETA(4)
> V2=THETA(5)
>  
> $DES
> IF (AMT.GT.0) THEN
> TDOS=TIME
> TL=TDOS+2.99
> ENDIF
> AL=0
> BL=0
> K0=141
> IF (TIME .LE. TDOS) THEN
>  INPT=0
>  ELSE
>     IF (TIME .LE. TL .AND.TIME .GT. TDOS ) THEN
>      AL=1
>     ELSE
>      BL=1
>     ENDIF
> ENDIF
> INPT=AL*K0+BL*KA*A(1)
> C2=A(2)/V1
> C3=A(3)/V2
> DADT(1) = -INPT
> DADT(2) =  INPT-CL*C2-  CLD*(C2-C3)
> DADT(3) =               CLD*(C2-C3)
>  
> $THETA  
> (0,0.4,2)    ;KA
> (0,660,1000)      ;CL/F
> (149.3 FIXED)      ;V1
> (21.6)      ;CLD
> (201.6 FIXED)      ;V2
>  
> $OMEGA  
> 0.2              ;ETA_KA
> 0.05              ;ETA_CL/F
>  
> $ERROR
> IF (CMT.EQ.2) THEN   
> IPRED=A(2)/V1
> Y=IPRED*(1+EPS(1))+EPS(2)
> ELSE 
> ENDIF
>  
> $SIGMA  
> .4      ;EPS(1)
> 0.0    FIXED;EPS(2)
>  
> $EST     MAXEVAL=9999  METHOD=0 POSTHOC PRINT=5 SIGDIGITS=3 NOABORT MSFO=.MSF
>  
>  
>            #ID
>       
> Group
>       
> TIME
>       
> EVID
>       
> DV
>       
> WT
>       
> AMT
>       
> RATE
>       
> MDV
>       
> CMT
> 24
>       
> 2
>       
> 506.42
>       
> 1
>       
>  
>       
> 0.2544
>       
> 1.28E+08
>       
> 4166509
>       
> 1
>       
> 1
> 24
>       
> 2
>       
> 509.8
>       
> 0
>       
> 4101
>       
> 0.2544
>       
>  
>       
>  
>       
> 0
>       
> 2
> 24
>       
> 2
>       
> 515.03
>       
> 0
>       
> 11107
>       
> 0.2544
>       
>  
>       
>  
>       
> 0
>       
> 2
> 24
>       
> 2
>       
> 534.18
>       
> 0
>       
> 11703
>       
> 0.2544
>       
>  
>       
>  
>       
> 0
>       
> 2
> 
>  .......................
> 2011-04-07
> ------------------------------------------------------------------------
> Liu Dongyang
> ------------------------------------------------------------------------
> *发件人:* Luann.Phillips
> *发送时间:* 2011-04-06  22:44:00
> *收件人:* Liu Dongyang
> *抄送:*
> *主题:* Re: [NMusers] Two sequential absorption processes
> Liu,
> I think the following should work for you and it allows you to use the
> standard ADVAN for a 2 cmt model with a depot cmt (I think its ADVAN4).
> (A) Setting up your data
> In your data set, you will need to input each dose twice with the same
> value of TIME. First time set RATE=-2 with CMT=2(central cmt). The 2nd
> time you input the dose set RATE=. and CMT=1 (depot).
> The first dose record tells NONMEM that the dose is using a zero-order
> input with an estimated duration (which you will fix to 2.99). The 2nd
> dose record will allow NONMEM to input a dose via first-order absorption.
> I know this sounds very odd because it's putting in twice the dose that
> you actually gave. But as you continue reading, other code will ensure
> that only the dose amount that you actually gave will go into the system.
> EXAMPLE:
> TIME AMT RATE CMT DV
> 0    100  -2   2   .
> 0    100   .   1   .
> 0.25  .    .   2   10
> 0.5   .    .   2   20
> 0.75  .    .   2   30
> 1.0   .    .   2   40
> ETC.
> 24   100   -2   2   .
> 24   100    .   1   .
> conc records
> etc.
> (B) Setting up your model
> $PK
> ;Call prediction routine at lagged dose times
> ;I think its a value of -1 but double check in the nmhelp. It may be -2.
> ;I don't have access to my help guide because I'm out of the office.
> CALLFL=-1
> ;dose records in dataset are putting in twice the dose
> ;the following code will reduce it back to the actual dose
> ;The parameter F1 is multiplied to AMT for CMT=1 at the time the dose is
> ;introduced into CMT=1. F2 is multiplied to AMT for CMT=2 at the time that
> ;dose is introduced into the system.
> ;So, NONMEM will see F1*AMT + F2*AMT of drug introduced into the system.
> ;If F2 is set = 1-F1 then F1*AMT + (1-F1)*AMT will be introduced.
> ;F1*AMT + (1-F1)*AMT is really just 1*AMT the original dose.
> ;F1 = fraction of dose absorbed via first-order process -> bounds (0,x,1)
> ;F2 = fraction of dose absorbed via zero-order process
> ;Note: If you put an eta on F1, remember to use a logit transform so that
> ;the individual values of F1 remain between 0 and 1.
> F1=THETA(N)
> F2= 1-F1
> ;set up the parameters to deal with length of zero-order process
> ;set up the parameters to deal with the start of the first-order process
> ;ALAG1 tells NONMEM to delay entering the CMT=1 doses by the value of ALAG1
> ;D2 in conjunction with RATE=-2 tells NONMEM to introduce a dose into CMT2
> ;using a zero-order process with a duration of D2 and rate=F2*AMT/D2.
> ;In your case, you have determined this value to be 2.99 hr
> ;NONMEM will automatically apply each parameter to every dose record
> ;Note: If you have a lot of absorption data, you may be able to estimate
> ; the time of the transition by setting ALAG1=THETA(M) and D2=ALAG1
> ALAG1=2.99
> D2=2.99
> You will not need a $DES block, this model will run with a regular 2 cmt
> ADVAN. This will also help speed up run times.
> I hope you find this helpful.
> Best regards,
> Luann Phillips
> Cognigen Corporation
> Director, PK/PD
>  > Dear NonMEM users,
>  >
>  >   I want to code a two sequential absorption processes with 2 CMT:
>  > zero-order absorption for the first 2.99 hours and then
>  > first-order absorption for the rest time. My code is listed as below. My
>  > question is when I change K0 (zero-order absorpption rate),
>  > the predicted concentrations in the first 2.99 hours does not change. It
>  > seems like AL is useless.
>  >  I am very appreciated if anyone can tell me the problem in my code or
>  > other things. Thanks a lot!
>  >
>  > $DES
>  >
>  > IF (AMT.GT.0) THEN
>  > TDOS=TIME            ;dosing time
>  > TL=TDOS+2.99        ;lag time=2.99 hour
>  > ENDIF
>  >
>  > AL=0
>  > BL=0
>  > K0=14100
>  >
>  > IF (TIME .LE. TDOS) THEN   ; for PD baseline
>  >  INPT=0
>  >  ELSE
>  >     IF (TIME .LE. TL .AND.TIME .GT. TDOS ) THEN
>  >      AL=1
>  >     ELSE
>  >      BL=1
>  >     ENDIF
>  > ENDIF
>  >
>  > INPT=AL*K0+BL*KA*A(1)
>  >
>  > C2=A(2)/V1
>  > C3=A(3)/V2
>  >
>  > DADT(1) = -INPT
>  > DADT(2) =  INPT-CL*C2-  CLD*(C2-C3)
>  > DADT(3) =                      CLD*(C2-C3)
>  >
>  >
>  > Best regards,
>  >
>  > Liu, Dongyang, PhD, Postdoc Fellow
>  > Department of Pharmaceutical sciences,
>  > State University of New York at Buffalo.
>  > Tel(o):01-716-645-4840,
>  > Cell:  01-716-908-6644,
>  >

Reply via email to