Home Accueil / Blog / Regulatory Réglementaire

CDISC compliance without a SAS team:
what's possible in 2026

Conformité CDISC sans équipe SAS :
ce qui est possible en 2026

TL;DR

SAS is the traditional tool for CDISC submissions. It is also expensive, requires specialist skills, and is increasingly unnecessary. R and Python can produce FDA-acceptable SDTM and ADaM datasets, if you know how to do it correctly.

Pourquoi SAS est devenu le standard CDISC

La FDA a commencé à exiger des soumissions électroniques dans les années 1990. SAS était le logiciel statistique dominant dans chaque grande entreprise pharma. Quand CDISC a développé les standards SDTM et ADaM dans les années 2000, ils ont été opérationnalisés en SAS. Il en résulte une dépendance de sentier : la guidance d'implémentation CDISC est écrite avec des exemples SAS, les outils de revue FDA ont été construits pour valider les fichiers de transport SAS.

La réalité réglementaire en 2026

Le catalogue des standards de données FDA spécifie les exigences de format CDISC, pas SAS. Le format XPORT est toujours requis pour la soumission, mais il peut être généré depuis R. Plusieurs entreprises ont maintenant soumis avec succès à la FDA et à l'EMA en utilisant des datasets CDISC générés en R. Le consortium Pharmaverse existe spécifiquement pour rendre l'implémentation CDISC en R praticable.

Ce que R peut faire : SDTM avec Pharmaverse

Le Pharmaverse est un ensemble curé de packages R pour le reporting clinique. Pour SDTM, les packages clés sont sdtm.oak pour le mapping des données brutes aux domaines SDTM, et xportr pour produire des fichiers XPT avec les métadonnées appropriées.

library(sdtm.oak)
library(xportr)

dm <- raw_demographics %>%
  derive_dm_age(age_var = "age_at_consent", ageu = "YEARS") %>%
  derive_dm_sex(sex_var = "sex_at_birth")

dm %>%
  xportr_label(metadata = dm_metadata, domain = "DM") %>%
  xportr_write("DM.xpt")

Construire un dataset ADaM en R

Pour ADaM, le package admiral fournit une API tidy pour construire ADSL, ADAE, ADLB et autres datasets standards. Chaque fonction derive_* correspond à une étape de dérivation documentée dans le guide d'implémentation ADaM CDISC.

library(admiral)

adsl <- dm %>%
  derive_vars_merged(dataset_add = ds,
    new_vars = exprs(EOSDT = DSSTDTC),
    filter_add = DSCAT == "DISPOSITION EVENT") %>%
  derive_var_trtdurd() %>%
  xportr_write("ADSL.xpt")

Validation sans SAS : xportr et Pinnacle 21

Le workflow de validation standard est Pinnacle 21 Community (gratuit). Il accepte les fichiers XPT quelle que soit leur origine. Le package xportr ajoute une couche de validation pre-soumission en R, attrapant les erreurs de métadonnées avant d'écrire le fichier XPT.

Ce pour quoi vous avez encore besoin d'un spécialiste

R peut faire le gros du travail, mais certaines choses nécessitent encore une expertise métier : la génération du Define.xml, le guide du réviseur SDTM/ADaM (un document Word écrit par un humain), et l'alignement avec la terminologie contrôlée CDISC, surtout pour le codage des événements indésirables (MedDRA) et les paramètres de laboratoire.

Une feuille de route pratique

Pour une petite équipe biotech préparant une première soumission sans infrastructure SAS : setup de l'environnement Pharmaverse (semaines 1-2), construction de l'ADSL et du dataset d'efficacité primaire (semaines 3-4), construction d'ADAE et ADLB avec génération du Define.xml (semaines 5-6), puis documentation continue dans les guides du réviseur.


À retenir

La conformité CDISC sans SAS est non seulement possible, c'est maintenant un chemin bien balisé pour les petites équipes biotech. L'écosystème Pharmaverse a atteint la maturité de production. Le gap restant n'est pas technique: c'est l'expertise métier pour prendre les bonnes décisions de mapping.

Why SAS became the CDISC default

The FDA began requiring electronic submissions in the 1990s. SAS was the dominant statistical software at every major pharma company. When CDISC developed SDTM and ADaM standards in the 2000s, they were operationalized in SAS. FDA reviewers learned to use SAS. CROs built their entire data management infrastructure around it.

The result is a path dependency: CDISC implementation guidance is written with SAS examples, FDA review tools (JMP Clinical, Pinnacle 21) were built to validate SAS transport files, and the people who know how to do CDISC submissions learned on SAS.

None of this means SAS is technically required. It means the ecosystem developed around SAS.

