# PKPD Single Ascending Dose example

## Explore covariate effects on PK

### Concentration over time, colored by categorical covariate, mean +/- 95% CI

ggplot(data = pk_data_cycle1, aes(x = NOMTIME, y = LIDV, group = WEIGHTB > 100, color = WEIGHTB > 100)) + xgx_geom_ci(conf_level = 0.95) + xgx_scale_y_log10() + xgx_scale_x_time_units(units_dataset = time_units_dataset, units_plot = time_units_plot) + facet_grid(.~DOSE) + labs(y = conc_label, color = w100_label) + xgx_annotate_status(status)

## PD marker over time, colored by Dose, mean (95% CI) percentiles by nominal time

ggplot(data = pd_data, aes(x = NOMTIME, y = LIDV, group = DOSE, color = TRTACT_high2low)) + xgx_geom_ci(conf_level = 0.95) + xgx_scale_y_log10() + xgx_scale_x_time_units(units_dataset = time_units_dataset, units_plot = time_units_plot) + labs(y = pd_label, color = trtact_label) + xgx_annotate_status(status)

## PD marker over time, faceted by Dose, dots & lines grouped by individuals

ggplot(data = pd_data, aes(x = NOMTIME, y = LIDV, group = ID)) + geom_line(alpha = 0.5) + geom_point(alpha = 0.5) + xgx_scale_y_log10() + xgx_scale_x_time_units(units_dataset = time_units_dataset, units_plot = time_units_plot) + facet_grid(~TRTACT_low2high) + labs(y = pd_label, color = trtact_label) + xgx_annotate_status(status)

## Explore Dose-Response Relationship

One of the key questions when looking at PD markers is to determine if there is a dose-response relationship, and if there is, what dose is necessary to achieve the desired effect? Simple dose-response plots can give insight into these questions.

### PD marker by Dose, for endpoint of interest, mean (95% CI) by Dose

Plot PD marker against dose. Using summary statistics can be helpful, e.g. Mean +/- SE, or median, 5th & 95th percentiles.

Here are some questions to ask yourself when looking at Dose-Response plots: Do you see any relationship? Does response increase (decrease) with increasing dose? Are you able to detect a plateau or Emax (Emin) on the effect? If so, around what dose does this occur?

Warning: Even if you don’t see an Emax, that doesn’t mean there isn’t one. Be very careful about using linear models for Dose-Response relationships. Extrapolation outside of the observed dose range could indicate a higher dose is always better (even if it isn’t).

ggplot(data = pd_data_baseline_day85, aes(x = DOSE, y = LIDV, group = DOSE)) + xgx_geom_ci(conf_level = 0.95) + facet_grid(~DAY_label) + labs(x = dose_label, y = pd_label, color = trtact_label) + xgx_annotate_status(status)

### PD marker by Dose, faceted by visit, mean (95% CI) by Dose

ggplot(data = pd_data, aes(x = DOSE, y = LIDV, group = DOSE)) + xgx_geom_ci(conf_level = 0.95) + facet_grid(~DAY_label) + labs(x = dose_label, y = pd_label, color = trtact_label) + xgx_annotate_status(status)

### Explore covariate effects on Dose-Response relationship

ggplot(data = pd_data_baseline_day85, aes(x = DOSE, y = LIDV, group = WEIGHTB > 100, color = WEIGHTB > 100)) + xgx_geom_ci(conf_level = .95) + facet_grid(~DAY_label) + labs(x = dose_label, y = pd_label, color = w100_label) + xgx_annotate_status(status)

## Explore Exposure-Response Relationship

Plot PD marker against concentration. Do you see any relationship? Does response increase (decrease) with increasing dose? Are you able to detect a plateau or Emax (Emin) on the effect?

Warning: Even if you don’t see an Emax, that doesn’t mean there isn’t one. Be very careful about using linear models for Dose-Response or Exposure-Response relationships. Extrapolation outside of the observed dose range could indicate a higher dose is always better (even if it isn’t).

g = ggplot(data = pk_vs_pd_data_day85, aes(x = Concentration, y = Response)) + geom_point(aes(color = TRTACT_high2low, shape = factor(CENS))) + geom_smooth(color="black",shape=NULL) + xgx_scale_x_log10() + labs(x = conc_label, y = pd_label, color = trtact_label, shape = cens_label) + xgx_annotate_status(status) print(g)
gfacet = g %+% pk_vs_pd_data + facet_grid(~DAY_label) print(g)

Plotting AUC vs response instead of concentration vs response may make more sense in some situations. For example, when there is a large delay between PK and PD it would be difficult to relate the time-varying concentration with the response. If rich sampling is only done at a particular point in the study, e.g. at steady state, then the AUC calculated on the rich profile could be used as the exposure variable for a number of PD visits. If PK samples are scarce, average Cmin could also be used as the exposure metric.

gAUC = g + aes(x = AUC_last) + xlab(auc_label) print(gAUC)

## R Session Info

sessionInfo()