⚕ No for
loop in clinical trial simulation ⚕
TrialSimulator
is a system for declaratively implementing clinical trial simulations, inspired by the modular grammar of trial design. You provide the components—arms, endpoint-generation rules, milestones, and analysis methods—specify how they are combined under fixed or adaptive designs, and TrialSimulator
takes care of the details, allowing you to focus on the design while it handles the mechanics.
TrialSimulator
provides a suite of helper functions to support the full trial life cycle.
- For data generation, it offers utilities to sample endpoints from common distributions.
- For adaptation, it includes execution functions that modify trial settings in place.
- For analysis, it implements methods such as regression models, group sequential tests, graphical multiple testing procedures, combination tests, and closed tests. These tools are entirely optional, but they make it simple to construct and evaluate complex trial designs without sacrificing flexibility.
Shiny App
An online version of this app is hosted on shinyapps.io.
Validation
The validation documents for this R package are hosted here and are continuously updated.
Installation
Release
You can install the current release version from CRAN
with:
install.packages("TrialSimulator")
Development
You can install the development version from GitHub with:
if (!require("remotes")) {
install.packages("remotes")
}
remotes::install_github(
"zhangh12/TrialSimulator",
build_manual = TRUE,
build_vignettes = TRUE,
force = TRUE
)
Getting Started
TrialSimulator
is designed with a modular architecture, allowing users to systematically construct and simulate clinical trials in a structured and flexible manner. The simulation process is broken down into three key steps:
- Defining Endpoints: Specify the treatment endpoints that will be evaluated throughout the trial.
- Specifying Milestone: Establish the conditions under which specific milestones (e.g., interim analysis, futility assessment, or stopping rules) will be triggered.
- Defining Actions for Milestones: Determine the appropriate actions to be taken once a milestone is triggered, such as adjusting enrollment, terminating treatment arms, or conducting statistical analysis.
To efficiently utilize TrialSimulator
for clinical trial simulations, we recommend reading the following vignettes in order:
- Define endpoints and arms
- Condition system for milestones
- Define actions for milestones
- Examples: fixed design
- Examples: adaptive design
- Seamless design with dose selection, interim, and multiple endpoints
- Response-adaptive design
- Dose-ranging study
- [Enrichment design] vignette is under development.
- [Platform trial] vignette is under development.
- [Basket trial] vignette is under development.
- Built-in methods supported in
TrialSimulator
- Wrapper functions of common statistical methods for estimating treatment effect
- [Group sequential test] See
?GroupSequentialTest
. - [Graphical testing procedure] See
?GraphicalTesting
. - [Combination test based on independent increment] vignette is under development.