| Analysis datasets used in this report | ||
| Dataset | Structure | Key derived variables |
|---|---|---|
| ADSL | One record per subject | TRT01P/TRT01A, SAFFL, ITTFL, PPROTFL, COMPFL, DCSREAS, AGEGR1 |
| ADAE | One record per subject per adverse event | TRTEMFL (subset to TRUE), RELFL, DERMFL |
| ADCM | One record per subject per medication | CMCLAS, CMDECOD (sentence case for display) |
| ADEG | One record per subject per ECG parameter per visit | BNRIND, ANRIND (reference-range indicators) |
| ADEX | One record per subject | AVAL (total exposure days), derived from EX |
| ADLB | One record per subject per lab test per visit | BNRIND, ANRIND, ANRHI (upper limit of reference range) |
| ADMH | One record per subject per medical history finding | MHBODSYS, MHDECOD (sentence case for display) |
| ADTTE | One record per subject per time-to-event parameter | AVAL, CNSR, derived with admiral::derive_param_tte() |
| ADVS | One record per subject per vital-signs test per visit | BNRIND, ANRIND (reference-range indicators) |
Appendix C — ADaM Reviewer’s Guide
This appendix describes the analysis datasets behind this report, in the spirit of a CDISC ADaM Reviewer’s Guide (ADRG): each dataset’s structure, its key derived variables, and the population flags used to select analysis subsets. It is a narrative companion to the metadata excerpt in Appendix B, not a substitute for it.
C.1 Dataset overview
All nine datasets derive from the CDISC pilot study (CDISCPILOT01) shipped in pharmaverseadam, restricted in R/00-adam.R to the three randomised treatment arms. Two additions come from outside pharmaverseadam: ADTTE is not shipped and is derived from ADSL and ADAE, and the reason for discontinuation is taken from the SDTM disposition domain in pharmaversesdtm, because the pilot ADSL does not carry one.
R/00-adam.R also writes data/counts.rds, holding the number of subjects screened, randomised, treated and completing, and the number excluded from ADTTE. Those counts describe subjects the analysis datasets exclude, so they cannot live in an analysis dataset; keeping them in the same snapshot is what lets the subject flow figure agree with the tables.
C.2 ADSL: Subject-level analysis dataset
ADSL carries one record per randomised subject and the population flags that select analysis subsets throughout this report:
SAFFL: safety population, subjects who received at least one dose of study drug.ITTFL: intention-to-treat population; every randomised subject is"Y", since all were randomised and dosed. Intention-to-treat analyses count subjects underTRT01Pregardless of what they actually received.PPROTFL: per-protocol population, approximated as safety-population completers. The pilot ships no protocol deviation dataset; the only deviation information available is discontinuation for protocol violation, and those subjects are already excluded as non-completers.COMPFL: completers, derived fromEOSSTT == "COMPLETED".DCSREAS: reason for discontinuation, merged from the SDTM disposition domain and set to missing for subjects who completed, so that the reason rows of the disposition table sum to the discontinuation count.
TRT01P and TRT01A (planned and actual treatment for period 01) drive the by-treatment columns of this report, and they do not agree for every subject: 12 subjects randomised to the high dose received the low dose. Population, disposition, baseline and efficacy outputs are therefore reported by TRT01P, and safety outputs by TRT01A, so the group sizes differ between the two families of tables by design.
C.3 ADAE: Adverse events analysis dataset
ADAE is restricted to treatment-emergent events (TRTEMFL == "Y") reported by safety-population subjects. Two flags derived in R/00-adam.R are used beyond the standard ADaM variables:
RELFL: related to study drug, derived fromAEREL %in% c("PROBABLE", "POSSIBLE", "RELATED").DERMFL: dermatologic event, derived fromAEBODSYS == "SKIN AND SUBCUTANEOUS TISSUE DISORDERS"; this flag identifies the events contributing to the primary endpoint.
C.4 ADCM and ADMH: Concomitant medications and medical history
ADCM carries one record per medication per safety-population subject, summarised by ATC level 1 drug class (CMCLAS) and preferred term (CMDECOD). Medications the pilot study left uncoded are reported under a single Uncoded class rather than dropped.
ADMH carries one record per medical history finding. The primary diagnosis of Alzheimer’s disease is recorded once for every subject with no coded body system; it is the indication rather than a medical history finding, so R/00-adam.R excludes it. Medical history is a baseline characteristic, so it is summarised on the randomised population by planned treatment.
C.5 ADEX: Exposure analysis dataset
ADEX carries one record per subject with total exposure duration (AVAL, parameter TDURD), restricted to the safety population. Table 14.3.5 draws directly from this dataset without further derivation.
C.6 ADLB, ADVS and ADEG: Laboratory, vital-signs and ECG analysis datasets
These three share the same structure: one record per subject per test per visit, restricted to the safety population, with a baseline reference-range indicator (BNRIND) carried onto every post-baseline record alongside that record’s own indicator (ANRIND). That shared structure is what lets R/tlf.R’s tlf_shift() compute the shift-from-baseline tables (Table 14.3.4.1 to Table 14.3.4.4, Table 14.3.7 and Table 14.3.8) identically for all three domains, keyed only by PARAM.
ADEG differs in two ways. Its analysis records are averages of replicate readings, so they carry DTYPE == "AVERAGE" rather than a missing DTYPE, and only the rederived QTcF, QTcB, QTlc, QT, RR and heart-rate parameters carry reference-range indicators; the ECG interpretation parameter does not.
ADLB additionally carries ANRHI, the upper limit of the reference range for each record, which is what makes the liver-injury criteria in Table 14.3.4.5 expressible as multiples of that limit.
C.7 ADTTE: Time-to-event analysis dataset
ADTTE is derived, not sourced, since pharmaverseadam does not ship a time-to-event dataset for this study. R/00-adam.R builds it with admiral::derive_param_tte() from two sources:
- An event source, the first dermatologic treatment-emergent adverse event per subject (
ASTDT, one row per subject viaslice_min()). - A censoring source, the subject’s last date known to be alive (
LSTALVDT), for subjects without a qualifying event.
AVAL is the resulting time to event in days, and CNSR distinguishes events (0) from censoring (1). Records without a positive AVAL are dropped, and the number of subjects that removes is recorded in data/counts.rds so the analysis population can be reconciled with the safety population. TRT01P, TRT01A, SAFFL, PPROTFL, AGE, AGEGR1 and SEX are merged back from ADSL so that the primary and supportive analyses in the primary and secondary endpoints chapter need no further joins.