Population PD Analysis
Objective and introduction
Objectives
- To provide practical experience of performing population analysis using NONMEM.
- 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.
- Use the Windows Explorer to explore the My Pharmacometrics\Pharmacometrics Data\Population PD folder.
- Open the theopd.ctl file and see if you can understand the NM-TRAN control stream code.
- Open the Wings for NONMEM (WFN) window by double clicking on the NONMEM shortcut in My Pharmacometrics\Pharmacometrics Programs.
- Change directory in the WFN window to the Population PD
folder.
cd "Population PD" - Start a NONMEM run using the theopd.ctl NMTRAN control
stream.
nmgo theopd - When the run is finished the results will be shown in a table format extracted from the NONMEM output listing.
- 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 - 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
Figure 1. NM-TRAN code for theolin.ctl.
- Run theolin.ctl using nmgo and examine the results.
nmgo theolin - 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 - 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 streamFigure 2. Code for theosex.ctl.
$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
- Run theosex.ctl and examine the results.
- 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.
- Open the theopd.dat file and look at its structure. There are some comments in the file telling you about the values.
- Experiment with changing the model and explore the influence of weight, age, sex and diagnosis on the model parameters.
Assignment
- 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.
- Justify in biological terms the influence of each covariate you found to be important.
- 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 PEFRFigure 3. Code from Holford et al (1993).
$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