TLG Catalog - Dev
  • Dev
    • Stable
  1. Graphs
  2. Pharmacokinetic
  3. PKPG01
  • Introduction

  • Tables
    • ADA
      • ADAT01
      • ADAT02
      • ADAT03
      • ADAT04A
      • ADAT04B
    • Adverse Events
      • AET01
      • AET01_AESI
      • AET02
      • AET02_SMQ
      • AET03
      • AET04
      • AET04_PI
      • AET05
      • AET05_ALL
      • AET06
      • AET06_SMQ
      • AET07
      • AET09
      • AET09_SMQ
      • AET10
    • Concomitant Medications
      • CMT01
      • CMT01A
      • CMT01B
      • CMT02_PT
    • Deaths
      • DTHT01
    • Demography
      • DMT01
    • Disclosures
      • DISCLOSUREST01
      • EUDRAT01
      • EUDRAT02
    • Disposition
      • DST01
      • PDT01
      • PDT02
    • ECG
      • EGT01
      • EGT02
      • EGT03
      • EGT04
      • EGT05_QTCAT
    • Efficacy
      • AOVT01
      • AOVT02
      • AOVT03
      • CFBT01
      • CMHT01
      • COXT01
      • COXT02
      • DORT01
      • LGRT02
      • MMRMT01
      • ONCT05
      • RATET01
      • RBMIT01
      • RSPT01
      • TTET01
    • Exposure
      • EXT01
    • Lab Results
      • LBT01
      • LBT02
      • LBT03
      • LBT04
      • LBT05
      • LBT06
      • LBT07
      • LBT08
      • LBT09
      • LBT10
      • LBT10_BL
      • LBT11
      • LBT11_BL
      • LBT12
      • LBT12_BL
      • LBT13
      • LBT14
      • LBT15
    • Medical History
      • MHT01
    • Pharmacokinetic
      • PKCT01
      • PKPT02
      • PKPT03
      • PKPT04
      • PKPT05
      • PKPT06
      • PKPT07
      • PKPT08
      • PKPT11
    • Risk Management Plan
      • RMPT01
      • RMPT03
      • RMPT04
      • RMPT05
      • RMPT06
    • Safety
      • ENTXX
    • Vital Signs
      • VST01
      • VST02
  • Listings
    • ADA
      • ADAL02
    • Adverse Events
      • AEL01
      • AEL01_NOLLT
      • AEL02
      • AEL02_ED
      • AEL03
      • AEL04
    • Concomitant Medications
      • CML01
      • CML02A_GL
      • CML02B_GL
    • Development Safety Update Report
      • DSUR4
    • Disposition
      • DSL01
      • DSL02
    • ECG
      • EGL01
    • Efficacy
      • ONCL01
    • Exposure
      • EXL01
    • Lab Results
      • LBL01
      • LBL01_RLS
      • LBL02A
      • LBL02A_RLS
      • LBL02B
    • Medical History
      • MHL01
    • Pharmacokinetic
      • ADAL01
      • PKCL01
      • PKCL02
      • PKPL01
      • PKPL02
      • PKPL04
    • Vital Signs
      • VSL01
  • Graphs
    • Efficacy
      • FSTG01
      • FSTG02
      • KMG01
      • MMRMG01
      • MMRMG02
    • Other
      • BRG01
      • BWG01
      • CIG01
      • IPPG01
      • LTG01
      • MNG01
    • Pharmacokinetic
      • PKCG01
      • PKCG02
      • PKCG03
      • PKPG01
      • PKPG02
      • PKPG03
      • PKPG04
      • PKPG06

  • Appendix
    • Reproducibility

  • Index

On this page

  • Output
  • Reproducibility
    • Timestamp
    • Session Info
    • .lock file
  • Edit this page
  • Report an issue
  1. Graphs
  2. Pharmacokinetic
  3. PKPG01

PKPG01

Plot of Mean Cumulative Percentage (%) of Recovered Drug in Urine


Output

  • Plot with Two Cohorts
  • Plot with Six Cohorts
  • Data Setup
  • Preview
  • Try this using WebR
Code
use_title <- "Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \nby Analyte, Visit: PK Evaluable Patients" 
use_subtitle <- "Analyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1 \nPK Parameter:"
use_footnote <- "Program: \nOutput:"

separation_between_barplots <- 1.5

result <- g_lineplot(
  df = adpp,
  variables = control_lineplot_vars(
    x = "Time",
    y = "AVAL",
    group_var = "ARM",
    paramcd = "PARAM1",
    y_unit = "AVALU"
  ),
  alt_counts_df = adpp,
  y_lab = "Cummulative Percentage",
  x_lab = "Time (hours)",
  y_lab_add_paramcd = FALSE,
  y_lab_add_unit = TRUE,
  interval = "mean_sdi",
  whiskers = c("mean_sdi_lwr", "mean_sdi_upr"),
  title = use_title,
  subtitle = use_subtitle,
  caption = use_footnote,
  ggtheme = theme_nest(),
  position = ggplot2::position_dodge(width = 2)
)