The regulatory reality in 2026

The FDA's data standards catalog specifies CDISC format requirements, not SAS. The Study Data Technical Conformance Guide makes no mention of a required software. XPORT format (the SAS transport file format) is still required for submission, but it can be generated from R.

Several companies have now submitted successfully to FDA and EMA using R-generated CDISC datasets. Roche, GSK, and others have published their open-source tooling. The Pharmaverse consortium exists specifically to make R-based CDISC implementation tractable.

What R can do: SDTM with Pharmaverse

The Pharmaverse is a curated set of R packages for clinical reporting. For SDTM, the key packages are sdtm.oak (mapping raw data to SDTM domains) and xportr (producing XPT files with proper metadata).

library(sdtm.oak)
library(xportr)
library(dplyr)

# Map raw demographics to SDTM DM domain
dm <- raw_demographics %>%
  derive_dm_age(
    age_var = "age_at_consent",
    ageu    = "YEARS"
  ) %>%
  derive_dm_sex(sex_var = "sex_at_birth") %>%
  assign_ct(
    ct_spec = load_ct_spec("ct_dm.yaml"),
    col_var = "RACE"
  )

# Write XPT with proper labels and formats
dm %>%
  xportr_label(metadata = dm_metadata, domain = "DM") %>%
  xportr_format(metadata = dm_metadata, domain = "DM") %>%
  xportr_write("DM.xpt")

The output is a properly structured XPT file that passes Pinnacle 21 validation with no structural errors.

Building an ADaM dataset in R

For ADaM, the admiral package (developed by a Roche-GSK consortium and now maintained by Pharmaverse) provides a tidy, pipe-based API for building ADSL, ADAE, ADLB, and other standard datasets.

library(admiral)

# Build ADSL from SDTM DM, DS, EX
adsl <- dm %>%
  derive_vars_merged(
    dataset_add = ds,
    new_vars = exprs(EOSDT = DSSTDTC),
    filter_add = DSCAT == "DISPOSITION EVENT"
  ) %>%
  derive_var_trtdurd() %>%
  derive_var_disposition_status(
    dataset_ds = ds,
    new_var = EOSSTT,
    status_var = DSDECOD
  )

adsl %>%
  xportr_label(adsl_spec, "ADSL") %>%
  xportr_write("ADSL.xpt")

The admiral API is verbose but structured to mirror the CDISC ADaM implementation guide. Each derive_* function corresponds to a documented derivation step.

Validation without SAS: xportr and Pinnacle 21

The standard validation workflow for CDISC datasets is Pinnacle 21 Community (free) or Enterprise. It accepts XPT files regardless of how they were generated. The checks are against CDISC conformance rules, not against SAS.

The xportr package adds a pre-submission validation layer in R: it enforces variable labels, formats, and lengths before writing the XPT file, catching metadata errors that would otherwise surface in Pinnacle 21.

What you still need a specialist for

R can do the heavy lifting, but some things still require domain expertise:

  • Define.xml generation: the submission metadata file. Tools exist (metacore, defineR) but the output requires careful review against FDA requirements.
  • STDM/ADaM reviewer's guide: this is a Word document written by a human who understands both the trial design and CDISC. No tool generates it.
  • Controlled terminology alignment: mapping your data collection terms to CDISC CT requires judgment, especially for adverse event coding (MedDRA) and lab parameters (LOINC/CDISC CT).

A practical roadmap

For a small biotech team preparing a first submission with no SAS infrastructure:

  • Week 1-2: Set up Pharmaverse environment (renv, admiral, xportr, Pinnacle 21). Build ADSL for your study.
  • Week 3-4: Build primary efficacy ADaM dataset (typically ADEFF or ADRS). Run through Pinnacle 21. Resolve structural errors.
  • Week 5-6: Build ADAE and ADLB. Generate Define.xml. Review against FDA study data technical conformance guide.
  • Ongoing: Document derivations in annotated SDTM and ADaM reviewer's guides.

Key takeaway

CDISC compliance without SAS is not only possible, it is now a well-trodden path for small biotech teams. The Pharmaverse ecosystem has reached production maturity. The remaining gap is not technical: it is the domain expertise to make correct mapping decisions, and documentation that satisfies FDA reviewers.

AM

Aslane Mortreau

Freelance Data & AI specialist working with pharmaceutical, biotech, and cosmetic R&D teams. Statistical modeling, analytical pipelines, and custom applications.

Spécialiste Data & IA freelance travaillant avec des équipes R&D pharmaceutiques, biotech et cosmétiques. Modélisation statistique, pipelines analytiques et applications sur mesure.