TLG Catalog - Dev
  • Dev
    • Stable
  1. Listings
  2. Pharmacokinetic
  3. ADAL01
  • 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. Listings
  2. Pharmacokinetic
  3. ADAL01

ADAL01

Listing of Anti-Drug Antibody Data for Patients with At Least One ADA Sample Datum by Treatment


Output

  • Standard Listing
  • Data Setup
  • Preview
  • Try this using WebR
Code
lsting <- as_listing(
  out,
  key_cols = c("USUBJID", "VISIT"),
  disp_cols = names(out),
  main_title = paste0(
    "Listing of Anti-", drugcd, " Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, ",
    "PK Population\nProtocol: ", drug_a
  ),
  subtitles = paste("\nTreatment Group:", trt),
  main_footer = "(1) Minimum reportable titer = 1.10 (example only)
(2) Minimum reportable titer = 1.10 (example only)
(3) Minimum reportable concentration = 3.0 (example only)
BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,
ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)
ROXXXXXXX is also known as [drug]"
)

tail(lsting, 50)[1:24, ]
Listing of Anti-R1800000 Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, PK Population
Protocol: A: Drug X Antibody

Treatment Group: A: Drug X

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
                                                       ADA     NAb                  Sample        Patient        Patient                   
                                            Nominal   Titer   Titer    Sample    Neutralizing    Treatment      Treatment         Drug     
                                             Time     Units   Units     ADA        Antibody     Emergent ADA   Emergent NAb   Concentration
     Subject ID         Visit   Timepoint    (hr)      (1)     (2)     Result    (NAb) Result      Status         Status       (ug/mL) (3) 
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
AB12345-PAK-11-id-145   Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Negative       Negative          N/A     
                        Day 2      24H       1.00      N/A     N/A    Negative     Negative                                        N/A     
AB12345-PAK-11-id-187   Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.16    1.16    Positive     Positive                                        N/A     
AB12345-PAK-11-id-268   Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Negative       Negative          N/A     
                        Day 2      24H       1.00      N/A     N/A    Negative     Negative                                        N/A     
AB12345-PAK-11-id-68    Day 1    Predose     0.00     1.08    1.08    Positive     Positive       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.19    1.19    Positive     Positive                                        N/A     
AB12345-PAK-12-id-328   Day 1    Predose     0.00     1.11    1.11    Positive     Positive       Negative       Negative          N/A     
                        Day 2      24H       1.00      N/A     N/A    Negative     Negative                                        N/A     
AB12345-PAK-12-id-85    Day 1    Predose     0.00     1.06    1.06    Positive     Positive       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.35    1.35    Positive     Positive                                        N/A     
AB12345-PAK-13-id-251   Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.14    1.14    Positive     Positive                                        N/A     
AB12345-PAK-14-id-117   Day 1    Predose     0.00     1.04    1.04    Positive     Positive       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.06    1.06    Positive     Positive                                        N/A     
AB12345-PAK-15-id-314   Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.02    1.02    Positive     Positive                                        N/A     
AB12345-PAK-2-id-213    Day 1    Predose     0.00     1.24    1.24    Positive     Positive       Negative       Negative          N/A     
                        Day 2      24H       1.00      N/A     N/A    Negative     Negative                                        N/A     
 AB12345-RUS-1-id-52    Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Positive       Negative          N/A     
                        Day 2      24H       1.00     1.22    1.22    Positive     Positive                                        N/A     
AB12345-RUS-13-id-70    Day 1    Predose     0.00      N/A     N/A    Negative     Negative       Negative       Negative          N/A     
                        Day 2      24H       1.00      N/A     N/A    Negative     Negative                                        N/A     
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

(1) Minimum reportable titer = 1.10 (example only)
(2) Minimum reportable titer = 1.10 (example only)
(3) Minimum reportable concentration = 3.0 (example only)
BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,
ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)
ROXXXXXXX is also known as [drug]
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(dplyr)
library(rlistings)
library(random.cdisc.data)

adpc <- cadpc
adab <- cadab

trt <- "A: Drug X"
min_titer_ada <- 1.10
min_titer_nab <- 1.10
min_conc <- 3.0

if (unique(adpc$RELTMU) == "hr") adpc$NFRLT <- adpc$NFRLT / 24
adpc_f <- adpc %>% filter(PARAM == "Plasma Drug X")


drug_a <- unique(adab$PARCAT1)[1]
drugcd <- unique(adab$PARAMCD[adab$PARAM == "Antibody titer units"])[1]
conc_u <- unique(adpc_f$AVALU)

adpc_f <- adpc_f %>% select(USUBJID, NFRLT, AVAL)
adab1 <- adab %>%
  filter(ARM == trt) %>%
  select(-PARAM, -PARCAT1, -AVALC, -AVALU) %>%
  left_join(
    adpc_f,
    by = c("USUBJID", "NFRLT"),
    suffix = c("_ab", "_pk")
  ) %>%
  filter(!is.na(AVAL_ab))

