-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
336 lines (318 loc) · 22.5 KB
/
Copy pathindex.html
File metadata and controls
336 lines (318 loc) · 22.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Reprostats — Open-Source R for Rigorous Statistics</title>
<meta name="description" content="Open-source R packages for reproducible, regulation-ready data science.">
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192.png">
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#1a56db">
<!-- Open Graph / LinkedIn / Discord preview -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://reprostats.org/" />
<meta property="og:site_name" content="Reprostats" />
<meta property="og:title" content="Reprostats — R infrastructure for regulated data science" />
<meta property="og:description" content="Open-source R packages for reproducibility, audit logging, and data provenance in regulated environments. Explore the docs →">
<meta property="og:image" content="https://reprostats.org/logo-social.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Reprostats — reproducible, auditable, traceable" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@reprostats" />
<meta name="twitter:title" content="Reprostats — R infrastructure for regulated data science" />
<meta name="twitter:description" content="Open-source R packages for reproducibility, audit logging, and data provenance in regulated environments. Explore the docs →">
<meta name="twitter:image" content="https://reprostats.org/logo-social.png" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;1,400&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Serif:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<style>
.hero { padding:5.5rem 2.5rem 4.5rem; border-bottom:1px solid var(--rule); }
.hero-inner { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.hero-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--accent); letter-spacing:0.16em; text-transform:uppercase; margin-bottom:1.5rem; display:flex; align-items:center; gap:0.625rem; }
.hero-eyebrow::before { content:''; display:block; width:1.5rem; height:1px; background:var(--accent); }
.hero-sub { font-size:1.0625rem; color:var(--ink-mid); line-height:1.75; margin-bottom:2.25rem; font-weight:300; max-width:480px; }
.hero-stats-row { max-width:1120px; margin:0 auto; padding-top:3rem; border-top:1px solid var(--rule); display:flex; gap:3rem; flex-wrap:wrap; }
.hstat-num { font-family:'IBM Plex Mono',monospace; font-size:1.375rem; font-weight:500; color:var(--ink); margin-bottom:0.125rem; }
.hstat-label { font-size:0.78rem; color:var(--ink-faint); }
.pkg-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
@media(max-width:768px){ .pkg-grid{grid-template-columns:1fr;} }
.pkg-suite-label {
display: flex; align-items: baseline; gap: 1rem;
margin-bottom: 1.25rem; padding-bottom: 0.6rem;
border-bottom: 1.5px solid var(--rule);
}
.pkg-suite-title {
font-family: var(--mono); font-size: 0.78rem; font-weight: 600;
letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink);
}
.pkg-suite-sub {
font-family: var(--mono); font-size: 0.7rem;
color: var(--ink-faint); letter-spacing: 0.03em;
}
.badge-planned { background: #f0f0f5; color: #6b6f80; }
[data-theme="dark"] .badge-planned { background: #1e2030; color: #6b7099; }
[data-theme="dark"] .pkg-suite-title { color: var(--ink); }
[data-theme="dark"] .pkg-suite-sub { color: var(--ink-faint); }
@media(max-width:640px){ .hero{padding:4rem 1.25rem 3rem;} }
</style>
</head>
<body>
<nav class="nav">
<a href="index.html" class="nav-logo">repro<span>stats</span>.org</a>
<ul class="nav-links">
<li><a href="index.html" class="active">Packages</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="#about">About</a></li>
<li><a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia ↗</a></li>
</ul>
<div class="nav-right">
<button class="theme-toggle" aria-label="Toggle theme">
<svg class="icon-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
<svg class="icon-moon" viewBox="0 0 24 24"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
</button>
<a href="https://github.com/repro-stats" class="btn btn-outline btn-sm" target="_blank" rel="noopener">GitHub</a>
</div>
<button class="nav-burger" aria-label="Open menu" aria-expanded="false"><span></span><span></span><span></span></button>
</nav>
<nav class="nav-drawer">
<a href="index.html" class="active">Packages</a>
<a href="blog.html">Blog</a>
<a href="#about">About</a>
<a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia ↗</a>
<a href="https://github.com/repro-stats" target="_blank" rel="noopener">GitHub</a>
</nav>
<section class="hero">
<div class="hero-inner">
<div>
<div class="hero-eyebrow">Open-source R packages</div>
<h1 class="display display-xl">Rigorous by<br><em>design.</em></h1>
<p class="hero-sub">R infrastructure for regulated statistics — reproducibility auditing, Bayesian methodology, electronic audit logging, and row-level data provenance.</p>
<div class="btn-group">
<a href="#packages" class="btn btn-primary">Explore packages</a>
<a href="https://github.com/repro-stats" class="btn btn-outline" target="_blank" rel="noopener">View on GitHub</a>
</div>
</div>
<div>
<div class="terminal">
<div class="terminal-bar">
<div class="t-dot t-dot-r"></div><div class="t-dot t-dot-y"></div><div class="t-dot t-dot-g"></div>
<span class="t-bar-label">R console</span>
</div>
<div class="terminal-body" id="term-body"></div>
</div>
</div>
</div>
<div class="hero-stats-row">
<div><div class="hstat-num">21 CFR</div><div class="hstat-label">Part 11 & EU Annex 11 compliant</div></div>
<div><div class="hstat-num">CDISC</div><div class="hstat-label">ADaM & SDTM aligned</div></div>
<div><div class="hstat-num">FDA</div><div class="hstat-label">2026 Bayesian guidance aligned</div></div>
<div><div class="hstat-num">IQ/OQ/PQ</div><div class="hstat-label">qualification suites included</div></div>
</div>
</section>
<section class="section" id="packages">
<div class="container">
<div class="eyebrow">R packages</div>
<h2 class="display display-lg" style="margin-bottom:1rem">Two suites.<br><em>One workflow.</em></h2>
<p style="font-size:1rem;color:var(--ink-mid);max-width:600px;line-height:1.75;font-weight:300;margin-bottom:3rem">
Open-source R tooling for regulated clinical analysis — an infrastructure suite under the Reprostats organisation,
and a Bayesian clinical trial suite by <a href="https://reprostats.org/#about" target="_blank" rel="noopener" style="color:var(--accent)">Ndoh Penn</a>.
</p>
<!-- ── Infrastructure suite ── -->
<div class="pkg-suite-label">
<span class="pkg-suite-title">Reprostats Infrastructure</span>
<span class="pkg-suite-sub">github.com/repro-stats</span>
</div>
<div class="pkg-grid" style="margin-bottom:3rem">
<div class="pkg-card reveal">
<div class="pkg-header"><span class="pkg-name">reproducr</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span></div></div>
<p class="pkg-desc">The reproducibility foundation. Audit, certify, and monitor R scripts and environments for regulated settings. Designed around 21 CFR Part 11-aligned compliance processes.</p>
<ul class="pkg-feats">
<li>Script-level audit trail with cryptographic hash</li>
<li>Risk scoring for regulatory compliance</li>
<li>Environment certification and lockfiles</li>
<li>Drift detection across analysis runs</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span>install.packages("reproducr")</div>
<a href="https://repro-stats.github.io/reproducr/" class="pkg-link" target="_blank" rel="noopener">Docs & source →</a>
</div>
<div class="pkg-card reveal reveal-d1">
<div class="pkg-header"><span class="pkg-name">regulog</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span></div></div>
<p class="pkg-desc">Electronic audit logging for R, designed around 21 CFR Part 11 requirements. Tamper-evident, user-attributed, timestamp-verified logging of all analytical actions. Ships with IQ/OQ/PQ qualification scripts.</p>
<ul class="pkg-feats">
<li>Hash-chained audit log with electronic signatures</li>
<li>User-attributed action tracking with mandatory reasons</li>
<li>IQ/OQ/PQ qualification suite included</li>
<li>Deep integration with reproducr</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span>install.packages("regulog")</div>
<a href="https://repro-stats.github.io/regulog/" class="pkg-link" target="_blank" rel="noopener">Docs & source →</a>
</div>
<div class="pkg-card reveal reveal-d2" style="grid-column: 1 / -1">
<div class="pkg-header"><span class="pkg-name">lineager</span><div class="pkg-badges"><span class="badge badge-dev">In development</span></div></div>
<p class="pkg-desc">Row-level data provenance for clinical datasets. Track every transformation from raw SDTM input to analysis-ready ADaM datasets with complete traceability and CDISC Reviewer's Guide-aligned reports.</p>
<ul class="pkg-feats">
<li>Row-level lineage IDs that survive filters and joins</li>
<li>Mandatory documented reasons for every exclusion</li>
<li>CONSORT-style disposition tables from derivation objects</li>
<li>Subject-level trace across the full pipeline</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span>pak::pak("repro-stats/lineager")</div>
<a href="https://github.com/repro-stats/lineager" class="pkg-link" target="_blank" rel="noopener">View on GitHub →</a>
</div>
</div>
<!-- ── Bayesian suite ── -->
<div class="pkg-suite-label">
<span class="pkg-suite-title">Bayesian Methods Suite</span>
</div>
<div class="pkg-grid">
<div class="pkg-card reveal">
<div class="pkg-header"><span class="pkg-name">bayprior</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span><span class="badge badge-shiny">Shiny app</span></div></div>
<p class="pkg-desc">Structured Bayesian prior elicitation, conflict diagnostics, sensitivity analysis, and regulatory reporting for clinical trials. Aligned with the FDA 2026 draft guidance on Bayesian methods.</p>
<ul class="pkg-feats">
<li>SHELF-style elicitation across 6 distribution families</li>
<li>Prior-data conflict diagnostics</li>
<li>Sensitivity analysis with tornado plots</li>
<li>Regulatory prior justification reports (HTML/PDF/Word)</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span>install.packages("bayprior")</div>
<a href="https://ndohpenngit.github.io/bayprior/" class="pkg-link" target="_blank" rel="noopener">Docs & source →</a>
</div>
<div class="pkg-card reveal reveal-d1">
<div class="pkg-header"><span class="pkg-name">baymon</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
<p class="pkg-desc">Bayesian interim monitoring using predictive probability. Unified futility and efficacy stopping rules across binary, continuous, and time-to-event endpoints. Integrates bayprior priors directly.</p>
<ul class="pkg-feats">
<li>Predictive probability of trial success at each interim</li>
<li>Efficacy and futility stopping boundaries</li>
<li>Operating characteristics via Monte Carlo simulation</li>
<li>FDA 2026 Bayesian guidance aligned</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span><span style="color:var(--ink-soft)">Coming soon</span></div>
<a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
</div>
<div class="pkg-card reveal reveal-d2">
<div class="pkg-header"><span class="pkg-name">bayoc</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
<p class="pkg-desc">Bayesian operating characteristics simulation for clinical trial design. Simulate type I error, power, and expected sample size under user-specified priors and decision thresholds.</p>
<ul class="pkg-feats">
<li>OC simulation across prior and design scenarios</li>
<li>Prior sensitivity on operating characteristics</li>
<li>Regulatory-ready OC tables and plots</li>
<li>Works with bayprior and baymon</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span><span style="color:var(--ink-soft)">Coming soon</span></div>
<a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
</div>
<div class="pkg-card reveal reveal-d3">
<div class="pkg-header"><span class="pkg-name">baysen</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
<p class="pkg-desc">Bayesian sensitivity analysis for clinical trials. Prior sensitivity, missing data tipping points, and estimand-aware sensitivity analyses across binary, continuous, and time-to-event endpoints.</p>
<ul class="pkg-feats">
<li>Prior sensitivity across elicited prior families</li>
<li>Bayesian tipping point analysis for missing data</li>
<li>ICH E9(R1) estimand-linked sensitivity framework</li>
<li>Unified across all endpoint types</li>
</ul>
<div class="pkg-install"><span class="prompt">> </span><span style="color:var(--ink-soft)">Coming soon</span></div>
<a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
</div>
</div>
</div>
</section>
<section class="section section-alt">
<div class="container">
<div class="eyebrow">From the blog</div>
<h2 class="display display-md" style="margin-bottom:0.875rem">Recent writing on<br><em>R in regulated settings.</em></h2>
<p style="font-size:1rem;color:var(--ink-mid);max-width:480px;line-height:1.75;font-weight:300;margin-bottom:3rem">Practical guides, methodology notes, and regulatory context for pharma statisticians. <a href="blog.html" style="color:var(--accent)">See all posts →</a></p>
<div class="blog-grid reveal">
<a href="blog/qualifying-regulog-validated-environment.html" class="blog-card">
<div class="blog-meta"><span class="blog-date">1 Jul 2026</span><span class="blog-read">10 min read</span></div>
<h3>Qualifying regulog in a validated R environment</h3>
<p>How to run the pre-written IQ/OQ/PQ protocols, capture the qualification record, and log the process itself — for 21 CFR Part 11 and EU Annex 11 environments.</p>
<div class="blog-card-footer"><div class="blog-tags"><span class="tag">Validation</span><span class="tag">21 CFR Part 11</span></div><span class="blog-arrow">→</span></div>
</a>
<a href="blog/regulog-vaccine-immunogenicity.html" class="blog-card">
<div class="blog-meta"><span class="blog-date">26 Jun 2026</span><span class="blog-read">12 min read</span></div>
<h3>21 CFR Part 11-compliant immunogenicity analysis in R with regulog</h3>
<p>End-to-end audit logging for a Phase III RSV vaccine trial — GMT, seroconversion, electronic sign-off, and hash chain verification.</p>
<div class="blog-card-footer"><div class="blog-tags"><span class="tag">regulog</span><span class="tag">21 CFR Part 11</span></div><span class="blog-arrow">→</span></div>
</a>
<a href="blog/lineager-dermatology.html" class="blog-card">
<div class="blog-meta"><span class="blog-date">26 Jun 2026</span><span class="blog-read">9 min read</span></div>
<h3>Traceable ADaM derivation: every exclusion documented with lineager</h3>
<p>Building ADEFF with row-level provenance — population flags, change from baseline, EASI-75 responder flag, CONSORT table, and subject-level tracing.</p>
<div class="blog-card-footer"><div class="blog-tags"><span class="tag">lineager</span><span class="tag">CDISC ADaM</span></div><span class="blog-arrow">→</span></div>
</a>
<a href="blog/bayesian-priors-clinical-trials.html" class="blog-card">
<div class="blog-meta"><span class="blog-date">22 Jun 2026</span><span class="blog-read">8 min read</span></div>
<h3>Bayesian prior elicitation for clinical trials: a practical guide with bayprior</h3>
<p>How to elicit, document, and justify informative priors for regulatory submissions — aligned with FDA 2026 draft guidance.</p>
<div class="blog-card-footer"><div class="blog-tags"><span class="tag">Bayesian</span><span class="tag">bayprior</span></div><span class="blog-arrow">→</span></div>
</a>
</div>
</div>
</section>
<div class="reprosia-bridge">
<div class="bridge-inner">
<div>
<div class="bridge-eyebrow">Enterprise platform</div>
<h2 class="bridge-h">Need more than<br>open source? <em>Reprosia.</em></h2>
<p class="bridge-p">These packages are the open-source foundation. Reprosia is the platform built on top — adding environment validation, submission tooling, and expert services for regulated pharma teams.</p>
<a href="https://reprosia.com" class="btn-teal" target="_blank" rel="noopener">Explore reprosia.com →</a>
</div>
<ul class="bridge-features">
<li><strong>IQ/OQ/PQ validation</strong> — automated validation documentation for FDA and EMA submissions</li>
<li><strong>Environment management</strong> — locked, certified R environments across your full team</li>
<li><strong>eCTD submission packaging</strong> — regulatory-ready output from your R pipelines</li>
<li><strong>SAS → R migration</strong> — equivalence testing and compliance-safe transition support</li>
<li><strong>Expert consulting</strong> — direct support from Ndoh Penn for your programme</li>
</ul>
</div>
</div>
<section class="section section-alt" id="about">
<div class="container">
<div class="eyebrow">About Reprostats</div>
<h2 class="display display-md" style="margin-bottom:3rem">Why these packages<br><em>exist.</em></h2>
<div class="about-layout reveal">
<div class="about-prose">
<p>Reproducibility in clinical analyses is harder than it should be. R environments go undocumented, package versions drift, and the steps between raw data and submission output are rarely captured in a way that supports independent verification.</p>
<p>Reprostats is an open-source project building the R infrastructure to address this. Packages covering behavioural reproducibility auditing (<strong>reproducr</strong>), electronic audit logging (<strong>regulog</strong>), Bayesian prior methodology (<strong>bayprior</strong>), and row-level data provenance (<strong>lineager</strong>).</p>
<p>Alongside the infrastructure suite, <a href="https://reprostats.org/#about" target="_blank" style="color:var(--accent)">Ndoh Penn</a> maintains a Bayesian clinical trial suite (<strong>bayprior</strong> on CRAN, with <strong>baymon</strong>, <strong>bayoc</strong>, and <strong>baysen</strong> in development) aligned with FDA 2026 Bayesian guidance.</p>
<p>Reprostats is maintained by <strong>Ndoh Penn</strong>, a biostatistician based in Antwerp, Belgium. The enterprise platform built on this foundation is <a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia</a>.</p>
</div>
<div class="about-stats">
<div class="astat"><div class="astat-num">21 CFR</div><div class="astat-label">Part 11 & EU Annex 11</div></div>
<div class="astat"><div class="astat-num">CDISC</div><div class="astat-label">ADaM & SDTM aligned</div></div>
<div class="astat"><div class="astat-num">FDA</div><div class="astat-label">2026 Bayesian guidance</div></div>
<div class="astat"><div class="astat-num">EU</div><div class="astat-label">Antwerp, Belgium</div></div>
</div>
</div>
</div>
</section>
<div class="cta-strip">
<div class="cta-strip-inner">
<h2>Questions, contributions,<br>or <em>collaboration?</em></h2>
<div class="cta-right">
<a href="https://github.com/repro-stats" class="btn btn-primary" target="_blank" rel="noopener">Open an issue on GitHub</a>
<p class="cta-email"><a href="mailto:contact@reprostats.org">contact@reprostats.org</a></p>
</div>
</div>
</div>
<footer>
<a href="/" class="footer-logo">repro<span>stats</span>.org</a>
<ul class="footer-links">
<li><a href="https://github.com/repro-stats" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="https://ndohpenngit.github.io/bayprior/" target="_blank" rel="noopener">bayprior docs</a></li>
<li><a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia</a></li>
<li><a href="mailto:contact@reprostats.org">Contact</a></li>
</ul>
<span class="footer-copy">© 2026 Ndoh Penn · Antwerp, Belgium</span>
</footer>
<script src="main.js"></script>
</body>
</html>