Create scheme for updating dose or interval during dose optimization trial
create_regimen_update_design.Rd
Create scheme for updating dose or interval during dose optimization trial
Usage
create_regimen_update_design(
at,
anchor,
update_type = c("dose", "interval"),
dose_optimization_method = map_adjust_dose
)
Arguments
- at
numeric vector of the dose or day number to "anchor" the sampling times to. Vector needs to be of same length as
time
. Ifanchor
is set today
, then the first dose in that day is used. If later doses in the day are preferred, the anchor can also be specified fractionally, e.g.1.5
will use the time of the first dose in the second half of the 1st day.- anchor
either
day
ordose
. Single value required, i.e. anchor types cannot be mixed.- update_type
update either future
dose
(default) orinterval
.- dose_optimization_method
A function that determines how doses should be adjusted given the collected drug levels. The function must return a named list of the structure
list(regimen = reg, additional_info = x)
, wherereg
is the updated PKPDsim regimen for the patient andx
can be another other information useful for post-processing of trial results.
Examples
create_regimen_update_design(
at = c(2, 5, 8),
anchor = "dose"
)
#> $dose_optimization_method
#> function (tdms, est_model, parameters, omega, ruv, regimen, covariates = NULL,
#> target_design, dose_update, grid = NULL, ...)
#> {
#> est_par <- simulate_fit(est_model = est_model, parameters = parameters,
#> omega = omega, ruv = ruv, tdms = tdms, covariates = covariates,
#> regimen = regimen, ...)
#> if (is.null(grid)) {
#> d1 <- regimen$dose_amts[1]
#> grid <- seq(d1/5, d1 * 5, length.out = 10)
#> }
#> new_dose <- dose_grid_search(est_model = est_model, regimen = regimen,
#> parameters = est_par, target_design = target_design,
#> auc_comp = PKPDsim::get_model_auc_compartment(est_model),
#> dose_update = dose_update, grid = grid, grid_type = "dose",
#> covariates = covariates, iov_bins = PKPDsim::get_model_iov(est_model)$bins,
#> ...)
#> regimen <- update_regimen(regimen, new_dose = new_dose, dose_update_number = dose_update)
#> list(regimen = regimen, dose_update = dose_update, new_dose = new_dose,
#> new_interval = NA, additional_info = est_par)
#> }
#> <bytecode: 0x557c6d68cec0>
#> <environment: namespace:mipdtrial>
#>
#> $scheme
#> base offset at anchor scatter update_type
#> 1 dose 0 2 dose 0 dose
#> 2 dose 0 5 dose 0 dose
#> 3 dose 0 8 dose 0 dose
#>
create_regimen_update_design(
at = c(4, 8),
anchor = "day",
update_type = "interval",
dose_optimization_method = map_adjust_interval
)
#> $dose_optimization_method
#> function (tdms, est_model, parameters, omega, ruv, regimen, covariates = NULL,
#> target_design, dose_update, grid = NULL, ...)
#> {
#> est_par <- simulate_fit(est_model = est_model, parameters = parameters,
#> omega = omega, ruv = ruv, tdms = tdms, covariates = covariates,
#> regimen = regimen, ...)
#> if (is.null(grid)) {
#> stop("Interval-optimization requires `grid` argument.")
#> }
#> new_interval <- dose_grid_search(est_model = est_model, regimen = regimen,
#> parameters = est_par, target_design = target_design,
#> auc_comp = PKPDsim::get_model_auc_compartment(est_model),
#> dose_update = dose_update, grid = grid, grid_type = "interval",
#> covariates = covariates, iov_bins = PKPDsim::get_model_iov(est_model)$bins,
#> verbose = T, ...)
#> regimen <- update_regimen(regimen, new_interval = new_interval,
#> dose_update_number = dose_update)
#> list(regimen = regimen, dose_update = dose_update, new_dose = NA,
#> new_interval = new_interval, additional_info = est_par)
#> }
#> <bytecode: 0x557c6d772628>
#> <environment: namespace:mipdtrial>
#>
#> $scheme
#> base offset at anchor scatter update_type
#> 1 dose 0 4 day 0 interval
#> 2 dose 0 8 day 0 interval
#>