From:"Atul"Subject:[NMusers] Parallel absorption model (two lag times) Date:Sun, February 3, 2002 11:12 am Hello All I am trying to model a two absorption periods (first order) from the same dose. I checked the nmusers archive and it was lot informative. I am not sure if the control stream below has any fundamental mistakes. I checked simulations first and they were fine. When I was trying to do the estimation step the model was repeatedly failed to converge. I included few lines from the data set in which I gave the same dose to two compartments (two parallel sites of absorption). I assumed B1 as the bioavailability factor from 1st compartment and B2(=1-B1) from the second. I was not sure how NONMEM will detect two lag times to model double peaks. Do I need to include andy IF statements? Could somebody please correct me in the code and the way I arranged the dataset. Thanks a lot in advance for your time. Venkatesh Atul Bhattaram Post-doctoral Fellow University of Florida $INPUT ID TIME DV AMT CMT EVID MDV $DATA DATA.CSV IGNORE=C $SUBROUTINES ADVAN6 TRAN 1 TOL=3 $MODEL COMP=(1); DOSE, 1 COMP=(2); DOSE, 2 COMP=(3); CENTRAL, 2 COMP=(4); PERIPHERAL $PK TVCL=THETA(1) TVV=THETA(2) TVK12=THETA(3) TVK21=THETA(4) TALAG1=THETA(5) TALAG2=THETA(6) TVKA=THETA(7); ABSORPTION RATE CONSTANT 1 TVB1=THETA(8); B1 IS BIOAVAILABILITY FACTOR TVKB=THETA(9); ABSORPTION RATE CONSTANT 2 CL=TVCL*EXP(ETA(1)) V=TVV*EXP(ETA(2)) K12=TVK12*EXP(ETA(3)) K21=TVK21*EXP(ETA(4)) ALAG1=TALAG1*EXP(ETA(5)) ALAG2=TALAG2*EXP(ETA(6)) KA=TVKA*EXP(ETA(7)) B1=TVB1*EXP(ETA(8)) KB=TVKB*EXP(ETA(9)) B2=1-B1 S3=V/1000 K10=CL/V $DES DADT(1)= -B1*KA*A(1) DADT(2)=-B2*KB*A(2) DADT(3)=B1*KA*A(1)+B2*KA*A(2)-K12*A(3)+K21*A(4)-K10*A(3) DADT(4)=K12*A(3)-K21*A(4) C=A(3)/S3 $ERROR Y=F*(1+ERR(1))+ERR(2) IPRED=F IRES=DV-IPRED $THETA (0.00001, 70); CL (0.00001, 10); V (0.00001, 1.05); K12 (0.00001, 0.5); K21 (0.00001, 0.001); ALAG1 (0.08, 1.5, 12); ALAG2 (0.00001, 4.5); KA (0.00001, 0.2, 1); B1 (0.00001, 2); KB $OMEGA (0.2); CL (0.2); V (0.2); K12 (0.2); K21 (0.2); ALAG1 (0.2); ALAG2 (0.2); KA (0.2); F (0.1) $SIGMA (0.1) (10) ;$SIMULATION(9215690) ONLYSIM SUBPROBLEMS=100 $EST METHOD=1 NSIG=3 MAXEVAL=9999 PRINT=5 NOABORT POSTHOC ;$COV $TABLE ID TIME CL V K12 K21 ALAG1 ALAG2 KA B1 B2 KB CMT DV IPRED NOPRINT ONEHEADER FILE=TXX CID TIME DV AMT CMT EVID MDV 1 0 0 378 1 1 1 1 0 0 378 2 1 1 1 0.083 96.82 0 3 0 0 1 0.167 2179.48 0 3 0 0 1 0.25 4797.74 0 3 0 0 ******* From:"Sam Liao" Subject:RE: [NMusers] Parallel absorption model (two lag times) Date:Sun, February 3, 2002 8:58 pm Hi Atul: Try to use the bioavailability fraction F1, and F2 instead. These are additional PK paramaters you can define in your PK model. for example: CL=TVCL*EXP(ETA(1)) V=TVV*EXP(ETA(2)) K12=TVK12*EXP(ETA(3)) K21=TVK21*EXP(ETA(4)) ALAG1=TALAG1*EXP(ETA(5)) ALAG2=TALAG2*EXP(ETA(6)) KA=TVKA*EXP(ETA(7)) F1=TVB1*EXP(ETA(8)) KB=TVKB*EXP(ETA(9)) F2=1-F1 S3=V/1000 Best regards, Sam Liao, Ph.D. PharMax Research 270 Kerry Lane, Blue Bell, PA 19422 phone: 215-6541151 efax: 1-720-2946783 ******* From:Nick Holford Subject:Re: [NMusers] Parallel absorption model (two lag times) Date:Mon, February 4, 2002 1:15 am There is a problem in DADT(1) and DADT(2). You apply the bioavailability fractions B1 and B2 to loss from these compartments but the loss from these dose compartments is not affected by bioavailability. It is the input to compartments 3 and 4 only that need these bioavailability fractions. Note that you can make use of the PREDPP basic PK parameters F1 and F2 to do the job for you instead of using B1 and B2. There is also a typo in DADT(3). I think you mean to have KB (not KA) multiply A(2). The line C=A(3)/S3 is unnecessary and will only slow down execution. > $DES > DADT(1)= -B1*KA*A(1) > DADT(2)=-B2*KB*A(2) > DADT(3)=B1*KA*A(1)+B2*KA*A(2)-K12*A(3)+K21*A(4)-K10*A(3) > DADT(4)=K12*A(3)-K21*A(4) > > C=A(3)/S3 > I would also suggest you consider parameterizing the model in terms of CL, V1, Q and V2. I cannot think of any good reason to use the K12 and K21 parameterization. I would use something like the following: $SUBROUTINES ADVAN6 TOL=3 ; TRANS 1 is the default $MODEL COMP=(1); DOSE, 1 COMP=(2); DOSE, 2 COMP=(3); CENTRAL, 2 COMP=(4); PERIPHERAL $PK KA=THETA(KA) KB=THETA(KB) ALAG1=THETA(ALAG1) ALAG2=THETA(ALAG2) CL=THETA(CL) V1=THETA(V1) Q=THETA(Q) V2=THETA(V2) F1=THETA(F1) F2=1-F1 S3=V1/1000 $DES ;define variables to reduce computation and make code clearer RINA=KA*A(1) RINB=KB*A(2) C3=A(3)/V1 C4=A(4)/V2 DADT(1)=-RINA DADT(2)=-RINB DADT(3)=RINA + RINB + C4*Q - C3*(Q + CL) DADT(4)=Q*(C3-C4) $ERROR C=F ;=A(3)/S3 Y=C*(1+ERR(1)) + ERR(2) Note also that because your model is linear you could use ADVAN5 provided you stick to the naming conventions for parameters and do the necessary algebra in $PK to convert CL, V1, Q and V2 into the appropriate rate constants and V variables. This should run faster than ADVAN6. Nick -- Nick Holford, Divn Pharmacology & Clinical Pharmacology University of Auckland, 85 Park Rd, Private Bag 92019, Auckland, New Zealand email:n.holford@auckland.ac.nz tel:+64(9)373-7599x6730 fax:373-7556 http://www.health.auckland.ac.nz/pharmacology/staff/nholford/