plot <- result + theme(plot.caption = element_text(hjust = 0)) +
  scale_x_continuous(breaks = c(12, 24))
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Code
plot

WarningExperimental use!

WebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.

  • Preview
  • Try this using WebR

In this case we need to process the data further by artificially adding more random rows. Of course this step is not necessary in the case that data already has more cohorts.

Code
adpp_hck <- adpp %>%
  mutate(AVAL + 1 * rnorm(nrow(adpp), mean = 1, sd = 1)) %>%
  mutate(ARM = as.factor(sample(
    c(
      "D: Drug D",
      "E: Drug E",
      "F: Drug F",
      "G: Drug G"
    ),
    nrow(adpp),
    replace = TRUE,
    prob = c(0.4, 0.3, 0.2, 0.1)
  )))

adpp <- bind_rows(adpp, adpp_hck)

use_title <- "Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \nby Analyte, Visit: PK Evaluable Patients" 
use_subtitle <- "Analyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1 \nPK Parameter:"
use_footnote <- "Program: \nOutput:"

separation_between_barplots <- 1.5

result <- g_lineplot(
  df = adpp,
  variables = control_lineplot_vars(
    x = "Time",
    y = "AVAL",
    group_var = "ARM",
    paramcd = "PARAM1",
    y_unit = "AVALU"
  ),
  alt_counts_df = adpp,
  y_lab = "Cummulative Percentage",
  x_lab = "Time (hours)",
  y_lab_add_paramcd = FALSE,
  y_lab_add_unit = TRUE,
  interval = "mean_sdi",
  whiskers = c("mean_sdi_lwr", "mean_sdi_upr"),
  title = use_title,
  subtitle = use_subtitle,
  caption = use_footnote,
  ggtheme = theme_nest(),
  position = ggplot2::position_dodge(width = 2)
)

plot <- result + theme(plot.caption = element_text(hjust = 0)) +
  scale_x_continuous(breaks = c(12, 24))
Scale for x is already present.
Adding another scale for x, which will replace the existing scale.
Code
plot

WarningExperimental use!

WebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.

Code
library(tern)
library(dplyr)
library(ggplot2)
library(nestcolor)
set.seed(123)

# loading in the data
adpp <- random.cdisc.data::cadpp

# filtering the rows for specific data entries
adpp <- adpp %>%
  filter(PARAMCD == "RCPCINT", AVISIT == "CYCLE 1 DAY 1", PPCAT == "Plasma Drug X")

# adding or modifying specific columns
adpp <- adpp %>%
  mutate(ARM = as.factor(TRT01A)) %>%
  mutate(PARAM1 = "Fe") %>% # re-format PK parameter name
  mutate(Time = as.numeric(gsub("PT*|\\.|H$", "", PPENINT))) %>%
  droplevels() %>%
  df_explicit_na()

# in cases where the cohorts are numeric it is possible to rename them
levels(adpp$ARM) <- c(
  "A: Drug X",
  "C: Combination"
)

Reproducibility

Timestamp

[1] "2026-06-13 18:32:23 UTC"

