Faculty of Medical and Health Sciences
Department of Pharmacology & Clinical Pharmacology, University of Auckland
Faculty of Medical and Health Sciences
Department of Pharmacology & Clinical Pharmacology, University of Auckland

Population PD Analysis

[Hide side menu]

Objective and introduction

Objectives

  1. To provide practical experience of performing population analysis using NONMEM.
  2. To learn how covariate models are specified using NM-TRAN.

Introduction

A data set is provided which was collected as part of a target concentration controlled trial of theophylline in severe airways obstruction (Holford et al. 1993a) Measurements of peak expiratory flow rates (PEFR) and theophylline concentration were made in 187 patients assigned to a target concentration of 10 mg/L or 20 mg/L. Available covariates include sex, age, diagnosis (asthma or COPD).

An NM-TRAN control stream (theopd.ctl) illustrates the use of an Emax model to describe the relationship between theophylline concentration and PEFR. Your task is to investigate other models to describe the effects of theophylline on PEFR and the influence of covariates on the model parameters. A suggested model is described in Holford et al. 1993b.

NONMEM

Note: All files should be loaded from and saved to your Pharmacometrics Data\Population PD folder for this assignment.

  1. Use the Windows Explorer to explore the My Pharmacometrics\Pharmacometrics Data\Population PD folder.
  2. Open the theopd.ctl file and see if you can understand the NM-TRAN control stream code.
  3. Open the Wings for NONMEM (WFN) window by double clicking on the NONMEM shortcut in My Pharmacometrics\Pharmacometrics Programs.
  4. Change directory in the WFN window to the Population PD folder.
    cd "Population PD"
  5. Start a NONMEM run using the theopd.ctl NMTRAN control stream.

    nmgo theopd
  6. When the run is finished the results will be shown in a table format extracted from the NONMEM output listing.
  7. Make a copy of theopd.ctl file so that you can test a linear model instead of an Emax model.

    copy theopd.ctl theolin.ctl
  8. Edit theolin.ctl as shown in Figure 1. You may use notepad from the command line or another text editor (e.g. EditPlus) using Windows Explorer.

    notepad theolin.ctl

    $PROB theophylline pharmacodynamics standard control stream
    $DATA theopd.dat IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM METHOD=ZERO POSTHOC ; first-order method
    ;PRINT=1
    $COV

    $THETA
    (0,150.,)  ; POP_E0 1
    (0,20,)  ; POP_SLOPE 2

    $OMEGA
    0.5  ; PPV_E0 1
    0.5  ; PPV_SLOPE 2

    $SIGMA
    100 ; RUV_SD 1

    $PRED
     E0    = THETA(1)*EXP(ETA(1))
     SLOPE = THETA(2)*EXP(ETA(2))
     Y     = E0 + SLOPE*THEO + EPS(1)

    $TABLE ID TIME THEO SLOPE E0 Y
    ONEHEADER NOPRINT FILE=theopd.fit
  9. Figure 1. NM-TRAN code for theolin.ctl.

  1. Run theolin.ctl using nmgo and examine the results.

    nmgo theolin
  2. Make a copy of the better model control file so that you can see if sex affects the baseline PEFR

    copy theopd.ctl theosex.ctl
  3. Edit theosex.ctl .Add a new parameter, FSEXE0, to make E0 in females a fraction of that in males (Figure 2).

    $PROB theophylline pharmacodynamics standard control stream
    $DATA theopd.dat IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM METHOD=ZERO POSTHOC ; first-order method
    ;PRINT=1
    $COV

    $THETA
    (0,150.,)  ; POP_E0 1
    (0,200.,)  ; POP_EMAX 2
    (.001,10,) ; POP_C50 3
    (0,1,) ; FFEM_E0 4

    $OMEGA
    0.5  ; PPV_E0 1
    0.5  ; PPV_EMAX 2
    0.5  ; PPV_C50 3

    $SIGMA
    100 ; RUV_SD 1

    $PRED

     IF (SEX.EQ.1) THEN ; male
        FSEXE0=1
     ELSE
        FSEXE0=THETA(4)
     ENDIF

     E0   = FSEXE0* THETA(1)*EXP(ETA(1))
     EMAX = THETA(2)*EXP(ETA(2))
     C50  = THETA(3)*EXP(ETA(3))

      Y = E0 + EMAX*THEO/(C50+THEO) + EPS(1)

    $TABLE ID TIME THEO AGE WT SEX RACE DIAG
    E0 EMAX C50 Y
    NOPRINT ONEHEADER FILE=theopd.fit
    Figure 2. Code for theosex.ctl.
  1. Run theosex.ctl and examine the results.
  2. You can compare the results of all your runs so far with the commands:

    nmobj Summary of obj values.
    nmmbt Summary of one or more runs. Open the nmmbt_*.txt file with Excel.
  1. Open the theopd.dat file and look at its structure. There are some comments in the file telling you about the values.
  2. Experiment with changing the model and explore the influence of weight, age, sex and diagnosis on the model parameters.

