Using MIXture model to fit 1 compartment vs 2 compartment model

3 messages 2 people Latest: May 15, 2012
I have a small data set of 4 samples each from 15 patients getting CVVH for renal failure that was handed to me. Some subjects appear to be modeled best by a 1 compartment model, other by a 2 compartment model. I have tried the ctl stream below using MIX to allow NONMEM to fit to either a 1 or 2 cmpt model, and it appears to work well (Note there is high covariance in CL, V1, and Q,V2, so their respective ETAs are shared). However, I have two questions to the group: 1. Is this the optimal way to allow NONMEM to fit to a 1 vs 2 compt model? 2. Is this appropriate? That is, the drug likely is best modeled by (at least) a 2 compartment model, yet only a fraction (~20%) of these sparse data sets appear best fit by a 2 compt model. Given that the sampling was not optimized to detect/characterize a 2 compartment model, should I settle and report a one compartmental model, or describe a 2 cmpt when possible? Perhaps is it an angels on a pinhead issue, as my primary objective is to describe any effect of dialysate flow on clearance. $INPUT ID TIME CLCK=DROP AMT RATE SS II DV LGDV WGT HGT DURD FLOW CMPD EVID $DATA Zosyn.CSV IGNORE=# IGNORE(CMPD=2) $SUBROUTINES ADVAN6 TOL=3 $MODEL NPARAMS=7 NCOMP=2 COMP=(CENTRAL DEFDOSE) COMP=(TISSUE) ; 2 COMPARTMENT MODEL ; CMPD 1 = Piperacillin ; CMPD 2 = Tazobactam $MIX NSPOP=2 P(1)=THETA(7) P(2)=1-THETA(7) P1C = THETA(7) $PK CALLFL=1 EST=MIXEST CL1=THETA(1)*EXP(ETA(1)); TVV1=THETA(2)*EXP(ETA(1)); CL2=THETA(1)*THETA(3)*EXP(ETA(2)) TVV2=THETA(2)*THETA(4)*EXP(ETA(2)) FLG=1 IF (MIXNUM.EQ.2) FLG=0 CL=FLG*CL1 + (1-FLG)*CL2 V1 = FLG*TVV1 + (1-FLG)*TVV2 Q=THETA(5)*(1-FLG) V2 = THETA(6)**(1-FLG); V2 cannot be 0 for 1 compt due to K21=Q/V2 divide by 0 fault S1=V1 K10 = CL*(FLOW/35)/V1 K12 = (Q/V1)*(1-FLG) K21 = (Q/V2)*(1-FLG) $DES DADT(1) = -A(1) * (K10 + K12) + A(2) * K21 DADT(2) = A(1) * K12 - A(2) * K21 -- Paul R. Hutson, Pharm.D. Associate Professor UW School of Pharmacy T: 608.263.2496 F: 608.265.5421
Dear Paul and friends within the NONMEM community, You touch on a fundamental issue with your questions. The issue is, what to do with prior knowledge. Do we just fit the data at hand as well as we can, or do we want to embed the data at hand in a larger knowledge space. I for my part have once and for all made up my mind. I will not fit any more data and disregard prior knowledge. For me each drug only exists in its biologic context, and for each drug there is a body of knowledge that needs to be respected and represented. I do not hunt anymore for the perfect fit, nor do I adhere to a strict set of rules. Models need to represent both, prior knowledge and current data. I now often resort to representing prior knowledge via the $PRIOR functionality and I have gained experience in the use of informative priors. To answer your specific question: I would not go the route you have chosen using $MIX. Instead I would represent the two compartment model with informative priors and I would let your scares new data modify those priors, to a certain extent to arrive at meaningful individual predictions. Your very limited data set is obviously not fit to revise the knowledge base of the drug (CVVH - what is that?), but it may be sufficient to obtain individual predictions (to relate dialysis flow rate to individual clearance estimates?). The technicalities of setting up informative priors have been discussed in this forum recently. Good luck, Joachim Joachim Grevel, PhD Scientific Director BAST Inc Limited Loughborough Innovation Centre Charnwood Building Holywell Park, Ashby Road Loughborough, LE11 3AQ Tel: +44 (0)1509 222908
Quoted reply history
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Paul Hutson Sent: 14 May 2012 16:50 To: [email protected] Subject: [NMusers] Using MIXture model to fit 1 compartment vs 2 compartment model I have a small data set of 4 samples each from 15 patients getting CVVH for renal failure that was handed to me. Some subjects appear to be modeled best by a 1 compartment model, other by a 2 compartment model. I have tried the ctl stream below using MIX to allow NONMEM to fit to either a 1 or 2 cmpt model, and it appears to work well (Note there is high covariance in CL, V1, and Q,V2, so their respective ETAs are shared). However, I have two questions to the group: 1. Is this the optimal way to allow NONMEM to fit to a 1 vs 2 compt model? 2. Is this appropriate? That is, the drug likely is best modeled by (at least) a 2 compartment model, yet only a fraction (~20%) of these sparse data sets appear best fit by a 2 compt model. Given that the sampling was not optimized to detect/characterize a 2 compartment model, should I settle and report a one compartmental model, or describe a 2 cmpt when possible? Perhaps is it an angels on a pinhead issue, as my primary objective is to describe any effect of dialysate flow on clearance. $INPUT ID TIME CLCK=DROP AMT RATE SS II DV LGDV WGT HGT DURD FLOW CMPD EVID $DATA Zosyn.CSV IGNORE=# IGNORE(CMPD=2) $SUBROUTINES ADVAN6 TOL=3 $MODEL NPARAMS=7 NCOMP=2 COMP=(CENTRAL DEFDOSE) COMP=(TISSUE) ; 2 COMPARTMENT MODEL ; CMPD 1 = Piperacillin ; CMPD 2 = Tazobactam $MIX NSPOP=2 P(1)=THETA(7) P(2)=1-THETA(7) P1C = THETA(7) $PK CALLFL=1 EST=MIXEST CL1=THETA(1)*EXP(ETA(1)); TVV1=THETA(2)*EXP(ETA(1)); CL2=THETA(1)*THETA(3)*EXP(ETA(2)) TVV2=THETA(2)*THETA(4)*EXP(ETA(2)) FLG=1 IF (MIXNUM.EQ.2) FLG=0 CL=FLG*CL1 + (1-FLG)*CL2 V1 = FLG*TVV1 + (1-FLG)*TVV2 Q=THETA(5)*(1-FLG) V2 = THETA(6)**(1-FLG); V2 cannot be 0 for 1 compt due to K21=Q/V2 divide by 0 fault S1=V1 K10 = CL*(FLOW/35)/V1 K12 = (Q/V1)*(1-FLG) K21 = (Q/V2)*(1-FLG) $DES DADT(1) = -A(1) * (K10 + K12) + A(2) * K21 DADT(2) = A(1) * K12 - A(2) * K21 -- Paul R. Hutson, Pharm.D. Associate Professor UW School of Pharmacy T: 608.263.2496 F: 608.265.5421
Thank you, Joachim. You express my concern better than I could have. Unfortunately I could not find in the literature the compartmental priors to use in $PRIOR, only non-compartmental hooey. I am thankful to Rob ter Heine who pointed out a nice population PK study of similar patients receiving continuous veno-venous hemofiltration (CVVH) being presented this year at PAGE (#2526). I also appreciate Maciej Swat's point that my coding was faulty, and that CL2=THETA(1)*THETA(3)*ETA(1) led to poorly identifiable thetas, and should be simplified to CL2=THETA(3)*ETA(1), and similarly for TVV2. This also allowed me to re-introduce the parameter-specific etas. Paul Hutson
Quoted reply history
On 5/15/2012 3:48 AM, Joachim Grevel wrote: > Dear Paul and friends within the NONMEM community, > > You touch on a fundamental issue with your questions. The issue is, what to > do with prior knowledge. Do we just fit the data at hand as well as we can, > or do we want to embed the data at hand in a larger knowledge space. I for > my part have once and for all made up my mind. I will not fit any more data > and disregard prior knowledge. For me each drug only exists in its biologic > context, and for each drug there is a body of knowledge that needs to be > respected and represented. I do not hunt anymore for the perfect fit, nor do > I adhere to a strict set of rules. Models need to represent both, prior > knowledge and current data. I now often resort to representing prior > knowledge via the $PRIOR functionality and I have gained experience in the > use of informative priors. > > To answer your specific question: I would not go the route you have chosen > using $MIX. Instead I would represent the two compartment model with > informative priors and I would let your scares new data modify those priors, > to a certain extent to arrive at meaningful individual predictions. Your > very limited data set is obviously not fit to revise the knowledge base of > the drug (CVVH - what is that?), but it may be sufficient to obtain > individual predictions (to relate dialysis flow rate to individual clearance > estimates?). > > The technicalities of setting up informative priors have been discussed in > this forum recently. > > Good luck, > > Joachim > > Joachim Grevel, PhD > Scientific Director > BAST Inc Limited > Loughborough Innovation Centre > Charnwood Building > Holywell Park, Ashby Road > Loughborough, LE11 3AQ > Tel: +44 (0)1509 222908 > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On > Behalf Of Paul Hutson > Sent: 14 May 2012 16:50 > To: [email protected] > Subject: [NMusers] Using MIXture model to fit 1 compartment vs 2 compartment > model > > I have a small data set of 4 samples each from 15 patients getting CVVH for > renal failure that was handed to me. Some subjects appear to be modeled > best by a 1 compartment model, other by a 2 compartment model. > I have tried the ctl stream below using MIX to allow NONMEM to fit to either > a 1 or 2 cmpt model, and it appears to work well (Note there is high > covariance in CL, V1, and Q,V2, so their respective ETAs are shared). > > However, I have two questions to the group: > 1. Is this the optimal way to allow NONMEM to fit to a 1 vs 2 compt model? > > 2. Is this appropriate? That is, the drug likely is best modeled by (at > least) a 2 compartment model, yet only a fraction (~20%) of these sparse > data sets appear best fit by a 2 compt model. Given that the sampling was > not optimized to detect/characterize a 2 compartment model, should I settle > and report a one compartmental model, or describe a 2 cmpt when possible? > Perhaps is it an angels on a pinhead issue, as my primary objective is to > describe any effect of dialysate flow on clearance. > > $INPUT ID TIME CLCK=DROP AMT RATE SS II DV LGDV WGT HGT DURD FLOW CMPD EVID > $DATA Zosyn.CSV IGNORE=# IGNORE(CMPD=2) $SUBROUTINES ADVAN6 TOL=3 $MODEL > NPARAMS=7 NCOMP=2 COMP=(CENTRAL DEFDOSE) > COMP=(TISSUE) > ; 2 COMPARTMENT MODEL > ; CMPD 1 = Piperacillin > ; CMPD 2 = Tazobactam > > $MIX > NSPOP=2 > P(1)=THETA(7) > P(2)=1-THETA(7) > P1C = THETA(7) > $PK > CALLFL=1 > EST=MIXEST > CL1=THETA(1)*EXP(ETA(1)); > TVV1=THETA(2)*EXP(ETA(1)); > CL2=THETA(1)*THETA(3)*EXP(ETA(2)) > TVV2=THETA(2)*THETA(4)*EXP(ETA(2)) > > FLG=1 > IF (MIXNUM.EQ.2) FLG=0 > CL=FLG*CL1 + (1-FLG)*CL2 > V1 = FLG*TVV1 + (1-FLG)*TVV2 > Q=THETA(5)*(1-FLG) > V2 = THETA(6)**(1-FLG); V2 cannot be 0 for 1 compt due to K21=Q/V2 divide by > 0 fault > S1=V1 > > K10 = CL*(FLOW/35)/V1 > K12 = (Q/V1)*(1-FLG) > K21 = (Q/V2)*(1-FLG) > > $DES > DADT(1) = -A(1) * (K10 + K12) + A(2) * K21 > DADT(2) = A(1) * K12 - A(2) * K21 > > -- > Paul R. Hutson, Pharm.D. > Associate Professor > UW School of Pharmacy > T: 608.263.2496 > F: 608.265.5421 -- Paul R. Hutson, Pharm.D. Associate Professor UW School of Pharmacy T: 608.263.2496 F: 608.265.5421