Reproducible R toolkit for adaptive interim monitoring and familywise error control with:
- Closed testing and combination tests (
fisher,inverse_normal) - Group-sequential alpha spending (
obrien_fleming,pocock) - Binary endpoint utilities (two-arm proportion test)
- Time-to-event utilities (stratified log-rank and stratified Cox PH)
- Scenario-driven simulation workflows and TFL-style R Markdown reporting
R/: core framework APIs and simulation engineconfig/: defaults and fast/deep simulation scenario gridsanalyses/: simulation and report entrypoint scriptsreports/: parameterized master R Markdown reporttests/testthat/: unit and QC testsoutputs/: generated simulation and report artifacts
make bootstrap
make test
make simulate-fast
make render-reportDeep simulation mode:
make simulate-deepdesign_interim(info_frac, alpha, spending, sided, looks)boundaries_gs(design)combine_pvalues(p_vals, method, weights)closed_test(p_matrix, combination_method, hypothesis_set)decision_rules(boundaries, combined_results, look_id)stat_binary_twoarm(data, effect_scale)stat_tte_strat_logrank(data, strata_vars)fit_tte_strat_cox(data, strata_vars)load_defaults(path)load_scenarios(mode, path)run_simulation_grid(...)
Defaults are centralized in config/defaults.yml:
- one-sided
alpha = 0.025 - default looks at information fractions
0.50, 0.75, 1.00 - default combination method
inverse_normal - fixed random seed for deterministic runs
- Simulation summaries:
outputs/simulations/simulation_summary_<mode>.csv - Replicate-level output (optional):
outputs/simulations/simulation_replicates_<mode>.csv - Boundary tables:
outputs/simulations/boundaries_<mode>.csv - Rendered report:
outputs/reports/interim_report_<mode>.html