Re: PKPD-simulations
Hi Markus,
Have you tried to defend against BASE**power error when A(9)=0 ? I know it should not be 0 but just in case:
IF(A(9).GT.0.AND.T.GE.500) THEN
FEEDB=(BASE/A(9))**GAMMA
ELSE
FEEDB=1
ENDIF
Also, switch to ADVAN13, it is much more stable. TOL=2 is way too small. Should be at least 6 (if at all possible: could be possible with ADVAN13)
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 7/24/2013 3:29 PM, markus joerger wrote:
> dear NONMEM community,
>
> I built a PK-PD model (semiphysiological model for neutropenia) for a
> new IV topoisomerase inhibitor, and simulated different dosing regimens
> (model for D1+8 q3w below (101.ctl / NAMI-SIM-ANC--D1+8-q3w-12.5B.csv).
> I encountered the problem that feedback (FEEDB) on the bone marrow has
> to be increased to values >620, because otherwise it gives me:
>
> ---------------------------------------------------------------------------------------------------------
> DES SUBROUTINE: ERROR IN COMPUTATION
> ATTEMPT TO COMPUTE BASE**POWER WITH BASE<0.
> MESSAGE ISSUED FROM SIMULATION STEP
> ----------------------------------------------------------------------------------------------------------
>
> Strange enough, the same model does not produce errors in the
> "estimation mode".
> If I increase the time (T) for the feedback to start working out (from
> 500 to >/= 620 in this case), simulation works out fine:
>
> IF(T.GE http://T.GE.500) THEN
> FEEDB=(BASE/A(9))**GAMMA
> ELSE
> FEEDB=1
> ENDIF
>
> >>Time=500 is the time of first chemotherapy dosing (after the "system
> has been filled with neutrophils").
>
> Subsequently, I added "categorical ANC-toxicity" according to the
> following coding:
>
> FLAG1=0
> IF (T.GT.520.AND.ANC.LT.0.5) FLAG1=1
> DADT(12)=FLAG1
> TBTH=A(12)
> IF(A(12).GT.120) THEN
> DLT=1
> ELSE
> DLT=0
> ENDIF
>
> This produces "differential equations" errors at about n=150, meaning it
> is possible to simulate 150 patients, but not more. So far, I was not
> able to identify the problem, although the same coding worked just fine
> for a previous model of paclitaxel. Any help would be very welcome!
>
> thanks and best regards
>
> Markus
>
> MODEL-101
> ;Project Name: namitecan
> ;Project ID: NO PROJECT DESCRIPTION
>
> $PROB RUN# 100D (NAMI)
> $INPUT C=DROP ID TIME AMT RATE DV CMT
> MDV EVID
>
> $DATA NAMI-SIM-ANC-D1+8-q3w-12.5B.CSV IGNORE=C
> $SUBROUTINES ADVAN6 TOL=2
> $ABBREVIATED COMRES=1
> $MODEL COMP=(CENTRAL,DEFDOSE) ;1
> COMP=(PER1) ;2
> COMP=(PER2) ;3
> COMP=(AUC) ;4
> COMP=(PROL) ;5
> COMP=(TRANS1) ;6
> COMP=(TRANS2) ;7
> COMP=(TRANS3) ;8
> COMP=(ANC) ;9
> COMP=(NADIR) ;10
> COMP=(TNAD) ;11
> COMP=(TBTH) ;12
>
> $PK
> " FIRST
> " COMMON/PRCOMG/IDUM1,IDUM2,IMAX,IDUM4,IDUM5
> " INTEGER IDUM1,IDUM2,IMAX,IDUM4,IDUM5
> " IMAX=100000000
>
> IF(ICALL.EQ.4.AND.NEWIND.NE.2) THEN
> CALL RANDOM (2,R)
> CCL=90+12*R
> CALL RANDOM (3,R)
> BSL=5+0.5*R
> ENDIF
>
> TVCL=THETA(1)*(CCL/90)**THETA(7)
> CL=TVCL*EXP(ETA(1))
> V1=THETA(2)
> Q1=THETA(3)*EXP(ETA(2))
> V2=THETA(4)*EXP(ETA(3))
> Q2=THETA(5)*EXP(ETA(4))
> V3=THETA(6)
> K10=CL/V1
> K12=Q1/V1
> K21=Q1/V2
> K13=Q2/V1
> K31=Q2/V3
>
> MTT=THETA(8)*EXP(ETA(5))
> SLOPE=THETA(9)*EXP(ETA(6))
> BASE=EXP(LOG(BSL)+THETA(10)*ETA(7))
> GAMMA=THETA(11)
>
> V1=0.15
> V2=38
> V3=152
> S1=V1
> F5=BSL
> V5=1
> V6=1
> V7=1
> V8=1
> V9=1
> TIJD=TIME-500
>
> $DES
> C1=A(1)/S1
> DADT(1)=-K12*A(1)+K21*A(2)-K13*A(1)+K31*A(3)-K10*A(1)
> DADT(2)=K12*A(1)-K21*A(2)
> DADT(3)=K13*A(1)-K31*A(3)
> DADT(4)=A(1)/S1
> AUC=A(4)
> C9=A(9)
> ANC=A(9)
>
> IF(T.GE.520) THEN
> FEEDB=(BASE/A(9))**GAMMA
> ELSE
> FEEDB=1
> ENDIF
>
> KTR=4/MTT
> KPROL=(KTR*FEEDB)-KTR*(SLOPE*C1)
> DADT(5)=KPROL*A(5)-KTR*A(5)
> DADT(6)=KTR*A(5)-KTR*A(6)
> DADT(7)=KTR*A(6)-KTR*A(7)
> DADT(8)=KTR*A(7)-KTR*A(8)
> DADT(9)=KTR*A(8)-KTR*A(9)
>
> IF(T.EQ.0) COM(1)=0
>
> IF(COM(1).EQ.0.AND.DADT(9).LT.0.OR.T.LE.520) THEN
> DADT(10)=DADT(9)
> DADT(11)=1
> ELSE
> DADT(10)=0
> COM(1)=1
> DADT(11)=0
> ENDIF
>
> NADI=A(10)
> TNAD=A(11)-500
>
> ;categorical ANC-toxicity
>
> FLAG1=0
> IF (T.GT.520.AND.ANC.LT.0.5) FLAG1=1
> DADT(12)=FLAG1
> TBTH=A(12)
> IF(A(12).GT.120) THEN
> DLT=1
> ELSE
> DLT=0
> ENDIF
>
> $ERROR
> IF(DV.EQ.0) THEN
> IPRED=-3
> ELSE
> IPRED=LOG(F)
> ENDIF
> Y=IPRED+THETA(10)*EPS(1)
> W=IPRED
> IRES=DV-IPRED
> IWRES=IRES/W
>
> $THETA
> 0.149 ;1 CL
> 0.15 ;2 V1
> 68.8 ;3 Q1
> 38 ;4 V2
> 0.654 ;5 Q2
> 152 ;6 V3
> 1.09 ;7 CLL>CL
> 115 ;8 MTT
> 0.888 ;9 SLOPE
> 0.689 ;10 ERR
> 0.222 ;11 GAMMA
>
> $OMEGA
> 0.567 ;1 CL
> 0.0975 ;2 Q1
> 0.169 ;3 V2
> 0.368 ;4 Q2
> 0.0257 ;[P] 5 ;MTT
> 0.232 ;[P] 6 ;SLOPE
> 1 ;[P] 7 ;ERR BSL
>
> $SIGMA
> 1 ;[P] PD
>
> $SIMULATION(48532) (2453) (19923) ONLYSIMULATION
>
> $TABLE ID TIJD IPRED PRED C9 CMT SLOPE AUC CCL BSL
> NADI TNAD COM(1) TBTH DLT NOPRINT ONEHEADER FILE=101.TAB
>
> NAMI-SIM-ANC--D1+8-q3w-12.5B.csv
> C NAMI
>
> C ID TIME AMT RATE DV CMT MDV EVID
>
> 1 0 1 1 0 5 1 4
>
> 1 500 26.5 13.3 0 1 1 1
>
> 1 500
>
> 0 9 1 2
>
> 1 524
>
> 0 9 1 2
>
> 1 548
>
> 0 9 1 2
>
> 1 572
>
> 0 9 1 2
>
> 1 596
>
> 0 9 1 2
>
> 1 620
>
> 0 9 1 2
>
> 1 644
>
> 0 9 1 2
>
> 1 668 26.5 13.3 0 1 1 1
>
> 1 668
>
> 0 9 1 2
>
> 1 692
>
> 0 9 1 2
>
> 1 716
>
> 0 9 1 2
>
> 1 740
>
> 0 9 1 2
>
> 1 764
>
> 0 9 1 2
>
> 1 788
>
> 0 9 1 2
>
> 1 812
>
> 0 9 1 2
>
> 1 836
>
> 0 9 1 2
>
> 1 860
>
> 0 9 1 2
>
> 1 884
>
> 0 9 1 2
>
> 1 908
>
> 0 9 1 2
>
> 1 932
>
> 0 9 1 2
>
> 1 956
>
> 0 9 1 2
>
> 1 980
>
> 0 9 1 2
>
> 1 1004
>
> 0 9 1 2
>
> 1 1028
>
> 0 9 1 2
>
> 1 1052
>
> 0 9 1 2
>
> 1 1076
>
> 0 9 1 2
>
> 1 1100
>
> 0 9 1 2
>
> 1 1124
>
> 0 9 1 2
>
> 1 1148
>
> 0 9 1 2
>
> 1 1172
>
> 0 9 1 2
>
> 1 1196
>
> 0 9 1 2
>
> --
> Markus Joerger MD-PhD
> Medical Oncology&Clinical Pharmacology
> Department of Internal Medicine
> Kantonsspital
> St. Gallen
> Switzerland
> [email protected] <mailto:[email protected]>
> Phone: +41-765591070
> Fax: +41-714946325