About
An open web tool for designing and analyzing drug repurposing clinical trials, combining validated R statistical methods with an accessible browser interface built for clinical researchers.
Team
Built across two repositories: REPO4EU (R statistical engine) and repo4eu-stats-platform (web platform).
Johanna Munoz
75Statistical methods and R code
Power calculations and analysis workflows for parallel, crossover, N-of-1, umbrella, and basket designs, including Bayesian models
Shu-Min Kao
85Web platform and DevOps
Next.js frontend, Plumber API, Docker, CI/CD, testing, documentation, security
Raquel Quintilla Mateo
5Power calculation scenarios
Synthetic data generation, initial TRL4 analyses, power calculation scripts
Funding
Funded by the European Union
This platform was developed as part of the REPO4EU project, which has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No. 101057619.
Views and opinions expressed are those of the authors only and do not necessarily reflect those of the European Union or the European Research Executive Agency. Neither the European Union nor the granting authority can be held responsible for them.
Data Privacy
The platform processes clinical trial data with privacy as a core constraint. Sessions use memory by default and expire automatically. Operators can enable an optional file-backed store for multi-worker deployments.
Ephemeral sessions
- Memory-backed sessions by default, with cryptographically random 128-bit IDs.
- Default memory sessions expire 2 hours after creation (configurable via
REPO4EU_SESSION_TTL_HOURS). - The optional file backend writes RDS session files and expires them based on the last write; operators should use tmpfs or encrypted storage.
- Immediate deletion via the "Delete session data" button.
Client-side privacy gate
CSV files are parsed entirely in your browser. You choose which columns to send; everything else is stripped before transmission. Subject IDs can be anonymized client-side (S1, S2, ...) so the server never sees original identifiers.
What we do not do
- Log data values, column contents, or analysis results.
- Use analytics, tracking pixels, or third-party scripts.
- Share data with any external service.
- Keep session data after its configured lifetime.
Self-hosted deployment
For maximum control, run the platform on your own infrastructure. The entire calculation stack ships as a single Docker image. Interactive guide pages currently request Google Fonts when opened; core calculations remain local.
Version history
See CHANGELOG.md for the full detailed changelog.
1.1.3
August 2026Help-text fix plus a codebase-wide maintainability pass with no change to statistical results.
- Power sample-size help field no longer resolves to a YAML boolean, so its tooltip is reachable again
- API routes split one file per endpoint, with registry dispatch for trial designs and model families
- Help copy moved out of R source into YAML so wording edits no longer touch code
- End-to-end contract tests added for previously untested power and analysis paths
1.1.2
August 2026Containment for unsafe N-of-1 basket inference, dependency advisories, and guide corrections.
- Unsafe N-of-1 basket inference contained
- js-yaml and postcss raised past published advisories
- Crossover power guide text corrected to match the implementation
1.1.1
July 2026N-of-1 correctness fixes and dependency advisory updates.
- N-of-1 standard-error and analysis corrections
- brace-expansion and js-yaml advisories cleared
1.1.0
July 2026N-of-1 power and analysis available end to end.
- N-of-1 power and analysis wired through API and GUI
- Trial-design naming aligned across the platform
1.0.0
July 2026First stable release. Power and sample-size surfaces renamed design-first (breaking change).
- Power and sample-size functions and endpoints renamed design-first
- N-of-1 GUI added
- Basket MCMC defaults to at least two chains so R-hat is computable
- One- and two-sided options honored for N-of-1
0.6.0
July 2026Crossover and multi-arm statistical corrections from the review stream.
- Paired analytic and GEE paths reconciled for binary crossover
- Conjunctive power for multi-arm parallel designs
- Diagnostic generation exposed through API and GUI
- Dormant, unsupported crossover features rejected at the API instead of silently ignored
0.5.0
July 2026Umbrella control selection, per-substudy diagnostics, and recorded cloud deployments.
- Umbrella control-arm selector with per-substudy diagnostics
- Crossover non-inferiority margin guarded on every path against a zero margin
- Cloud Run deployments recorded against the repository
0.4.3
July 2026Statistical review remediation across power defaults and model reporting.
- One-sided tests default to alpha 0.025 rather than 0.05
- Family-aware QIC reporting for GEE
- Correlation-aware within-substudy umbrella power
- Per-stratum GLMM and GLM handling corrected
0.4.2
July 2026Crossover mixed-model and dropout handling fixes.
- Crossover LMM path corrected
- Post-dropout observation handling
- Zero-variance results no longer produce NaN
0.4.1
June 2026Simulation defaults raised and basket diagnostics added.
- Per-arm dropout supported
- Default simulation replicates raised from 1000 to 5000
- Posterior-predictive diagnostics for basket models
0.4.0
June 2026Intent disclaimer lifecycle and accessibility corrections.
- Disclaimer acknowledgment expires after 12 hours so users re-confirm
- Disclaimer recap stays mounted so its accessibility references always resolve
0.3.1
June 2026Disclaimer banner presentation fixes.
- Collapsed disclaimer with a tooltip on the blocked Next action
- Spacing corrections below the collapsed banner
0.3.0
June 2026Intent disclaimer and enforcement of supported calculation paths.
- Intent disclaimer gate added before analysis
- Method selector honored by the API rather than silently substituted
0.2.1
June 2026Binary power stability fix.
- Separated binary fits handled instead of failing
0.2.0
June 2026Privacy controls, security hardening, and accessibility work.
- Client-side privacy gate for column selection and anonymization
- Security headers, upload limits, and immediate session deletion
- Wall-clock compute guard and capped basket MCMC parameters
- Results announced to assistive technology, with reduced-motion scrolling respected
0.1.4
June 2026Release-readiness pass with synchronized versions, documentation, CI reporting, and maintainability updates.
- Version synchronized across the R package, frontend, and lockfile
- Root contributing guide and release-facing documentation cleanup
- Frontend unit and R package coverage summaries added to CI
- Wizard pages decomposed into smaller step components without changing behavior
0.1.3
June 2026Statistical guards, analysis fixes, accessibility improvements, and clearer example data.
- Defective basket-model combinations blocked pending author review
- Parallel analysis and post-hoc term selection fixes
- Accessible error, focus, tooltip, and result-announcement behavior
0.1.2
June 2026Umbrella analysis, statistical validation, privacy controls, and production hardening.
- Umbrella power and analysis supported for shared and substudy-specific controls
- Client-side privacy gate and immediate session deletion
- Rate limiting, compute timeout, production startup guard, and optional file session store
0.1.1
March 2026Privacy gate, security hardening, trial design fixes from clinical statistician review, and CI/CD improvements.
- Client-side privacy gate: column selection and subject ID anonymization before data leaves the browser
- Security headers, scoped upload limits, session ID validation, and immediate session deletion
- Trial design terminology corrections (Basket, Umbrella, N-of-1, Crossover) and icon overlap fixes
- CI pushes tested Docker image to both Docker Hub and GHCR instead of rebuilding
- Explicit carry column mapping for crossover designs, new unit tests
0.1.0
February 2026First release. Delivers TRL 4 (Docker image with full functionality) for the REPO4EU platform.
- Power Calculator for 5 trial designs with power curve grids for all 7 design/endpoint combos
- Analysis Wizard: CSV import, descriptive stats, diagnostic plots, GLMM/GEE fitting, post-hoc contrasts
- 9 interactive statistical guide visualizations with redesigned controls
- 136 tests (52 R unit, 67 Playwright E2E, 17 Docker smoke) and CI with 7 jobs
- Security audit, bearer token auth, Swagger UI via nginx, About page with BibTeX citation