Open-source R for the clinical pipeline.
The pharmaverse is a community-curated, opinionated R stack for getting clinical-trial data from raw collection through ADaM analysis datasets and submission-ready tables, listings, and graphs — without leaving the open-source toolchain.
What it is
Founded by Roche, GSK, Atorus, and Pfizer; now backed by sponsors across the pharma industry. The premise: clinical reporting has been SAS-shaped for decades, and the regulatory framework around it (CDISC, FDA submission packages) doesn't actually require SAS — it requires standards-compliant outputs and an auditable workflow. The pharmaverse delivers both, in R, with packages that:
- Implement the CDISC standards (SDTM, ADaM, define-XML, ADaM IG).
- Export submission-grade XPT v5 files the way the FDA expects them.
- Produce TLGs (tables, listings, graphs) with pixel-stable layouts that survive manual review.
- Carry auditable logs and validated package risk scores so QA / Statistical Programming teams can sign off on R the same way they signed off on SAS.
Project home: pharmaverse.org . Code: github.com/pharmaverse .
The clinical pipeline, in R
Each step is one or more pharmaverse packages. Inputs and outputs are CDISC-compliant at every stage.
Raw CRF / EDC data is mapped to Study Data Tabulation Model datasets (DM, AE, EX, LB, VS, …). pharmaverseraw / pharmaversesdtm provide reference datasets for examples and tests.
admiral builds Analysis Data Model datasets (ADSL, ADAE, ADTTE, ADLB) from SDTM with derivation patterns shared across studies. Therapeutic-area extensions: admiralonco / admiralophtha / admiralpeds / admiralvaccine / admiralneuro / admiralmetabolic.
rtables + rlistings + tern + chevron + tlf produce statistician-grade tables, listings, and graphs. Same layout primitives every study, parametrised by analysis spec.
xportr writes XPT v5 files with the variable labels, lengths, and metadata regulators require. metacore / metatools manage the define-XML metadata that travels with them.
Package families we mirror
Live mirror state →Core ADaM dataset construction.
Internal dev utilities for the admiral family.
Oncology-specific ADaM derivations (RECIST, response, TTE).
Ophthalmology-specific ADaM patterns.
Pediatrics: growth charts, age-windowed visits.
Vaccine trials: reactogenicity, immunogenicity datasets.
Neurology endpoints and scales.
Metabolic / endocrine derivations.
Reference SDTM datasets used as examples.
Reference ADaM datasets — the canonical worked example.
Layout engine for clinical TLGs — programmable, pixel-stable.
Patient-level listings with the same layout DSL as rtables.
Statistical layouts for rtables (descriptive, KM, MMRM, GEE).
Boilerplate templates for common clinical TLGs.
Common TLF formatters — fonts, footnotes, headers.
Number / date formatting primitives.
Write XPT v5 files for FDA / PMDA submission.
In-memory metadata model for studies.
Apply the metacore model to ADaM construction.
Auditable run logs — who, when, with what inputs.
Quantify package risk for validation packets.
Compare two data frames cell-by-cell — used for regression / SAS parity tests.
Tabular data summary in a tidyverse idiom.
Staggered DiD estimators — methodology rather than CDISC.
Umbrella + entry-point package; pointers to the docs and Slack.
Why it matters for biostatistics
Pharmaceutical statistical programming has historically been a SAS-only world because the FDA submission packet, the QA processes, and the regulator-side reviewers were all built around it. The pharmaverse is the credible, opinionated R alternative — same outputs, same audit trail, open source.
- Reproducibility: every step is plain R code, version-pinned via renv. No black-box procs.
- Cross-study reuse: ADSL / ADTTE construction is a function call, not a per-study macro.
- Validation packets: riskmetric scores + reverse dependency tests give Statistical Programming + QA the artefacts they need to sign off.
- Audit trail: logrx wraps a programme and records inputs, outputs, environment, and Git commit — what regulators look for.
Where it lives in our mirror
Every pharmaverse package above is on CRAN, and every CRAN package is in our bucket:
s3://ndexr/cran/src/contrib/admiral_<ver>.tar.gz
s3://ndexr/cran/src/contrib/rtables_<ver>.tar.gz
s3://ndexr/cran/src/contrib/xportr_<ver>.tar.gz
... and so on across the family.
Live coverage at
repo.ndexr.io
(filter
admiral
,
pharmaverse
,
rtables
, etc. in the package column).