Assignment

  1. Describe the best model you found to describe the fixed effects of covariates by showing your NM-TRAN code and explaining how each covariate model is implemented. 
  2. Justify in biological terms the influence of each covariate you found to be important.
  3. List the objective function values for each model with a brief description of each model.

References

  • Holford NHG, Black P, Briant R, Couch R, Kennedy J. Theophylline target concentration in severe airways obstruction - 10 or 20 mg/L? A randomised concentration-controlled trial. Clinical Pharmacokinetics 1993a; 25:495-505
  • Holford NHG, Hashimoto Y, Sheiner LB. Time and theophylline concentration help explain the recovery of peak flow following acute airways obstruction. Population analysis of a randomised concentration controlled trial. Clinical Pharmacokinetics 1993; 25:506-515
     
    $PROB THEOPYLLINE AND TIME ON PEFR
    $DATA Theopd_disease_progression_sim.csv IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM METHOD=ZERO POSTHOC
    $COV

    $THETA
    (0,150,) ; POP_base
    (0,500,) ; POP_normal
    (.01,10,) ; POP_t50
    (.01,10,) ; POP_c50
    (0,0.5,1) ; alpha
    (.1,2,5) ; hill
    0 FIX ; copd
    0 FIX ; female
    0 FIX ; fyears

    $OMEGA
    0.5 ; PPV_base
    0.5 ; PPV_normal
    0.5 ; PPV_t50
    0.5 ; PPV_c50

    $SIGMA
    0.025 ; RUV_cv

    $PRED

    ; Impute missing values
         NDIAG=DIAG
         IF (NDIAG.LE.0) NDIAG=1
         NSEX=SEX
         IF (NSEX.LE.0) NSEX=1
         NAGE=AGE
         IF (NAGE.LE.0) NAGE=40
    ; Group variables (FIXED effects)
         FDIAG = 1+THETA(7) *(1-NDIAG)
         FSEX = 1+THETA(8)*(1-NSEX)
         FAGE = 1+THETA(9)*(NAGE-40)

         GRP_NORMAL = FDIAG*FAGE*FSEX*THETA(2)
       
    ; Individual variables (RANDOM effects)

         BASE   = THETA(1)*EXP(ETA(1))
         NORMAL = GRP_NORMAL*EXP(ETA(2))
         T50    = THETA(3)*EXP(ETA(3))
         C50    = THETA(4)*EXP(ETA(4))

         IF (T50.LE.0.01) EXIT 1 3
         IF (C50.LE.0.01) EXIT 1 4

         IF (TIME.LT.0) THEN
              LTZERO=1
         ELSE
              LTZERO=0
         ENDIF

         FTIME=LTZERO+(1-LTZERO)*EXP(-LOG(2)/T50*TIME)
         BCF=(NORMAL/BASE-1)*FTIME
         FEMAX=BCF/(BCF+1)
         PEFRT=NORMAL*(1-FEMAX)
         CPN=THEO**THETA(6)
         C50N=C50**THETA(6)
         PEFRCT=(NORMAL-PEFRT)*CPN/(CPN+C50N)
         FX=PEFRT+THETA(5)*PEFRCT

         Y=FX*(1+ERR(1))

    $TABLE ID TIME THEO NAGE WT NSEX RACE NDIAG
    NORMAL Y
    NOPRINT ONEHEADER FILE=theopd.fit

    Figure 3. Code from Holford et al (1993).