A modular R package for simulating realistic clinical trial datasets, including patient generation, treatment allocation, outcomes (continuous, binary, ordinal, longitudinal), survival, dropout, adverse events, and ADaM-compatible export.
🚀 Features 📋 Patient simulation with demographic and stratified characteristics
⚖️ Flexible treatment allocation with customizable randomization ratios
📈 Outcome simulation: continuous, binary, ordinal, and longitudinal
💀 Survival endpoint generation with censoring
🚪 Dropout modeling, including AE-related dropout logic
❗ Adverse event simulation by treatment arm and severity
🌍 Multilevel support (e.g., site, region, or country-level simulation)
📤 Export to CDISC ADaM-like ADSL format
🧪 Analysis flags: ITT, SAF, PPS
📦 Designed for SAP prototyping, training, and simulation-based power analysis
📦 Installation Install from GitHub using devtools:
install.packages(“devtools”)
devtools::install_github("JorAlEs/clinicalTrialSimulator")🔧 Requirements R version ≥ 4.1.0
Suggested packages:
tidyverse
survival
lubridate
data.table
glue
testthat (for unit testing)
roxygen2, devtools, pkgdown (for development)
Install dependencies with:
install.packages(c("tidyverse", "survival", "lubridate", "data.table", "glue"))🧰 Main Functions Function Purpose simulate_patients() Generate baseline demographic data (age, sex, stratification, site) simulate_allocation() Assign treatments with ratio and stratification simulate_outcomes() Simulate outcomes (continuous, binary, ordinal, longitudinal) simulate_survival() Generate survival times and censoring simulate_dropout() Assign dropout flags and dropout times simulate_adverse_events() Simulate adverse events per arm and severity simulate_post_dropout_followup() Generate visit windows post-dropout or censoring export_adam_format() Export dataset in ADaM-like ADSL format
📖 Vignette See the full simulation workflow in the package vignette:
vignette("clinicalTrialSimulator_workflow")Includes:
Full pipeline from patient generation to ADSL export
Longitudinal outcome simulation
AE-triggered dropout scenarios
Site-level simulation
🧪 Testing Unit tests are included using testthat. To run all tests:
devtools::test()🛠 Roadmap Planned features for v1.1 and beyond:
Export to additional ADaM domains (ADAE, ADLB, ADVS)
Integration with Shiny for interactive simulation
Quarto reporting templates
AE-based discontinuation logic
GUI-powered parameter input for non-programmers
📜 License This package is released under the MIT License. Feel free to use, modify, and distribute with attribution.
🙋 Contributing & Feedback I welcome suggestions, feature requests, and collaborators!
🔗 Citation (example) Alcántara J. (2025). clinicalTrialSimulator: Modular Clinical Trial Data Simulation in R. Version 1.0. https://github.com/JorAlEs/clinicalTrialSimulator