Nothing
## -----------------------------------------------------------------------------
outcome_str <- '1NNN 2NTN 2NNN'
## -----------------------------------------------------------------------------
skeleton <- c(0.05, 0.15, 0.25, 0.4, 0.6)
target <- 0.25
## ---- message=FALSE-----------------------------------------------------------
library(trialr)
path <- crm_path_analysis(
outcome_str = outcome_str,
skeleton = skeleton, target = target, model = 'empiric',
beta_sd = 1, seed = 123, refresh = 0)
## -----------------------------------------------------------------------------
names(path)
## -----------------------------------------------------------------------------
library(tibble)
df <- as_tibble(path)
df
## ---- message=FALSE-----------------------------------------------------------
library(tidyr)
library(purrr)
library(dplyr)
df %>%
mutate(prob_tox = fit %>% map('prob_tox')) %>%
select(outcomes, dose_index, prob_tox) %>%
unnest(cols = c(dose_index, prob_tox)) %>%
filter(dose_index == 2)
## ---- message=FALSE, eval=FALSE-----------------------------------------------
# library(tidyr)
# library(purrr)
# library(dplyr)
#
# df %>%
# mutate(prob_tox = fit %>% map('prob_tox')) %>%
# select(outcomes, dose_index, prob_tox) %>%
# unnest %>%
# filter(dose_index == 2)
## -----------------------------------------------------------------------------
df %>%
mutate(
recommended_dose = fit %>% map_int('recommended_dose'),
careful_dose = fit %>% map_dbl(careful_escalation,
tox_threshold = target + 0.1,
certainty_threshold = 0.7)
) %>%
select(outcomes, recommended_dose, careful_dose)
## -----------------------------------------------------------------------------
paths <- crm_path_analysis(
outcome_str = '1NNN 2NTN 2NNN 3TTT 1TTT 1TNT',
skeleton = skeleton, target = target, model = 'logistic',
a0 = 3, beta_mean = 0,beta_sd = 1,
seed = 123, refresh = 0)
df <- as_tibble(paths)
df %>%
mutate(
recommended_dose = fit %>% map_int('recommended_dose'),
careful_dose = fit %>% map_dbl(careful_escalation,
tox_threshold = target + 0.1,
certainty_threshold = 0.7)
) %>%
select(outcomes, recommended_dose, careful_dose)
## -----------------------------------------------------------------------------
paths <- crm_dtps(skeleton = skeleton,
target = target,
model = 'empiric',
cohort_sizes = c(2, 2),
next_dose = 2,
beta_sd = 1,
refresh = 0)
## -----------------------------------------------------------------------------
df <- as_tibble(paths)
df
## -----------------------------------------------------------------------------
spread_paths(df %>% select(-fit, -parent_fit, -dose_index))
## -----------------------------------------------------------------------------
paths2 <- crm_dtps(skeleton = skeleton,
target = target,
model = 'empiric',
cohort_sizes = c(3, 3),
previous_outcomes = '2NN 3TN',
next_dose = 2,
beta_sd = 1,
refresh = 0)
## -----------------------------------------------------------------------------
spread_paths(as_tibble(paths2) %>% select(-fit, -parent_fit, -dose_index))
## -----------------------------------------------------------------------------
paths3 <- crm_dtps(
skeleton = skeleton,
target = target,
model = 'empiric',
cohort_sizes = c(3, 3),
previous_outcomes = '2NN 3TN',
next_dose = 2,
beta_sd = 1,
user_dose_func = function(x) {
careful_escalation(x, tox_threshold = target + 0.1,
certainty_threshold = 0.7)
},
seed = 123, refresh = 0)
df3 <- as_tibble(paths3)
spread_paths(df3 %>% select(-fit, -parent_fit, -dose_index))
## ---- fig.width=6, fig.height=6-----------------------------------------------
# This section of code outputs to the Viewer pane in RStudio
if(Sys.getenv("RSTUDIO") == "1") {
library(DiagrammeR)
df3 %>%
transmute(id = .node,
type = NA,
label = case_when(
is.na(next_dose) ~ 'Stop',
TRUE ~ next_dose %>% as.character()),
shape = 'circle',
fillcolor = case_when(
next_dose == 1 ~ 'slategrey',
next_dose == 2 ~ 'skyblue1',
next_dose == 3 ~ 'royalblue1',
next_dose == 4 ~ 'orchid4',
next_dose == 5 ~ 'royalblue4',
is.na(next_dose) ~ 'red'
)
) -> ndf
df3 %>%
filter(!is.na(.parent)) %>%
select(from = .parent, to = .node, label = outcomes) %>%
mutate(rel = "leading_to") -> edf
graph <- create_graph(nodes_df = ndf, edges_df = edf)
render_graph(graph)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.