Session Info

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.4 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Etc/UTC
 date     2026-06-13
 pandoc   3.9 @ /usr/bin/ (via rmarkdown)
 quarto   1.9.38 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package           * version     date (UTC) lib source
 backports           1.5.1       2026-04-03 [1] CRAN (R 4.5.2)
 brio                1.1.5       2024-04-24 [1] CRAN (R 4.5.2)
 broom               1.0.13      2026-05-14 [1] CRAN (R 4.5.2)
 checkmate           2.3.4       2026-02-03 [1] CRAN (R 4.5.2)
 cli                 3.6.6       2026-04-09 [1] CRAN (R 4.5.2)
 codetools           0.2-20      2024-03-31 [2] CRAN (R 4.5.2)
 curl                7.1.0       2026-04-22 [1] CRAN (R 4.5.2)
 dichromat           2.0-0.1     2022-05-02 [1] CRAN (R 4.5.2)
 digest              0.6.39      2025-11-19 [1] CRAN (R 4.5.2)
 dplyr             * 1.2.1       2026-04-03 [1] CRAN (R 4.5.2)
 evaluate            1.0.5       2025-08-27 [1] CRAN (R 4.5.2)
 farver              2.1.2       2024-05-13 [1] CRAN (R 4.5.2)
 fastmap             1.2.0       2024-05-15 [1] CRAN (R 4.5.2)
 forcats             1.0.1       2025-09-25 [1] CRAN (R 4.5.2)
 formatters        * 0.5.12.9003 2026-05-21 [1] https://p~
 generics            0.1.4       2025-05-09 [1] CRAN (R 4.5.2)
 ggplot2           * 4.0.3       2026-04-22 [1] CRAN (R 4.5.2)
 glue                1.8.1       2026-04-17 [1] CRAN (R 4.5.2)
 gtable              0.3.6       2024-10-25 [1] CRAN (R 4.5.2)
 htmltools           0.5.9       2025-12-04 [1] CRAN (R 4.5.2)
 htmlwidgets         1.6.4       2023-12-06 [1] CRAN (R 4.5.2)
 jsonlite            2.0.0       2025-03-27 [1] CRAN (R 4.5.2)
 knitr               1.51        2025-12-20 [1] CRAN (R 4.5.2)
 labeling            0.4.3       2023-08-29 [1] CRAN (R 4.5.2)
 lattice             0.22-9      2026-02-09 [2] CRAN (R 4.5.2)
 lifecycle           1.0.5       2026-01-08 [1] CRAN (R 4.5.2)
 magrittr          * 2.0.5       2026-04-04 [1] CRAN (R 4.5.2)
 Matrix              1.7-5       2026-03-21 [1] CRAN (R 4.5.2)
 nestcolor         * 0.1.3.9000  2025-01-21 [1] https://p~
 otel                0.2.0       2025-08-29 [1] CRAN (R 4.5.2)
 pillar              1.11.1      2025-09-17 [1] CRAN (R 4.5.2)
 pkgcache            2.2.5       2026-04-09 [1] CRAN (R 4.5.2)
 pkgconfig           2.0.3       2019-09-22 [1] CRAN (R 4.5.2)
 processx            3.9.0       2026-04-22 [1] CRAN (R 4.5.2)
 ps                  1.9.3       2026-04-20 [1] CRAN (R 4.5.2)
 purrr               1.2.2       2026-04-10 [1] CRAN (R 4.5.2)
 R6                  2.6.1       2025-02-15 [1] CRAN (R 4.5.2)
 random.cdisc.data   0.3.16.9007 2025-11-13 [1] https://p~
 rbibutils           2.4.1       2026-01-21 [1] CRAN (R 4.5.2)
 RColorBrewer        1.1-3       2022-04-03 [1] CRAN (R 4.5.2)
 Rdpack              2.6.6       2026-02-08 [1] CRAN (R 4.5.2)
 rlang               1.2.0       2026-04-06 [1] CRAN (R 4.5.2)
 rmarkdown           2.31        2026-03-26 [1] CRAN (R 4.5.2)
 rtables           * 0.6.16.9001 2026-05-21 [1] https://p~
 S7                  0.2.2       2026-04-22 [1] CRAN (R 4.5.2)
 scales              1.4.0       2025-04-24 [1] CRAN (R 4.5.2)
 sessioninfo         1.2.4       2026-06-04 [1] CRAN (R 4.5.2)
 stringi             1.8.7       2025-03-27 [1] CRAN (R 4.5.2)
 stringr             1.6.0       2025-11-04 [1] CRAN (R 4.5.2)
 survival            3.8-6       2026-01-16 [2] CRAN (R 4.5.2)
 tern              * 0.9.10.9012 2026-06-11 [1] https://p~
 testthat            3.3.2       2026-01-11 [1] CRAN (R 4.5.2)
 tibble              3.3.1       2026-01-11 [1] CRAN (R 4.5.2)
 tidyr               1.3.2       2025-12-19 [1] CRAN (R 4.5.2)
 tidyselect          1.2.1       2024-03-11 [1] CRAN (R 4.5.2)
 vctrs               0.7.3       2026-04-11 [1] CRAN (R 4.5.2)
 withr               3.0.2       2024-10-28 [1] CRAN (R 4.5.2)
 xfun                0.58        2026-06-01 [1] CRAN (R 4.5.2)
 yaml                2.3.12      2025-12-10 [1] CRAN (R 4.5.2)

 [1] /usr/local/lib/R/site-library
 [2] /usr/local/lib/R/library
 [3] /github/home/R/x86_64-pc-linux-gnu-library/4.5
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

.lock file

Download the .lock file and use renv::restore() on it to recreate environment used to generate this website.

Download

PKCG03
PKPG02
Source Code
---
title: PKPG01
subtitle: Plot of Mean Cumulative Percentage (%) of Recovered Drug in Urine
---

------------------------------------------------------------------------

{{< include ../../_utils/envir_hook.qmd >}}