adab_f <- adab1 %>%
  tidyr::pivot_wider(
    id_cols = c(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk),
    names_from = PARAMCD,
    values_from = AVAL_ab
  )
# Select the necessary ADA parameters
adab_f1 <- adab_f %>%
  select(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk, R1800000, R1800001, RESULT1, RESULT2, ADASTAT1, ADASTAT2) %>%
  mutate(ADA = R1800000, NAB = R1800001) %>%
  select(-R1800000, -R1800001)


# Find subject level ADA status
adab_s <- adab_f1 %>%
  select(USUBJID, ADASTAT1, ADASTAT2) %>%
  filter(!is.na(ADASTAT1), !is.na(ADASTAT2))
# Find time-vary ADA records
adab_r <- adab_f1 %>%
  select(-ADASTAT1, -ADASTAT2) %>%
  filter(!is.na(VISIT))

adab_o <- adab_r %>% left_join(adab_s, by = "USUBJID")

out <- adab_o %>%
  mutate(AVAL_pk = ifelse(AVAL_pk == 0, NA, AVAL_pk)) %>%
  mutate(NFRLT = as.numeric(NFRLT)) %>%
  mutate(
    RESULT1 = ifelse(RESULT1 == 1, "Positive", "Negative"),
    RESULT2 = ifelse(RESULT2 == 1, "Positive", "Negative"),
    ADASTAT1 = ifelse(ADASTAT1 == 1, "Positive", "Negative"),
    ADASTAT2 = ifelse(ADASTAT2 == 1, "Positive", "Negative"),
    # ADA = ifelse(ADA < min_titer_ada, NA, ADA),
    # NAB = ifelse(NAB < min_titer_nab, NA, NAB),
    AVAL_pk = ifelse(AVAL_pk < min_conc, "BLQ", AVAL_pk)
  ) %>%
  select(
    USUBJID, VISIT, ISTPT, NFRLT, ADA, NAB, RESULT1, RESULT2, ADASTAT1, ADASTAT2,
    AVAL_pk
  ) %>%
  mutate_at(
    c("NFRLT", "ADA", "NAB", "AVAL_pk"),
    ~ ifelse(is.na(.), replace(., is.na(.), "N/A"), format(round(., 2), nsmall = 2))
  )

var_labels(out) <- names(out)

out <- out %>%
  arrange(USUBJID, VISIT, desc(ISTPT), NFRLT) %>%
  group_by(USUBJID) %>%
  mutate(
    ADASTAT1 = ifelse(row_number() == 1, ADASTAT1, ""),
    ADASTAT2 = ifelse(row_number() == 1, ADASTAT2, "")
  ) %>% # Keep only the first value in ADA status, set others to ""
  var_relabel(
    USUBJID = "Subject ID",
    VISIT = "Visit",
    ISTPT = "Timepoint",
    NFRLT = "Nominal\nTime\n(hr)",
    RESULT1 = "Sample\nADA\nResult",
    ADA = "ADA\nTiter\nUnits\n(1)",
    ADASTAT1 = "Patient\nTreatment\nEmergent ADA\nStatus",
    RESULT2 = "Sample\nNeutralizing\nAntibody\n(NAb) Result",
    NAB = "NAb\nTiter\nUnits\n(2)",
    ADASTAT2 = "Patient\nTreatment\nEmergent NAb\nStatus",
    AVAL_pk = paste0("Drug\nConcentration\n(", conc_u, ") (3)")
  )

Reproducibility

Timestamp

[1] "2026-06-13 18:28:00 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)
 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)
 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)
 fastmap             1.2.0       2024-05-15 [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)
 glue                1.8.1       2026-04-17 [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)
 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)
 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~
 rlang               1.2.0       2026-04-06 [1] CRAN (R 4.5.2)
 rlistings         * 0.2.13.9002 2026-01-03 [1] https://p~
 rmarkdown           2.31        2026-03-26 [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)
 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

MHL01
PKCL01
Source Code
---
title: ADAL01
subtitle: Listing of Anti-Drug Antibody Data for Patients with At Least One ADA Sample Datum by Treatment
---

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

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

