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.

    notepad theolin.ctl

    $PROB theophylline pharmacodynamics
    $DATA theopd.dat IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM MAXEVAL=9990 POSTHOC
    $COV

    $THETA (0,150.,) ; pope0 1
    $THETA (0,2.,) ; slope 2

    $OMEGA 0.5 ; etae0 1
    $OMEGA 0.5 ; etaslope 2

    $SIGMA 100 ; errsd 1

    $PRED
         E0=THETA(1)*EXP(ETA(1))
         SLOPE=THETA(2)*EXP(ETA(2))

         Y = E0 + SLOPE*THEO + ERR(1)

    $TABLE ID TIME THEO SLOPE E0 Y
    ONEHEADER NOPRINT FILE=theopd.fit
    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
    $DATA theopd.dat IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM MAXEVAL=9990 POSTHOC
    $COV

    $THETA (0,150.,) ; pope0 1
    $THETA (0,200.,) ; popemax 2
    $THETA (.001,10,) ; popec50 3
    $THETA (0,1,) ; fsexe0 4

    $OMEGA 0.1 ; etae0 1
    $OMEGA 0.1 ; etaemax 2
    $OMEGA 0.1 ; etaec50 3
    $SIGMA 100 ; errsd 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))
         EC50=THETA(3)*EXP(ETA(3))

         Y = E0 + EMAX*THEO/(THEO+EC50) + ERR(1)

    $TABLE ID TIME THEO EMAX EC50 E0 Y
    ONEHEADER NOPRINT 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.
    nmlst Summary of parameter estimates (for just a few runs)
    nmmbt Summary of one or more runs. Open the nmmbt_*.txt file with Excel.
  3. Open the theopd.dat file and look at its structure. There are some comments in the file telling you about the values.
  4. 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.dat IGNORE #
    $INPUT ID TIME THEO AGE WT SEX RACE DIAG DV
    $ESTIM MAXEVAL=9990 POSTHOC
    $COV

    $THETA (0,150,) ;base
    $THETA (0,500,) ;normal
    $THETA (.01,10,) ;t50
    $THETA (.01,10,) ;c50
    $THETA (0,0.5,1) ;alpha
    $THETA (.1,2,5) ;hill
    $THETA 0 FIX ;copd
    $THETA 0 FIX ;female
    $THETA 0 FIX ;fyears

    $OMEGA 0.5 ;etabase
    $OMEGA 0.5 ;etanormal
    $OMEGA 0.5 ;etat50
    $OMEGA 0.5 ;etac50

    $SIGMA 0.025 ;errcv

    $PRED

         NDIAG=DIAG 
         IF (NDIAG.LE.0) NDIAG=1 
         NSEX=SEX 
         IF (NSEX.LE.0) NSEX=1 
         NAGE=AGE 
         IF (NAGE.LE.0) NAGE=40 

         FDIAG = 1+copd *(1-NDIAG) 
         FSEX = 1+female*(1-NSEX) 
         FAGE = 1+fyears*(NAGE-40) 

         FFLOW = FDIAG*FAGE*FSEX 
         BASE = base*exp(etabase) 
         NORMAL = FFLOW*normal*exp(etanormal) 
         T50 = t50*exp(etat50) 
         C50 = c50*exp(etac50) 
         ALPHA = alpha 
         HILL = hill 

         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(-0.693/T50*TIME) 
         BCF=(NORMAL/BASE-1)*FTIME 
         FEMAX=BCF/(BCF+1) 
         PEFRT=NORMAL*(1-FEMAX) 
         CPN=THEO**HILL 
         C50N=C50**HILL 
         PEFRCT=(NORMAL-PEFRT)*CPN/(CPN+C50N) 
         FX=PEFRT+ALPHA*PEFRCT 

         Y=FX*(1+errcv)
    Figure 3. Code from Holford et al (1993).