```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
library(tern)
library(dplyr)
library(ggplot2)
library(nestcolor)
set.seed(123)

# loading in the data
adpp <- random.cdisc.data::cadpp

# filtering the rows for specific data entries
adpp <- adpp %>%
  filter(PARAMCD == "RCPCINT", AVISIT == "CYCLE 1 DAY 1", PPCAT == "Plasma Drug X")

# adding or modifying specific columns
adpp <- adpp %>%
  mutate(ARM = as.factor(TRT01A)) %>%
  mutate(PARAM1 = "Fe") %>% # re-format PK parameter name
  mutate(Time = as.numeric(gsub("PT*|\\.|H$", "", PPENINT))) %>%
  droplevels() %>%
  df_explicit_na()

# in cases where the cohorts are numeric it is possible to rename them
levels(adpp$ARM) <- c(
  "A: Drug X",
  "C: Combination"
)
```

```{r include = FALSE}
webr_code_labels <- c("setup")
```

{{< include ../../_utils/webr_no_include.qmd >}}

## Output

::::: panel-tabset
## Plot with Two Cohorts

::: {.panel-tabset .nav-justified group="webr"}
## {{< fa regular file-lines sm fw >}} Preview

```{r plot1, test = list(plot_v1 = "plot")}
use_title <- "Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \nby Analyte, Visit: PK Evaluable Patients" # nolint: line_length.
use_subtitle <- "Analyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1 \nPK Parameter:"
use_footnote <- "Program: \nOutput:"

separation_between_barplots <- 1.5

result <- g_lineplot(
  df = adpp,
  variables = control_lineplot_vars(
    x = "Time",
    y = "AVAL",
    group_var = "ARM",
    paramcd = "PARAM1",
    y_unit = "AVALU"
  ),
  alt_counts_df = adpp,
  y_lab = "Cummulative Percentage",
  x_lab = "Time (hours)",
  y_lab_add_paramcd = FALSE,
  y_lab_add_unit = TRUE,
  interval = "mean_sdi",
  whiskers = c("mean_sdi_lwr", "mean_sdi_upr"),
  title = use_title,
  subtitle = use_subtitle,
  caption = use_footnote,
  ggtheme = theme_nest(),
  position = ggplot2::position_dodge(width = 2)
)

plot <- result + theme(plot.caption = element_text(hjust = 0)) +
  scale_x_continuous(breaks = c(12, 24))
plot
```

```{r include = FALSE}
webr_code_labels <- c("plot1")
```

{{< include ../../_utils/webr.qmd >}}
:::

## Plot with Six Cohorts

::: {.panel-tabset .nav-justified group="webr"}
## {{< fa regular file-lines sm fw >}} Preview

In this case we need to process the data further by artificially adding more random rows. Of course this step is not necessary in the case that data already has more cohorts.

```{r plot2, test = list(plot_v2 = "plot")}
adpp_hck <- adpp %>%
  mutate(AVAL + 1 * rnorm(nrow(adpp), mean = 1, sd = 1)) %>%
  mutate(ARM = as.factor(sample(
    c(
      "D: Drug D",
      "E: Drug E",
      "F: Drug F",
      "G: Drug G"
    ),
    nrow(adpp),
    replace = TRUE,
    prob = c(0.4, 0.3, 0.2, 0.1)
  )))

adpp <- bind_rows(adpp, adpp_hck)

use_title <- "Plot of Mean (+/- SD) Cummulative Percentage (%) of Recovered Drug in Urine \nby Analyte, Visit: PK Evaluable Patients" # nolint: line_length.
use_subtitle <- "Analyte: Plasma Drug X \nVisit: CYCLE 1 DAY 1 \nPK Parameter:"
use_footnote <- "Program: \nOutput:"

separation_between_barplots <- 1.5

result <- g_lineplot(
  df = adpp,
  variables = control_lineplot_vars(
    x = "Time",
    y = "AVAL",
    group_var = "ARM",
    paramcd = "PARAM1",
    y_unit = "AVALU"
  ),
  alt_counts_df = adpp,
  y_lab = "Cummulative Percentage",
  x_lab = "Time (hours)",
  y_lab_add_paramcd = FALSE,
  y_lab_add_unit = TRUE,
  interval = "mean_sdi",
  whiskers = c("mean_sdi_lwr", "mean_sdi_upr"),
  title = use_title,
  subtitle = use_subtitle,
  caption = use_footnote,
  ggtheme = theme_nest(),
  position = ggplot2::position_dodge(width = 2)
)

plot <- result + theme(plot.caption = element_text(hjust = 0)) +
  scale_x_continuous(breaks = c(12, 24))
plot
```

```{r include = FALSE}
webr_code_labels <- c("plot2")
```

{{< include ../../_utils/webr.qmd >}}
:::

## Data Setup

```{r setup}
#| code-fold: show
```
:::::

{{< include ../../_utils/save_results.qmd >}}

{{< include ../../repro.qmd >}}

Made with ❤️ by the NEST Team

  • Edit this page
  • Report an issue
Cookie Preferences