Questions about M3

2 messages 2 people Latest: Apr 29, 2010

Questions about M3

From: Xiao Hu Date: April 29, 2010 technical
Dear NMusers, I'm seeking inputs/advice on some M3 related questions. Any comments and suggestions would be appreciated. I have some Phase 1 data on a drug, which I want to model with a M3 method. The LLQ is 10 and peak level is about 80 (it's a cytokine and can't ask assay people to do a better job). I'm using NONMEM 7, therefore, can use PHI function directly. Below you can see my initial code (Code 1). I first modeled SIG as a separate THETA(5). The estimated THETA(5) turned out to be 1.14E6. Therefore, all the PREDs=0.5 with TYPE==2. I had to admire NONMEM because it makes (LOQ-IPRE)/SIG close to zero and give me a politically golden answer (Prob=0.5) on my LLQ data. Since SIG represents the variance of F, in my second try, I set SIG=SD*SD and modeled log-tranformed data, because I'm using exponential model on the ERROR. The code is following the initial code (Code 2). Here's my questions. 1. Is code 2 a theoretically correct approach? How is SIG generally modeled based on your experience? 2. Currently, I only included one BLQ post Tmax. The rest were ignored (MDV=1). If I include one BLQ timepoint before Tmax, the model won't run. If I include every BLQ time points after Tmax, the model won't run. Is this acceptable? What's the general practice? 3. What are the diagnostic tools for BLQ from the M3 method? 4. If I model SIG using all the data, and fix it in the subsequent runs, which use the same code as Code 1 with SIG fixed, will this be acceptable? Code 1: $SUBROUTINES ADVAN2 $PK MU_1=THETA(1) MU_2=THETA(2) MU_3=THETA(3) MU_4=THETA(4) SD=MU_4 KA=EXP(MU_1+ETA(1)) V=EXP(MU_2+ETA(2)) CL=EXP(MU_3+ETA(3)) K=CL/V S2=V/1000 $ERROR SIG=THETA(5) LOQ=10 IPRE=F IF(SIG==0) EXIT DUM=(LOQ-IPRE)/SIG CUMD=PHI(DUM) IF(TYPE.EQ.1) THEN F_FLAG=0 Y= F*EXP(SD*ERR(1)) ENDIF IF(TYPE.EQ.2) THEN F_FLAG=1 Y=CUMD ENDIF $THETA -1.868;[KA] 11.9 ;[V] 10;[CL] 0.523;[SD] 0.2 $OMEGA 0.258 0.177 0.227 $SIGMA 1 FIX $EST METHOD=COND LAP INTERACTION MAXEVAL=9999 PRINT=5 FILE=PK.M3.COND.ext Code 2 $SUBROUTINES ADVAN2 $PK MU_1=THETA(1) MU_2=THETA(2) MU_3=THETA(3) MU_4=THETA(4) SD=MU_4 SIG=SD*SD KA=EXP(MU_1+ETA(1)) V=EXP(MU_2+ETA(2)) CL=EXP(MU_3+ETA(3)) K=CL/V S2=V/1000; DOSE IN 1000 U, CONC in U, VOLUME IN mL $ERROR LOQ=LOG(10) IF(F==0) THEN IPRE=0 ELSE IPRE=LOG(F) ENDIF IF(SIG==0) EXIT DUM=(LOQ-IPRE)/SIG CUMD=PHI(DUM) IF(TYPE.EQ.1) THEN F_FLAG=0 Y= LOG(F)+SD*ERR(1) ENDIF IF(TYPE.EQ.2) THEN F_FLAG=1 Y=CUMD ENDIF $THETA -1.868;[KA] 11.9 ;[V] 10;[CL] 0.523;[SD] $OMEGA 0.258 0.177 0.227 $SIGMA 1 FIX $EST METHOD=COND LAP INTERACTION MAXEVAL=9999 PRINT=5 FILE=PK.LOG.COND.ext Sample Data for code 1: Sample Data for code 2: Best regards, Xiao Hu (Shelley), Ph.D. Scientist, Development Pharmacokinetics & Disposition Biogen Idec, Inc. 14 Cambridge Center Cambridge, MA 02142 Phone: 617-679-3586 Fax: 617-679-3463 PKM3.csv Description: Binary data PK_M3_log.csv Description: Binary data

Re: Questions about M3

