Rounding errors with TRANSIT model

3 messages 3 people Latest: Aug 11, 2010

Rounding errors with TRANSIT model

From: Ann Rigby-Jones Date: August 11, 2010 technical
Dear All I'm trying to evaluate a transit model approach in an attempt to better describe early drug concentrations following intravenous injection (1 minute and 10 minute infusions) of a sedative-hypnotic drug. However, every minimisation attempt is terminated due to rounding errors (E=134). I've tried the usual strategies to overcome this e.g using final estimates of a terminated run as initial estimates for the next, changing number of sig dig requested, changing from a diagonal omega to a block omega, but nothing has been successful. I'd be very grateful for any suggestions of what I might try next :) Standard 3-comp and 4-comp mamillary models minise successful with these data, but so far no luck with any of the transit models, I have tried model with 1 to 6 transit compartments. An example control stream is shown below. I'm using NONMEM 7 with Intel Fortran. With thanks and all best wishes Ann $PROBLEM 3comp 2 transit $INPUT ID DOSE AMT RATE DUR TIME ORI DV EVID ART AGE WGT $DATA PKcen12LN.csv IGNORE=# $SUBROUTINES ADVAN9 TOL=3 $MODEL ;NCOMPS=9 COMP(CENTRAL, DEFOBS) ;1 COMP(PERIPH1) ;2 COMP(PERIPH2) ;3 COMP(TRANS1, DEFDOSE) ;4 COMP(TRANS2) ;5 ;COMP(TRANS3) ;6 ;COMP(TRANS4) ;7 ;COMP(TRANS5) ;8 ;COMP(TRANS6) ;9 $PK CL=THETA(1)*EXP(ETA(1)) Q2=THETA(2)*EXP(ETA(2)) Q3=THETA(3)*EXP(ETA(3)) V1=THETA(4)*EXP(ETA(4)) V2=THETA(5)*EXP(ETA(5)) V3=THETA(6)*EXP(ETA(6)) K10=CL/V1 K12=Q2/V1 K13=Q3/V1 K21=Q2/V2 K31=Q3/V3 S1=V1 IF (DUR.EQ.10) THEN ALAG4=THETA(7)*EXP(ETA(7)) ELSE ALAG4=THETA(8)*EXP(ETA(8)) ENDIF KTR=THETA(9)*EXP(ETA(9)) $DES ;DADT(1)=A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) ;DADT(2)=A(1)*K12 - A(2)*K21 ;DADT(3)=A(1)*K13 - A(3)*K31 DADT(1)=A(5)*KTR + A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) DADT(2)=A(1)*K12 - A(2)*K21 DADT(3)=A(1)*K13 - A(3)*K31 DADT(4)=-A(4)*KTR DADT(5)=A(4)*KTR - A(5)*KTR ;DADT(6)=A(5)*KTR - A(6)*KTR ;DADT(7)=A(6)*KTR - A(7)*KTR ;DADT(8)=A(7)*KTR - A(8)*KTR ;DADT(9)=A(8)*KTR - A(9)*KTR $ERROR W=1 IPRED= -2 IF (F.GT.0) IPRED=LOG(F) Y=IPRED + ERR(1) IRES=DV-IPRED IWRES=IRES/W $THETA (0, 725) ;CL $THETA (0, 238) ;Q2 $THETA (0, 2920) ;Q3 $THETA (0, 311) ;V1 $THETA (0, 38700) ;V2 $THETA (0, 39500) ;V3 $THETA (0.2167, 0.522,1) ;ALAG 10MIN $THETA (0.00833, 0.122, 1) ;ALAG 1MIN $THETA (0, 0.720) ;KTR $OMEGA BLOCK(6) 0.0959 ; ETA CL 0.00804 0.0211 ; ETA Q2 0.00631 0.00143 0.166 ; ETA Q3 -0.00506 0.00121 -0.0635 0.0491 ; ETA V1 0.00293 -0.00746 0.00708 -0.00315 0.0328 ; ETA V2 0.00836 0.00688 0.00144 -0.00497 0.00741 0.153 ; ETA V3 $OMEGA 0.217 ; ETA ALAG 10 $OMEGA 0.4 ; ETA ALAG 1 $OMEGA 0.0171 ; ETA KTR ;$OMEGA (0.0686) ; ETA CL ;$OMEGA (0.01) ; ETA Q2 ;$OMEGA (0.0251) ; ETA Q3 ;$OMEGA (0 FIX) ; ETA V1 ;$OMEGA (0.0328) ; ETA V2 ;$OMEGA (0 FIX) ; ETA V3 ;$OMEGA (0.170) ; ETA ALAG10 ;$OMEGA (1.37) ; ETA ALAG1 ;$OMEGA (0.00409) ; ETA KTR $SIGMA (0.0944) $ESTIMATION METHOD=1 PRINT=1 MAX=9999 NOABORT SIG=3 ;POSTHOC INTER MSFO=msfo.outputfile ;$COVA $TABLE ID EVID AMT TIME IPRED IRES NOPRINT FILE=AllRecords.txt $TABLE ID CL Q2 Q3 V1 V2 V3 ETA1 ETA2 ETA3 ETA4 ETA5 ETA6 ETA7 ;ETA8 FIRSTONLY NOPRINT NOAPPEND FILE=FirstRecords.txt Ann _______________________________________________________________________ Ann Rigby-Jones PhD MRSC Research Fellow in Pharmacokinetics & Pharmacodynamics Peninsula College of Medicine & Dentistry N31, ITTC Phase 1 Tamar Science Park 1 Davy Road Derriford Plymouth PL6 8BX Tel: +44 (0) 1752 432014 _______________________________________________________________________