```{r setup, message=FALSE, echo=FALSE}
#| code-fold: show

library(dplyr)
library(rlistings)
library(random.cdisc.data)

adpc <- cadpc
adab <- cadab

trt <- "A: Drug X"
min_titer_ada <- 1.10
min_titer_nab <- 1.10
min_conc <- 3.0

if (unique(adpc$RELTMU) == "hr") adpc$NFRLT <- adpc$NFRLT / 24
adpc_f <- adpc %>% filter(PARAM == "Plasma Drug X")


drug_a <- unique(adab$PARCAT1)[1]
drugcd <- unique(adab$PARAMCD[adab$PARAM == "Antibody titer units"])[1]
conc_u <- unique(adpc_f$AVALU)

adpc_f <- adpc_f %>% select(USUBJID, NFRLT, AVAL)
adab1 <- adab %>%
  filter(ARM == trt) %>%
  select(-PARAM, -PARCAT1, -AVALC, -AVALU) %>%
  left_join(
    adpc_f,
    by = c("USUBJID", "NFRLT"),
    suffix = c("_ab", "_pk")
  ) %>%
  filter(!is.na(AVAL_ab))

adab_f <- adab1 %>%
  tidyr::pivot_wider(
    id_cols = c(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk),
    names_from = PARAMCD,
    values_from = AVAL_ab
  )
# Select the necessary ADA parameters
adab_f1 <- adab_f %>%
  select(USUBJID, VISIT, NFRLT, ISTPT, AVAL_pk, R1800000, R1800001, RESULT1, RESULT2, ADASTAT1, ADASTAT2) %>%
  mutate(ADA = R1800000, NAB = R1800001) %>%
  select(-R1800000, -R1800001)


# Find subject level ADA status
adab_s <- adab_f1 %>%
  select(USUBJID, ADASTAT1, ADASTAT2) %>%
  filter(!is.na(ADASTAT1), !is.na(ADASTAT2))
# Find time-vary ADA records
adab_r <- adab_f1 %>%
  select(-ADASTAT1, -ADASTAT2) %>%
  filter(!is.na(VISIT))

adab_o <- adab_r %>% left_join(adab_s, by = "USUBJID")

out <- adab_o %>%
  mutate(AVAL_pk = ifelse(AVAL_pk == 0, NA, AVAL_pk)) %>%
  mutate(NFRLT = as.numeric(NFRLT)) %>%
  mutate(
    RESULT1 = ifelse(RESULT1 == 1, "Positive", "Negative"),
    RESULT2 = ifelse(RESULT2 == 1, "Positive", "Negative"),
    ADASTAT1 = ifelse(ADASTAT1 == 1, "Positive", "Negative"),
    ADASTAT2 = ifelse(ADASTAT2 == 1, "Positive", "Negative"),
    # ADA = ifelse(ADA < min_titer_ada, NA, ADA),
    # NAB = ifelse(NAB < min_titer_nab, NA, NAB),
    AVAL_pk = ifelse(AVAL_pk < min_conc, "BLQ", AVAL_pk)
  ) %>%
  select(
    USUBJID, VISIT, ISTPT, NFRLT, ADA, NAB, RESULT1, RESULT2, ADASTAT1, ADASTAT2,
    AVAL_pk
  ) %>%
  mutate_at(
    c("NFRLT", "ADA", "NAB", "AVAL_pk"),
    ~ ifelse(is.na(.), replace(., is.na(.), "N/A"), format(round(., 2), nsmall = 2))
  )

var_labels(out) <- names(out)

out <- out %>%
  arrange(USUBJID, VISIT, desc(ISTPT), NFRLT) %>%
  group_by(USUBJID) %>%
  mutate(
    ADASTAT1 = ifelse(row_number() == 1, ADASTAT1, ""),
    ADASTAT2 = ifelse(row_number() == 1, ADASTAT2, "")
  ) %>% # Keep only the first value in ADA status, set others to ""
  var_relabel(
    USUBJID = "Subject ID",
    VISIT = "Visit",
    ISTPT = "Timepoint",
    NFRLT = "Nominal\nTime\n(hr)",
    RESULT1 = "Sample\nADA\nResult",
    ADA = "ADA\nTiter\nUnits\n(1)",
    ADASTAT1 = "Patient\nTreatment\nEmergent ADA\nStatus",
    RESULT2 = "Sample\nNeutralizing\nAntibody\n(NAb) Result",
    NAB = "NAb\nTiter\nUnits\n(2)",
    ADASTAT2 = "Patient\nTreatment\nEmergent NAb\nStatus",
    AVAL_pk = paste0("Drug\nConcentration\n(", conc_u, ") (3)")
  )
```

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

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

## Output

:::: panel-tabset
## Standard Listing

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

```{r lsting, test = list(lsting = "lsting")}
lsting <- as_listing(
  out,
  key_cols = c("USUBJID", "VISIT"),
  disp_cols = names(out),
  main_title = paste0(
    "Listing of Anti-", drugcd, " Antibody Data for Patients with At Least One ADA Sample Datum by Treatment, ",
    "PK Population\nProtocol: ", drug_a
  ),
  subtitles = paste("\nTreatment Group:", trt),
  main_footer = "(1) Minimum reportable titer = 1.10 (example only)
(2) Minimum reportable titer = 1.10 (example only)
(3) Minimum reportable concentration = 3.0 (example only)
BLQ = Below Limit of Quantitation, LTR = Lower than Reportable, N/A = Not Applicable, N.C. = Not Calculable,
ADA = Anti-Drug Antibodies (is also referred to as ATA, or Anti-Therapeutic Antibodies)
ROXXXXXXX is also known as [drug]"
)

tail(lsting, 50)[1:24, ]
```

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

{{< 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