Re: Two sequential absorption processes

From: Luann Phillips Date: April 11, 2011 technical Source: mail-archive.com
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, > >
Apr 06, 2011 Liu Dongyang Two sequential absorption processes
Apr 07, 2011 Mahesh Samtani RE: Two sequential absorption processes
Apr 07, 2011 Murad Melhem Re: Two sequential absorption processes
Apr 11, 2011 Luann Phillips Re: Two sequential absorption processes
Apr 12, 2011 Paul Matthias Diderichsen Re: Two sequential absorption processes