Re: Rounding errors with TRANSIT model

From: Leonid Gibiansky Date: August 11, 2010 technical
Ann Try ADVAN6 or ADVAN8 or ADVAN13 . Also, TOL=3 is too small. Increase it to 6-7 or even 9, and also change to NSIG=3 SIGL=9 ($EST step, as recommended in the guide). Also, at least initially, I would remove ETAs from the third compartment and from one of the parameters (Q2 or V2) of the second compartment. Do you really need both ALAG and transit compartment? They serve the same goal, to delay the input, so could be strongly correlated; you may see it on the POSTHOC plot of ETA7-ETA8 versus ETA9. I would try to remove ETAs from ALAG or KTR to check whether they are needed. If nothing helps, use UNCONDITIONAL on the $COV to get standard errors, and if they are reasonable, ignore the error, it may disappear on the next steps of the modeling process Leonid -------------------------------------- Leonid Gibiansky, Ph.D. President, QuantPharm LLC web: www.quantpharm.com e-mail: LGibiansky at quantpharm.com tel: (301) 767 5566
Quoted reply history
On 8/11/2010 5:57 AM, Ann Rigby-Jones wrote: > Dear All > > I’m trying to evaluate a transit model approach in an attempt to better > describe early drug concentrations following intravenous injection (1 > minute and 10 minute infusions) of a sedative-hypnotic drug. However, > every minimisation attempt is terminated due to rounding errors (E=134). > I’ve tried the usual strategies to overcome this e.g using final > estimates of a terminated run as initial estimates for the next, > changing number of sig dig requested, changing from a diagonal omega to > a block omega, but nothing has been successful. > > I’d be very grateful for any suggestions of what I might try next J > Standard 3-comp and 4-comp mamillary models minise successful with these > data, but so far no luck with any of the transit models, I have tried > model with 1 to 6 transit compartments. An example control stream is > shown below. I’m using NONMEM 7 with Intel Fortran. > > With thanks and all best wishes > > Ann > > $PROBLEM 3comp 2 transit > > $INPUT ID DOSE AMT RATE DUR TIME ORI DV EVID ART AGE WGT > > $DATA PKcen12LN.csv IGNORE=# > > $SUBROUTINES ADVAN9 TOL=3 > > $MODEL > > ;NCOMPS=9 > > COMP(CENTRAL, DEFOBS) ;1 > > COMP(PERIPH1) ;2 > > COMP(PERIPH2) ;3 > > COMP(TRANS1, DEFDOSE) ;4 > > COMP(TRANS2) ;5 > > ;COMP(TRANS3) ;6 > > ;COMP(TRANS4) ;7 > > ;COMP(TRANS5) ;8 > > ;COMP(TRANS6) ;9 > > $PK > > CL=THETA(1)*EXP(ETA(1)) > > Q2=THETA(2)*EXP(ETA(2)) > > Q3=THETA(3)*EXP(ETA(3)) > > V1=THETA(4)*EXP(ETA(4)) > > V2=THETA(5)*EXP(ETA(5)) > > V3=THETA(6)*EXP(ETA(6)) > > K10=CL/V1 > > K12=Q2/V1 > > K13=Q3/V1 > > K21=Q2/V2 > > K31=Q3/V3 > > S1=V1 > > IF (DUR.EQ.10) THEN > > ALAG4=THETA(7)*EXP(ETA(7)) > > ELSE > > ALAG4=THETA(8)*EXP(ETA(8)) > > ENDIF > > KTR=THETA(9)*EXP(ETA(9)) > > $DES > > ;DADT(1)=A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) > > ;DADT(2)=A(1)*K12 - A(2)*K21 > > ;DADT(3)=A(1)*K13 - A(3)*K31 > > DADT(1)=A(5)*KTR + A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) > > DADT(2)=A(1)*K12 - A(2)*K21 > > DADT(3)=A(1)*K13 - A(3)*K31 > > DADT(4)=-A(4)*KTR > > DADT(5)=A(4)*KTR - A(5)*KTR > > ;DADT(6)=A(5)*KTR - A(6)*KTR > > ;DADT(7)=A(6)*KTR - A(7)*KTR > > ;DADT(8)=A(7)*KTR - A(8)*KTR > > ;DADT(9)=A(8)*KTR - A(9)*KTR > > $ERROR > > W=1 > > IPRED= -2 > > IF (F.GT.0) IPRED=LOG(F) > > Y=IPRED + ERR(1) > > IRES=DV-IPRED > > IWRES=IRES/W > > $THETA (0, 725) ;CL > > $THETA (0, 238) ;Q2 > > $THETA (0, 2920) ;Q3 > > $THETA (0, 311) ;V1 > > $THETA (0, 38700) ;V2 > > $THETA (0, 39500) ;V3 > > $THETA (0.2167, 0.522,1) ;ALAG 10MIN > > $THETA (0.00833, 0.122, 1) ;ALAG 1MIN > > $THETA (0, 0.720) ;KTR > > $OMEGA BLOCK(6) > > 0.0959 ; ETA CL > > 0.00804 0.0211 ; ETA Q2 > > 0.00631 0.00143 0.166 ; ETA Q3 > > -0.00506 0.00121 -0.0635 0.0491 ; ETA V1 > > 0.00293 -0.00746 0.00708 -0.00315 0.0328 ; ETA V2 > > 0.00836 0.00688 0.00144 -0.00497 0.00741 0.153 ; ETA V3 > > $OMEGA 0.217 ; ETA ALAG 10 > > $OMEGA 0.4 ; ETA ALAG 1 > > $OMEGA 0.0171 ; ETA KTR > > ;$OMEGA (0.0686) ; ETA CL > > ;$OMEGA (0.01) ; ETA Q2 > > ;$OMEGA (0.0251) ; ETA Q3 > > ;$OMEGA (0 FIX) ; ETA V1 > > ;$OMEGA (0.0328) ; ETA V2 > > ;$OMEGA (0 FIX) ; ETA V3 > > ;$OMEGA (0.170) ; ETA ALAG10 > > ;$OMEGA (1.37) ; ETA ALAG1 > > ;$OMEGA (0.00409) ; ETA KTR > > $SIGMA (0.0944) > > $ESTIMATION METHOD=1 PRINT=1 MAX=9999 NOABORT SIG=3 ;POSTHOC INTER > > MSFO=msfo.outputfile > > ;$COVA > > $TABLE ID EVID AMT TIME IPRED IRES > > NOPRINT FILE=AllRecords.txt > > $TABLE ID > > CL Q2 Q3 V1 V2 V3 > > ETA1 ETA2 ETA3 ETA4 ETA5 ETA6 ETA7 ;ETA8 > > FIRSTONLY NOPRINT NOAPPEND FILE=FirstRecords.txt > > Ann > > _______________________________________________________________________ > > *Ann Rigby-Jones PhD MRSC* > Research Fellow in Pharmacokinetics & Pharmacodynamics > > Peninsula College of Medicine & Dentistry > > N31, ITTC Phase 1 > Tamar Science Park > 1 Davy Road > Derriford > Plymouth > PL6 8BX > > Tel: +44 (0) 1752 432014 > _______________________________________________________________________

