Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7
)
## ----data_assignments, echo=TRUE, warning=FALSE, message=FALSE----------------
library(xgxr)
library(ggplot2)
library(dplyr)
# setting ggplot theme
xgx_theme_set()
## ---- echo=TRUE, warning=FALSE, message=FALSE---------------------------------
# units of dataset
time_units_dataset <- "hours"
time_units_plot <- "days"
dose_label <- "Dose (mg)"
conc_label <- "Concentration (ug/ml)"
concnorm_label <- "Normalized Concentration (ug/ml)/mg"
# covariates in the dataset
covariates <- c("WT")
# load dataset
data <- nlmixr_theo_sd
# make sure that the necessary columns are assigned
# five columns are required: TIME, LIDV, CMT, DOSE, DOSEREG
data <- data %>%
mutate(ID = ID) %>% #ID column
group_by(ID) %>%
mutate(TIME = TIME, #TIME column name
NOMTIME = as.numeric(as.character(cut(TIME,
breaks = c(-Inf, 0.1, 0.7, 1.5, 4, 8, 10.5, 15, Inf),
labels = c( 0, 0.5, 1, 2, 7, 9, 12, 24)))),
EVID = EVID, # EVENT ID >=1 is dose, 0 otherwise
CYCLE = 1, # CYCLE of PK data
LIDV = DV, # DEPENDENT VARIABLE column name
CENS = 0, # CENSORING column name
CMT = CMT, # COMPARTMENT column here (e.g. CMT or YTYPE)
DOSE = signif(max(AMT) * WT, 2), # DOSE column here (numeric value)
# convert mg/kg (in dataset) to mg
DOSEREG = DOSE) %>% # DOSE REGIMEN column here
ungroup()
# convert DOSEREG to factor for proper ordering in the plotting
# add LIDVNORM dose normalized concentration for plotting
data <- data %>%
arrange(DOSE) %>%
mutate(LIDVNORM = LIDV / DOSE,
DOSEREG = factor(DOSEREG, levels = unique(DOSEREG)),
DOSEREG_REV = factor(DOSEREG, levels = rev(unique(DOSEREG))))
# define order of treatment factor
# for plotting the PK data
data_pk <- filter(data, CMT == 2, TIME > 0)
# NCA
NCA <- data %>%
filter(CMT == 2, NOMTIME > 0, NOMTIME <= 24) %>%
group_by(ID) %>%
summarize(AUC_0_24 = caTools::trapz(TIME, LIDV),
Cmax_0_24 = max(LIDV),
Ctrough_0_24 = LIDV[length(LIDV)],
DOSE = DOSE[1],
WT = WT[1]) %>%
tidyr::gather(PARAM, VALUE, -c(ID, DOSE, WT)) %>%
mutate(VALUE_NORM = VALUE / DOSE) %>%
ungroup()
## -----------------------------------------------------------------------------
check <- xgx_check_data(data,covariates)
knitr::kable(check$summary)
knitr::kable(head(check$data_subset))
knitr::kable(check$cts_covariates)
knitr::kable(check$cat_covariates)
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=3-------------------
glin <- ggplot(data = data_pk, aes(x = NOMTIME,
y = LIDV,
group = DOSE,
color = DOSEREG_REV)) +
stat_summary() +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
labs(y = conc_label, color = "Dose")
glog <- glin + scale_y_log10()
gridExtra::grid.arrange(gridExtra::arrangeGrob(glin, glog, nrow = 1))
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=4------------------
if (exists("data_pk_rich")) {
ggplot(data_pk_rich, aes(x = PROFTIME,
y = LIDV,
group = interaction(CYCLE,DOSE),
color = DOSEREG_REV)) +
facet_grid(~DAY_label, scales = "free_x") +
xgx_stat_ci() +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
labs(y = conc_label, color = "Dose")
}
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=3-------------------
ggplot(data = data_pk, aes(x = TIME,
y = LIDV,
group = interaction(ID, CYCLE))) +
geom_line(size = 1, color = rgb(0.5, 0.5, 0.5), alpha = 0.3) +
geom_point(aes(color = factor(CENS), shape = factor(CENS)),
size = 2, alpha = 0.3) +
xgx_stat_ci(aes(x = NOMTIME, group = NULL, color = NULL)) +
facet_grid(.~DOSEREG) +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
ylab(conc_label) +
theme(legend.position = "none") +
scale_shape_manual(values = c(1, 8)) +
scale_color_manual(values = c("grey50", "red"))
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=5-------------------
ggplot(data = data_pk, aes(x = TIME,
y = LIDV,
group = interaction(ID, CYCLE),
color = factor(DOSEREG_REV),
shape = factor(CENS))) +
geom_line(size = 1, alpha = 0.5) +
geom_point() +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
labs(y = conc_label, color = "Dose", shape = "Censoring")
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=4-------------------
if (exists("data_pk_rich")) {
ggplot(data = data_pk_rich, aes(x = TIME,
y = LIDV,
group = interaction(ID, CYCLE),
color = DOSEREG_REV,
shape = factor(CENS))) +
geom_line(size = 1, alpha = 0.5) +
geom_point() +
facet_grid(~DAY_label, scales = "free_x") +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
labs(y = conc_label, color = "Dose", shape = "Censoring")
}
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=3-------------------
ggplot(data = data_pk, aes(x = TIME,
y = LIDV,
group = interaction(ID, CYCLE),
color = factor(CENS),
shape = factor(CENS))) +
geom_line(size = 1, alpha = 0.5) +
geom_point() +
facet_grid(.~DOSEREG) +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
ylab(conc_label) +
scale_shape_manual(values = c(1, 8)) +
scale_color_manual(values = c("grey50", "red")) +
theme(legend.position = "none")
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=3-------------------
ggplot(data = data_pk, aes(x = NOMTIME,
y = LIDVNORM,
group = DOSEREG_REV,
color = DOSEREG_REV)) +
xgx_stat_ci() +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
labs(y = conc_label, color = "Dose")
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=4-------------------
if (exists("data_pk_rich")) {
ggplot(data_pk_rich, aes(x = NOMTIME,
y = LIDVNORM,
group = interaction(DOSE, CYCLE),
color = DOSEREG_REV)) +
xgx_stat_ci() +
facet_grid(~DAY_label,scales = "free_x") +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
labs(y = conc_label, color = "Dose")
}
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=7-------------------
ggplot(data = data_pk, aes(x = TIME, y = LIDV)) +
geom_line() +
geom_point(aes(color = factor(CENS), shape = factor(CENS))) +
facet_wrap(~ID + DOSEREG) +
xgx_scale_x_time_units(time_units_dataset, time_units_plot) +
xgx_scale_y_log10() +
ylab(conc_label) +
theme(legend.position = "none") +
scale_shape_manual(values = c(1, 8)) +
scale_color_manual(values = c("black", "red"))
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=4-------------------
if (!exists("NCA")) {
warning("For PK data exploration, it is highly recommended to perform an NCA")
} else {
ggplot(data = NCA, aes(x = DOSE, y = VALUE_NORM)) +
geom_boxplot(aes(group = DOSE)) +
geom_smooth(method = "loess", color = "black") +
facet_wrap(~PARAM, scales = "free_y") +
xgx_scale_x_log10(breaks = unique(NCA$DOSE)) +
xgx_scale_y_log10() +
labs(x = dose_label, y = concnorm_label)
}
## ---- echo=TRUE, warning=FALSE, message=FALSE, fig.height=5-------------------
if (!exists("NCA")) {
warning("For covariate exploration, it is highly recommended to perform an NCA")
} else {
NCA_cts <- NCA[, c("PARAM", "VALUE", check$cts_covariates$Covariate)] %>%
tidyr::gather(COV, COV_VALUE, -c(PARAM, VALUE))
NCA_cat <- NCA[, c("PARAM", "VALUE", check$cat_covariates$Covariate)] %>%
tidyr::gather(COV, COV_VALUE, -c(PARAM, VALUE))
if (nrow(check$cts_covariates) >= 1) {
gg <- ggplot(data = NCA_cts, aes(x = COV_VALUE, y = VALUE)) +
geom_point() +
geom_smooth(method = "loess", color = "black") +
facet_grid(PARAM~COV,switch = "y", scales = "free_y") +
xgx_scale_x_log10() +
xgx_scale_y_log10() +
labs(x = "Covariate Value", y = "NCA Parameter Value")
print(gg)
}
if (nrow(check$cat_covariates) >= 1) {
gg <- ggplot(data = NCA_cat, aes(x = COV_VALUE, y = VALUE)) +
geom_boxplot() +
facet_grid(PARAM~COV, switch = "y", scales = "free_y") +
xgx_scale_y_log10() +
labs(x = "Covariate Value", y = "NCA Parameter Value")
print(gg)
}
}
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.