Skip to contents

Generate synthetic ADaM (Analysis Data Model) datasets from real clinical trial data. synadam preserves the structure of real ADaM datasets (column names, relationships, ranges) while removing identifiable patient information — enabling development and testing of analysis pipelines without access to real data.

Key Features

  • Privacy-preserving: Synthetic data maintains structure without exposing identifiable patient information.
  • Multiple dataset types: Supports ADSL, BDS (e.g. ADLB), OCCDS (e.g. ADAE), and TTE (e.g. ADTTE).
  • Auto-configuration: generate_study_config() scans your ADaM directory and infers dataset types and column roles automatically.
  • Reproducible: Deterministic output via random seeds.

Installation

Install the CRAN release version:

install.packages("synadam")

Or install the latest, development version from GitHub:

# install.packages("remotes")
remotes::install_github("Novartis/synadam")

Quick Start

library(synadam)

# 1. Auto-generate a YAML config from your ADaM directory. The config is
#    written into output_dir, alongside where the synthetic data will land.
yaml_path <- generate_study_config(
 adam_dir   = "/path/to/adam_data/",
 output_dir = "./syn_data",
 seed       = 42
)

# 2. Review the generated YAML, then simulate
simulate_study(yaml_path)

Synthetic datasets are saved as individual .rds files (e.g., syn_adsl.rds, syn_adlb.rds) in the output directory.

Please visit the documentation site for more details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This package is licensed under the MIT License. See LICENSE for details.