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/