From: Luann Phillips Date: April 29, 2010 technical
Xiao Hu, Please see comments inserted within your code examples below. Regards, Luann Phillips Xiao Hu wrote: > Dear NMusers, > > I'm seeking inputs/advice on some M3 related questions. Any comments and suggestions would be appreciated. > > I have some Phase 1 data on a drug, which I want to model with a M3 method. The LLQ is 10 and peak level is about 80 (it's a cytokine and can't ask assay people to do a better job). > > I'm using NONMEM 7, therefore, can use PHI function directly. Below you can see my initial code (Code 1). I first modeled SIG as a separate THETA(5). The estimated THETA(5) turned out to be 1.14E6. Therefore, all the PREDs=0.5 with TYPE==2. I had to admire NONMEM because it makes (LOQ-IPRE)/SIG close to zero and give me a politically golden answer (Prob=0.5) on my LLQ data. > > Since SIG represents the variance of F, in my second try, I set SIG=SD*SD and modeled log-tranformed data, because I'm using exponential model on the ERROR. The code is following the initial code (Code 2). > > Here's my questions. > > 1. Is code 2 a theoretically correct approach? How is SIG generally modeled based on your experience? 2. Currently, I only included one BLQ post Tmax. The rest were ignored (MDV=1). If I include one BLQ timepoint before Tmax, the model won't run. If I include every BLQ time points after Tmax, the model won't run. Is this acceptable? What's the general practice? > > 3. What are the diagnostic tools for BLQ from the M3 method? > > 4. If I model SIG using all the data, and fix it in the subsequent runs, which use the same code as Code 1 with SIG fixed, will this be acceptable? > > Code 1: > $SUBROUTINES ADVAN2 > $PK > MU_1=THETA(1) > MU_2=THETA(2) > MU_3=THETA(3) > MU_4=THETA(4) > SD=MU_4 > KA=EXP(MU_1+ETA(1)) > V=EXP(MU_2+ETA(2)) > CL=EXP(MU_3+ETA(3)) > K=CL/V > S2=V/1000 > $ERROR *******SIG = SD of variance which is defined as SD=MU_4 above ******* so I think you should have SIG=MU_4 or SIG=SD ******* instead of THETA(5) ******* Your code was using a separate estimate of variance for the LOQ concentrations than for the > LOQ concentrations. References show using the same variance for both types. > SIG=THETA(5) > LOQ=10 > IPRE=F > IF(SIG==0) EXIT *****I would move the calculations for DUM and CUMD inside the IF statement for TYPE.EQ.2 to prevent unnecessary calculations. ****DUM = (LOQ-IPRE) / SQRT(Variance) Since you are using a exponential error model which is equivalent to the constant CV error model (Y=F+F*ERR) in NM, the SQRT(variance) would be F*SIG so DUM=(LOQ-IPRE)/(F*SIG) > DUM=(LOQ-IPRE)/SIG > CUMD=PHI(DUM) > IF(TYPE.EQ.1) THEN > F_FLAG=0 > Y= F*EXP(SD*ERR(1)) > ENDIF > IF(TYPE.EQ.2) THEN > F_FLAG=1 > Y=CUMD > ENDIF > $THETA > -1.868;[KA] > 11.9 ;[V] > 10;[CL] > > 0.523;[SD] 0.2 > > $OMEGA > > 0.258 0.177 > > 0.227 > $SIGMA > 1 FIX > > $EST METHOD=COND LAP INTERACTION MAXEVAL=9999 PRINT=5 FILE=PK.M3.COND.ext > > Code 2 > $SUBROUTINES ADVAN2 > $PK > MU_1=THETA(1) > MU_2=THETA(2) > MU_3=THETA(3) > MU_4=THETA(4) > SD=MU_4 > SIG=SD*SD > KA=EXP(MU_1+ETA(1)) > V=EXP(MU_2+ETA(2)) > CL=EXP(MU_3+ETA(3)) > K=CL/V > S2=V/1000; DOSE IN 1000 U, CONC in U, VOLUME IN mL > $ERROR > LOQ=LOG(10) *****IF F=0 then LOG(F)= -Infinity so you probably don't want to change IPRE=LOG(0) to 0. LOG(F)=0 corresponds to F=1. You may want to try IPRE= -10 or -20 instead. > IF(F==0) THEN > IPRE=0 > ELSE > IPRE=LOG(F) > ENDIF > IF(SIG==0) EXIT *****In this case because the error model becomes additive, DUM=(LOQ-IPRE)/SIG is correct. > DUM=(LOQ-IPRE)/SIG > CUMD=PHI(DUM) > IF(TYPE.EQ.1) THEN > F_FLAG=0 > Y= LOG(F)+SD*ERR(1) > ENDIF > IF(TYPE.EQ.2) THEN > F_FLAG=1 > Y=CUMD > ENDIF > $THETA > -1.868;[KA] > 11.9 ;[V] > 10;[CL] > > 0.523;[SD] $OMEGA 0.258 0.177 > > 0.227 > $SIGMA > 1 FIX > $EST METHOD=COND LAP INTERACTION MAXEVAL=9999 PRINT=5 FILE=PK.LOG.COND.ext > > Sample Data for code 1: > Sample Data for code 2: > > Best regards, > > Xiao Hu (Shelley), Ph.D. > Scientist, > Development Pharmacokinetics & Disposition > Biogen Idec, Inc. > 14 Cambridge Center > Cambridge, MA 02142 > Phone: 617-679-3586 > Fax: 617-679-3463