Dtrace: Trace optimization routines

Description Usage Arguments Examples

View source: R/Dtrace.R

Description

A helper function for writing output to the screen and files when optimizing.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dtrace(
  fn,
  it,
  ni,
  xtopt,
  xopt,
  aopt,
  gxt,
  ga,
  dmf,
  diff,
  ixt,
  ia,
  itvector,
  dmfvector,
  poped.db,
  opt_xt = poped.db$settings$optsw[2],
  opt_a = poped.db$settings$optsw[4],
  opt_x = poped.db$settings$optsw[3],
  opt_samps = poped.db$settings$optsw[1],
  opt_inds = poped.db$settings$optsw[5],
  rsit = poped.db$settings$rsit,
  convergence_eps = poped.db$settings$convergence_eps
)

Arguments

fn

A file to output information to. Can also be the screen if ''.

it

the iteration number.

ni

A vector of the number of samples in each group.

xtopt

The matrix defining current best sampling schedule.

xopt

The cell structure defining the current best discrete design variables.

aopt

The matrix defining the current best continuous design variables.

gxt

The matrix defining the current gradient of the xt vector.

ga

The matrix defining the current gradient for the continuous design variables.

dmf

The current OFV.

diff

The difference from the previous iteration.

ixt

If xt Gradient Inversion occurred or not.

ia

If a Gradient Inversion occurred or not.

itvector

The iteration vector. Not currently used.

dmfvector

The dmf vector. Not currently used.

poped.db

A PopED database.

opt_xt

Should the sample times be optimized?

opt_a

Should the continuous design variables be optimized?

opt_x

Should the discrete design variables be optimized?

opt_samps

Are the number of sample times per group being optimized?

opt_inds

Are the number of individuals per group being optimized?

rsit

Number of Random search iterations

convergence_eps

Stochastic Gradient convergence value, (difference in OFV for D-optimal, difference in gradient for ED-optimal)

Examples

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
library(PopED)

############# START #################
## Create PopED database
## (warfarin model for optimization)
#####################################

## Warfarin example from software comparison in:
## Nyberg et al., "Methods and software tools for design evaluation 
##   for population pharmacokinetics-pharmacodynamics studies", 
##   Br. J. Clin. Pharm., 2014. 

## Optimization using an additive + proportional reidual error  
## to avoid sample times at very low concentrations (time 0 or very late samples).

## find the parameters that are needed to define from the structural model
ff.PK.1.comp.oral.sd.CL

## -- parameter definition function 
## -- names match parameters in function ff
sfg <- function(x,a,bpop,b,bocc){
  parameters=c(CL=bpop[1]*exp(b[1]),
               V=bpop[2]*exp(b[2]),
               KA=bpop[3]*exp(b[3]),
               Favail=bpop[4],
               DOSE=a[1])
  return(parameters) 
}

## -- Define initial design  and design space
poped.db <- create.poped.database(ff_fun=ff.PK.1.comp.oral.sd.CL,
                                  fg_fun=sfg,
                                  fError_fun=feps.add.prop,
                                  bpop=c(CL=0.15, V=8, KA=1.0, Favail=1), 
                                  notfixed_bpop=c(1,1,1,0),
                                  d=c(CL=0.07, V=0.02, KA=0.6), 
                                  sigma=c(prop=0.01,add=0.25),
                                  groupsize=32,
                                  xt=c( 0.5,1,2,6,24,36,72,120),
                                  minxt=0.01,
                                  maxxt=120,
                                  a=c(DOSE=70),
                                  mina=c(DOSE=0.01),
                                  maxa=c(DOSE=100))

############# END ###################
## Create PopED database
## (warfarin model for optimization)
#####################################


FIM <- evaluate.fim(poped.db) 
dmf <- det(FIM)

Dtrace(fn="",
       it=1,
       ni=poped.db$design$ni,
       xtopt=poped.db$design$xt,
       xopt=poped.db$design$x,
       aopt=poped.db$design$a,
       gxt=0,ga=0,
       dmf=dmf,diff=3,
       ixt=FALSE,
       ia=FALSE, 
       itvector=NULL,
       dmfvector=NULL,
       poped.db,
       opt_xt=poped.db$settings$optsw[2],
       opt_a=poped.db$settings$optsw[4],opt_x=poped.db$settings$optsw[3],
       opt_samps=poped.db$settings$optsw[1],opt_inds=poped.db$settings$optsw[5],
       rsit=200)

Dtrace(fn="",
       it=1,
       ni=poped.db$design$ni,
       xtopt=poped.db$design$xt,
       xopt=poped.db$design$x,
       aopt=poped.db$design$a,
       gxt=0,ga=0,
       dmf=dmf,diff=3,
       ixt=FALSE,
       ia=FALSE, 
       itvector=NULL,
       dmfvector=NULL,
       poped.db,
       opt_xt=poped.db$settings$optsw[2],
       opt_a=poped.db$settings$optsw[4],opt_x=poped.db$settings$optsw[3],
       opt_samps=poped.db$settings$optsw[1],opt_inds=poped.db$settings$optsw[5],
       rsit=0)

Dtrace(fn="",
       it=1,
       ni=poped.db$design$ni,
       xtopt=poped.db$design$xt,
       xopt=poped.db$design$x,
       aopt=poped.db$design$a,
       gxt=0,ga=0,
       dmf=dmf,diff=3,
       ixt=FALSE,
       ia=FALSE, 
       itvector=NULL,
       dmfvector=NULL,
       poped.db,
       opt_xt=poped.db$settings$optsw[2],
       opt_a=poped.db$settings$optsw[4],opt_x=poped.db$settings$optsw[3],
       opt_samps=poped.db$settings$optsw[1],opt_inds=poped.db$settings$optsw[5],
       rsit=1)

Dtrace(fn="",
       it=1,
       ni=poped.db$design$ni,
       xtopt=poped.db$design$xt,
       xopt=poped.db$design$x,
       aopt=poped.db$design$a,
       gxt=0,ga=0,
       dmf=dmf,
       diff=0,
       ixt=FALSE,
       ia=FALSE, 
       itvector=NULL,
       dmfvector=NULL,
       poped.db,
       opt_xt=poped.db$settings$optsw[2],
       opt_a=poped.db$settings$optsw[4],opt_x=poped.db$settings$optsw[3],
       opt_samps=poped.db$settings$optsw[1],opt_inds=poped.db$settings$optsw[5],
       rsit=1)

Dtrace(fn="",
       it=5,
       ni=poped.db$design$ni,
       xtopt=poped.db$design$xt,
       xopt=poped.db$design$x,
       aopt=poped.db$design$a,
       gxt=0,ga=0,
       dmf=dmf,
       diff=0,
       ixt=FALSE,
       ia=FALSE, 
       itvector=NULL,
       dmfvector=NULL,
       poped.db,
       opt_xt=poped.db$settings$optsw[2],
       opt_a=poped.db$settings$optsw[4],opt_x=poped.db$settings$optsw[3],
       opt_samps=poped.db$settings$optsw[1],opt_inds=poped.db$settings$optsw[5],
       rsit=1)

PopED documentation built on May 21, 2021, 5:08 p.m.