Kehua,

Before you can consider doing a VPC of the disease progress biomarker you must be able to simulate dropouts. You cannot simulate dropouts with exactly the same code you use to estimate the parameters.

Simulation of dropout events requires that you use a simulation input file (data.csv in the example below) with records for the possible times of dropout event. The following NM-TRAN code will simulate dropout events and the disease progress biomarker. The simulated biomarker is censored after dropout has occurred by creating an MDV data item.

[Would you please give some more information about yourself -- are you a student? industry scientist? regulator? Why are you interested in this topic?]

Best wishes,

Nick

$PROB Joint biomarker disease progress and time to event
$INPUT ID TRT TIME DV DVID
$DATA data.csv

$SIM ONLYSIM NSUB=1
(20101212) ; eta and eps
(20101213 UNIFORM) ; event prob
(20101214 UNIFORM) ; treatment prob

$SUBR ADVAN=6 TOL=6
$THETA
0.005  ; BASE_HAZ 1/t
0.02 ; BETA_DP_HAZ 1/u
10 ; BETA_OFFSET u
100 ; POP_S0 u baseline status
1 ; POP_ALPHA u/t progression slope

$OMEGA
0.01 ; PPV_S0
0.01 ; PPV_ALPHA

$SIGMA
1 ; RUV_ADD u

$MODEL
COMP=(CUMHAZ)

$PK
   IF (NEWIND.LE.1) THEN
      HASEVT=0 ; not had event
      SRVZ=1 ; Survivor function at TIME=0
   ENDIF
   IF (ICALL.EQ.4) THEN
      IF (NEWIND.LE.1) THEN ; first record for a subject
         CALL RANDOM(2,R)
         UEVT=R ; Uniform random number for event
         CALL RANDOM(3,R)
         UTRT=R ; Uniform random number for treatment
         IF (UTRT.LT.0.5) THEN
            STRT=0 ; placebo
         ELSE
            STRT=1 ; treatment
         ENDIF
      ENDIF
      ; simulate TRT data item for all records
      TRT=STRT
   ENDIF

   BSHZ=BASE_HAZ ; Baseline hazard
   BETADP=BETA_DP_HAZ ; Disease progress hazard
   EFFECT=TRT*BETA_OFFSET
   INTRI=(POP_S0+EFFECT)*EXP(PPV_S0)
   SLOPI=POP_ALPHA*EXP(PPV_ALPHA)

$DES
   DISPRG=INTRI + SLOPI*T
   EXPHAZ=EXP(BETADP*DISPRG)
   DADT(1)=BSHZ*EXPHAZ ; h(t)
$ERROR
   CHZT=A(1) ; Cum hazard at this time
   IF (DVID.NE.2) THEN
      F_FLAG=0 ; CONTINUOUS ELS
      Y=INTRI + SLOPI*TIME + RUV_ADD; Biomarker
   ENDIF
   SRVT=EXP(-CHZT) ; Survival at t
   IF (DVID.EQ.2.AND.DV.EQ.0) THEN
      F_FLAG=1 ; LIKELIHOOD
      Y=SRVT   ; Like no event
   ENDIF
   IF (DVID.EQ.2.AND.DV.EQ.1) THEN
      F_FLAG=1 ; LIKELIHOOD
      Y=SRVZ-SRVT ; Like event
   ENDIF
   IF (DVID.EQ.3) THEN ; Last obs before event
      SRVZ=SRVT ; remember survival
   ELSE
      SRVZ=SRVZ ; keep NM-TRAN happy
   ENDIF

   IF (ICALL.EQ.4) THEN
      IF (HASEVT.EQ.0) THEN
         IF (DVID.EQ.3) THEN ; check for event
            IF (SRVT.LT.UEVT) THEN ; event
               HASEVT=1
               DVX=1
               DVIX=2
               MDVX=0
            ELSE ; Possible last obs before event
               DVX=0
               DVIX=3
               MDVX=1
            ENDIF
ELSE ; Last record (default for censoring) or other EVID (biomarker)
            IF (DVID.EQ.4) THEN ; last record
               DVX=0 ; censored event
               DVIX=2
               MDVX=0
            ELSE ; biomarker
               DVX=Y
               MDVX=0
               DVIX=DVID
            ENDIF
         ENDIF
      ELSE ; after event so convert to missing
         DVX=0
         DVIX=DVID
         MDVX=1
      ENDIF
   ENDIF


$TABLE ID TRT TIME DVX DVIX MDVX
NOAPPEND ONEHEADER NOPRINT FILE=joint.fit

First subject in data.csv
#ID     TRT     TIME    DV      DVID
1       0       0       .       1
1       0       0       .       3
1       0       25      .       1
1       0       25      .       3
1       0       50      .       1
1       0       50      .       3
1       0       75      .       1
1       0       75      .       3
1       0       100     .       1
1       0       100     .       4



On 14/12/2010 9:38 a.m., kehua wu wrote:
Dear NMusers,

We are trying to do VPC based on a joint disease progress and dropout model. But we did not get any results from the simulation. Does anybody have any suggestions?


Thanks a lot.

Kehua

The control stream are below,

$SUBS ADVAN6 TOL=6
$MODEL COMP=(CUMHAZ)
       COMP=(HZLAST)
$PK

   BASE=THETA(1)*EXP(ETA(1))
   SLOPE=THETA(2)+ETA(2)
   BSHZ=THETA(3)
   BETA=THETA(4)



$DES
SIZE=BASE+(SLOPE*TIME)
TEMP=BETA*SIZE
DADT(1)=EXP(TEMP)
DADT(2)=EXP(TEMP)

$ERROR
CMHZ=BSHZ*A(1)
HZLA=BSHZ*A(2)


IF (TYPE.EQ.1) THEN
IPRED=BASE+(SLOPE*TIME)
W=THETA(5)*IPRED
F_FLAG=0
Y=BASE+(SLOPE*TIME)+W*EPS(1)
ENDIF

IF(TYPE.EQ.2.AND.DV.EQ.0) THEN
F_FLAG=1
Y=EXP(-CMHZ)
ENDIF

IF(TYPE.EQ.2.AND. DV.EQ.1) THEN
F_FLAG=1
Y=EXP(-(CMHZ-HZLA))*(1-EXP(-HZLA))
ENDIF

$THETA 63.0 0.153 0.00811 0.00633 0.063


$OMEGA 0.507 0.0914

$SIGMA 1 FIX

$SIMULATION ONLYSIM SUBPROB=1 (1111111)

$TABLE ID TIME IPRED
NOPRINT ONEHEADER FILE=015.tab

--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology&  Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53
email: [email protected]
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford

Reply via email to