RE: Rounding errors with TRANSIT model

From: Joseph Standing Date: August 11, 2010 technical
Ann I think your model is starting to be over-parameterised: 4 compartments plus lag plus transit (have you plotted the individual alag estimates as they have fairly big omegas?) I think if you cannot describe the data well with a 4 comp linear model, and are seeing differences in PK with different infusion lengths (is this why different ALAGs are being estimated?), it can mean nonlinearities: is there a reason to suspect nonlinear CL, or nonlinear distribution (perhaps worth looking at target mediated uptake models - see papers from Jusko group)? BW, Joe
Quoted reply history
________________________________ From: [email protected] [[email protected]] On Behalf Of Ann Rigby-Jones [[email protected]] Sent: 11 August 2010 10:57 To: '[email protected]' Subject: [NMusers] Rounding errors with TRANSIT model Dear All I’m trying to evaluate a transit model approach in an attempt to better describe early drug concentrations following intravenous injection (1 minute and 10 minute infusions) of a sedative-hypnotic drug. However, every minimisation attempt is terminated due to rounding errors (E=134). I’ve tried the usual strategies to overcome this e.g using final estimates of a terminated run as initial estimates for the next, changing number of sig dig requested, changing from a diagonal omega to a block omega, but nothing has been successful. I’d be very grateful for any suggestions of what I might try next :) Standard 3-comp and 4-comp mamillary models minise successful with these data, but so far no luck with any of the transit models, I have tried model with 1 to 6 transit compartments. An example control stream is shown below. I’m using NONMEM 7 with Intel Fortran. With thanks and all best wishes Ann $PROBLEM 3comp 2 transit $INPUT ID DOSE AMT RATE DUR TIME ORI DV EVID ART AGE WGT $DATA PKcen12LN.csv IGNORE=# $SUBROUTINES ADVAN9 TOL=3 $MODEL ;NCOMPS=9 COMP(CENTRAL, DEFOBS) ;1 COMP(PERIPH1) ;2 COMP(PERIPH2) ;3 COMP(TRANS1, DEFDOSE) ;4 COMP(TRANS2) ;5 ;COMP(TRANS3) ;6 ;COMP(TRANS4) ;7 ;COMP(TRANS5) ;8 ;COMP(TRANS6) ;9 $PK CL=THETA(1)*EXP(ETA(1)) Q2=THETA(2)*EXP(ETA(2)) Q3=THETA(3)*EXP(ETA(3)) V1=THETA(4)*EXP(ETA(4)) V2=THETA(5)*EXP(ETA(5)) V3=THETA(6)*EXP(ETA(6)) K10=CL/V1 K12=Q2/V1 K13=Q3/V1 K21=Q2/V2 K31=Q3/V3 S1=V1 IF (DUR.EQ.10) THEN ALAG4=THETA(7)*EXP(ETA(7)) ELSE ALAG4=THETA(8)*EXP(ETA(8)) ENDIF KTR=THETA(9)*EXP(ETA(9)) $DES ;DADT(1)=A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) ;DADT(2)=A(1)*K12 - A(2)*K21 ;DADT(3)=A(1)*K13 - A(3)*K31 DADT(1)=A(5)*KTR + A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) DADT(2)=A(1)*K12 - A(2)*K21 DADT(3)=A(1)*K13 - A(3)*K31 DADT(4)=-A(4)*KTR DADT(5)=A(4)*KTR - A(5)*KTR ;DADT(6)=A(5)*KTR - A(6)*KTR ;DADT(7)=A(6)*KTR - A(7)*KTR ;DADT(8)=A(7)*KTR - A(8)*KTR ;DADT(9)=A(8)*KTR - A(9)*KTR $ERROR W=1 IPRED= -2 IF (F.GT.0) IPRED=LOG(F) Y=IPRED + ERR(1) IRES=DV-IPRED IWRES=IRES/W $THETA (0, 725) ;CL $THETA (0, 238) ;Q2 $THETA (0, 2920) ;Q3 $THETA (0, 311) ;V1 $THETA (0, 38700) ;V2 $THETA (0, 39500) ;V3 $THETA (0.2167, 0.522,1) ;ALAG 10MIN $THETA (0.00833, 0.122, 1) ;ALAG 1MIN $THETA (0, 0.720) ;KTR $OMEGA BLOCK(6) 0.0959 ; ETA CL 0.00804 0.0211 ; ETA Q2 0.00631 0.00143 0.166 ; ETA Q3 -0.00506 0.00121 -0.0635 0.0491 ; ETA V1 0.00293 -0.00746 0.00708 -0.00315 0.0328 ; ETA V2 0.00836 0.00688 0.00144 -0.00497 0.00741 0.153 ; ETA V3 $OMEGA 0.217 ; ETA ALAG 10 $OMEGA 0.4 ; ETA ALAG 1 $OMEGA 0.0171 ; ETA KTR ;$OMEGA (0.0686) ; ETA CL ;$OMEGA (0.01) ; ETA Q2 ;$OMEGA (0.0251) ; ETA Q3 ;$OMEGA (0 FIX) ; ETA V1 ;$OMEGA (0.0328) ; ETA V2 ;$OMEGA (0 FIX) ; ETA V3 ;$OMEGA (0.170) ; ETA ALAG10 ;$OMEGA (1.37) ; ETA ALAG1 ;$OMEGA (0.00409) ; ETA KTR $SIGMA (0.0944) $ESTIMATION METHOD=1 PRINT=1 MAX=9999 NOABORT SIG=3 ;POSTHOC INTER MSFO=msfo.outputfile ;$COVA $TABLE ID EVID AMT TIME IPRED IRES NOPRINT FILE=AllRecords.txt $TABLE ID CL Q2 Q3 V1 V2 V3 ETA1 ETA2 ETA3 ETA4 ETA5 ETA6 ETA7 ;ETA8 FIRSTONLY NOPRINT NOAPPEND FILE=FirstRecords.txt Ann _______________________________________________________________________ Ann Rigby-Jones PhD MRSC Research Fellow in Pharmacokinetics & Pharmacodynamics Peninsula College of Medicine & Dentistry N31, ITTC Phase 1 Tamar Science Park 1 Davy Road Derriford Plymouth PL6 8BX Tel: +44 (0) 1752 432014 _______________________________________________________________________ ******************************************************************************************************************** This message may contain confidential information. If you are not the intended recipient please inform the sender that you have received the message in error before deleting it. Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Thank you for your co-operation. NHSmail is the secure email and directory service available for all NHS staff in England and Scotland NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSI recipients NHSmail provides an email address for your career in the NHS and can be accessed anywhere For more information and to find out how you can switch, visit www.connectingforhealth.nhs.uk/nhsmail ********************************************************************************************************************