PageSourceSearch

https://reprostats.org/index.html

html reprostats.org collected 2026-10-03 23:17:23 UTC 22,270 bytes, 324 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" data-theme="light">
3<head>
4  <meta charset="UTF-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6  <title>Reprostats — Open-Source R for Rigorous Pharma Statistics</title>
7  <meta name="description" content="Open-source R packages for reproducible, regulation-ready pharmaceutical data science.">
8
9  <!-- Favicon -->
10  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
11  <link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
12  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
13  <link rel="icon" type="image/png" sizes="192x192" href="/favicon-192.png">
14  <link rel="icon" type="image/png" sizes="512x512" href="/favicon-512.png">
15  <link rel="manifest" href="/site.webmanifest">
16  <meta name="theme-color" content="#1a56db">
17
18  <!-- Open Graph / LinkedIn / Discord preview -->
19  <meta property="og:type"        content="website" />
20  <meta property="og:url"         content="https://reprostats.org/" />
21  <meta property="og:site_name"   content="Reprostats" />
22  <meta property="og:title"       content="Reprostats — R infrastructure for regulated data science" />
23  <meta property="og:description" content="Open-source R packages for reproducibility, audit logging, and data provenance in regulated environments. Explore the docs →">
24  <meta property="og:image"       content="https://reprostats.org/logo-social.png" />
25  <meta property="og:image:width"  content="1200" />
26  <meta property="og:image:height" content="630" />
27  <meta property="og:image:alt"   content="Reprostats — reproducible, auditable, traceable" />
28  <meta name="twitter:card"       content="summary_large_image" />
29  <meta name="twitter:site"       content="@reprostats" />
30  <meta name="twitter:title"      content="Reprostats — R infrastructure for regulated data science" />
31  <meta name="twitter:description" content="Open-source R packages for reproducibility, audit logging, and data provenance in regulated environments. Explore the docs →">
32  <meta name="twitter:image"      content="https://reprostats.org/logo-social.png" />
33  <link rel="preconnect" href="https://fonts.googleapis.com">
34  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
35  <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">
36  <link rel="stylesheet" href="style.css">
37  <style>
38    .hero { padding:5.5rem 2.5rem 4.5rem; border-bottom:1px solid var(--rule); }
39    .hero-inner { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
40    .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; }
41    .hero-eyebrow::before { content:''; display:block; width:1.5rem; height:1px; background:var(--accent); }
42    .hero-sub { font-size:1.0625rem; color:var(--ink-mid); line-height:1.75; margin-bottom:2.25rem; font-weight:300; max-width:480px; }
43    .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; }
44    .hstat-num { font-family:'IBM Plex Mono',monospace; font-size:1.375rem; font-weight:500; color:var(--ink); margin-bottom:0.125rem; }
45    .hstat-label { font-size:0.78rem; color:var(--ink-faint); }
46    .pkg-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
47    @media(max-width:768px){ .pkg-grid{grid-template-columns:1fr;} }
48    .pkg-suite-label {
49      display: flex; align-items: baseline; gap: 1rem;
50      margin-bottom: 1.25rem; padding-bottom: 0.6rem;
51      border-bottom: 1.5px solid var(--rule);
52    }
53    .pkg-suite-title {
54      font-family: var(--mono); font-size: 0.78rem; font-weight: 600;
55      letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink);
56    }
57    .pkg-suite-sub {
58      font-family: var(--mono); font-size: 0.7rem;
59      color: var(--ink-faint); letter-spacing: 0.03em;
60    }
61    .badge-planned { background: #f0f0f5; color: #6b6f80; }
62    [data-theme="dark"] .badge-planned { background: #1e2030; color: #6b7099; }
63    [data-theme="dark"] .pkg-suite-title { color: var(--ink); }
64    [data-theme="dark"] .pkg-suite-sub { color: var(--ink-faint); }
65    @media(max-width:640px){ .hero{padding:4rem 1.25rem 3rem;} }
66  </style>
67</head>
68<body>
69
70<nav class="nav">
71  <a href="index.html" class="nav-logo">repro<span>stats</span>
71.org</a>
72  <ul class="nav-links">
73    <!-- Reprosia link removed during active job search (Aug 2026).
74         Reinstate: <li><a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia ↗</a></li> -->
75    <li><a href="index.html" class="active">Packages</a></li>
76    <li><a href="blog.html">Blog</a></li>
77    <li><a href="#about">About</a></li>
78  </ul>
79  <div class="nav-right">
80    <button class="theme-toggle" aria-label="Toggle theme">
81      <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>
82      <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>
83    </button>
84    <a href="https://github.com/repro-stats" class="btn btn-outline btn-sm" target="_blank" rel="noopener">GitHub</a>
85  </div>
86  <button class="nav-burger" aria-label="Open menu" aria-expanded="false"><span></span><span></span><span></span></button>
87</nav>
88<nav class="nav-drawer">
89  <!-- Reprosia link removed during active job search (Aug 2026).
90       Reinstate: <a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia ↗</a> -->
91  <a href="index.html" class="active">Packages</a>
92  <a href="blog.html">Blog</a>
93  <a href="#about">About</a>
94  <a href="https://github.com/repro-stats" target="_blank" rel="noopener">GitHub</a>
95</nav>
96
97<section class="hero">
98  <div class="hero-inner">
99    <div>
100      <div class="hero-eyebrow">Open-source R packages</div>
101      <h1 class="display display-xl">Rigorous by<br><em>design.</em></h1>
102      <p class="hero-sub">R infrastructure for regulated pharmaceutical statistics — reproducibility auditing, Bayesian methodology, electronic audit logging, and row-level data provenance.</p>
103      <div class="btn-group">
104        <a href="#packages" class="btn btn-primary">Explore packages</a>
105        <a href="https://github.com/repro-stats" class="btn btn-outline" target="_blank" rel="noopener">View on GitHub</a>
106      </div>
107    </div>
108    <div>
109      <div class="terminal">
110        <div class="terminal-bar">
111          <div class="t-dot t-dot-r"></div><div class="t-dot t-dot-y"></div><div class="t-dot t-dot-g"></div>
112          <span class="t-bar-label">R console</span>
113        </div>
114        <div class="terminal-body" id="term-body"></div>
115      </div>
116    </div>
117  </div>
118  <div class="hero-stats-row">
119    <div><div class="hstat-num">21 CFR</div><div class="hstat-label">Part 11 &amp; EU Annex 11 compliant</div></div>
120    <div><div class="hstat-num">CDISC</div><div class="hstat-label">ADaM &amp; SDTM aligned</div></div>
121    <div><div class="hstat-num">FDA</div><div class="hstat-label">2026 Bayesian guidance aligned</div></div>
122    <div><div class="hstat-num">IQ/OQ/PQ</div><div class="hstat-label">qualification suites included</div></div>
123  </div>
124</section>
125
126<section class="section" id="packages">
127  <div class="container">
128    <div class="eyebrow">R packages</div>
129    <h2 class="display display-lg" style="margin-bottom:1rem">Two suites.<br><em>One workflow.</em></h2>
130    <p style="font-size:1rem;color:var(--ink-mid);max-width:600px;line-height:1.75;font-weight:300;margin-bottom:3rem">
131      Open-source R tooling for regulated clinical analysis — an infrastructure suite under the Reprostats organisation,
132      and a Bayesian clinical trial suite by <a href="https://reprostats.org/#about" target="_blank" rel="noopener" style="color:var(--accent)">Ndoh Penn</a>.
133    </p>
134
135    <!-- ── Infrastructure suite ── -->
136    <div class="pkg-suite-label">
137      <span class="pkg-suite-title">Reprostats Infrastructure</span>
138      <span class="pkg-suite-sub">github.com/repro-stats</span>
139    </div>
140    <div class="pkg-grid" style="margin-bottom:3rem">
141      <div class="pkg-card reveal">
142        <div class="pkg-header"><span class="pkg-name">reproducr</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span></div></div>
143        <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>
144        <ul class="pkg-feats">
145          <li>Script-level audit trail with cryptographic hash</li>
146          <li>Risk scoring for regulatory compliance</li>
147          <li>Environment certification and lockfiles</li>
148          <li>Drift detection across analysis runs</li>
149        </ul>
150        <div class="pkg-install"><span class="prompt">&gt; </span>install.packages("reproducr")</div>
151        <a href="https://repro-stats.github.io/reproducr/" class="pkg-link" target="_blank" rel="noopener">Docs &amp; source →</a>
152      </div>
153
154      <div class="pkg-card reveal reveal-d1">
155        <div class="pkg-header"><span class="pkg-name">regulog</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span></div></div>
156        <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>
157        <ul class="pkg-feats">
158          <li>Hash-chained audit log with electronic signatures</li>
159          <li>User-attributed action tracking with mandatory reasons</li>
160          <li>IQ/OQ/PQ qualification suite included</li>
161          <li>Deep integration with reproducr</li>
162        </ul>
163        <div class="pkg-install"><span class="prompt">&gt; </span>install.packages("regulog")</div>
164        <a href="https://reprostats.org/regulog/" class="pkg-link" target="_blank" rel="noopener">Docs &amp; source →</a>
165      </div>
166
167      <div class="pkg-card reveal reveal-d2" style="grid-column: 1 / -1">
168        <div class="pkg-header"><span class="pkg-name">lineager</span><div class="pkg-badges"><span class="badge badge-cran">CRAN</span></div></div>
169        <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>
170        <ul class="pkg-feats">
171          <li>Row-level lineage IDs that survive filters and joins</li>
172          <li>Mandatory documented reasons for every exclusion</li>
173          <li>CONSORT-style disposition tables from derivation objects</li>
174          <li>Subject-level trace across the full pipeline</li>
175        </ul>
176        <div class="pkg-install"><span class="prompt">&gt; </span>install.packages("lineager")</div>
177        <a href="https://reprostats.org/lineager/" class="pkg-link" target="_blank" rel="noopener">Docs &amp; source →</a>
178      </div>
179    </div>
180
181    <!-- ── Bayesian suite ── -->
182    <div class="pkg-suite-label">
183      <span class="pkg-suite-title">Bayesian Methods Suite</span>
184    </div>
185    <div class="pkg-grid">
186      <div class="pkg-card reveal">
187        <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>
188        <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>
189        <ul class="pkg-feats">
190          <li>SHELF-style elicitation across 6 distribution families</li>
191          <li>Prior-data conflict diagnostics</li>
192          <li>Sensitivity analysis with tornado plots</li>
193          <li>Regulatory prior justification reports (HTML/PDF/Word)</li>
194        </ul>
195        <div class="pkg-install"><span class="prompt">&gt; </span>install.packages("bayprior")</div>
196        <a href="https://ndohpenngit.github.io/bayprior/" class="pkg-link" target="_blank" rel="noopener">Docs &amp; source →</a>
197      </div>
198
199      <div class="pkg-card reveal reveal-d1">
200        <div class="pkg-header"><span class="pkg-name">baymon</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
201        <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>
202        <ul class="pkg-feats">
203          <li>Predictive probability of trial success at each interim</li>
204          <li>Efficacy and futility stopping boundaries</li>
205          <li>Operating characteristics via Monte Carlo simulation</li>
206          <li>FDA 2026 Bayesian guidance aligned</li>
207        </ul>
208        <div class="pkg-install"><span class="prompt">&gt; </span><span style="color:var(--ink-soft)">Coming soon</span></div>
209        <a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
210      </div>
211
212      <div class="pkg-card reveal reveal-d2">
213        <div class="pkg-header"><span class="pkg-name">bayoc</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
214        <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>
215        <ul class="pkg-feats">
216          <li>OC simulation across prior and design scenarios</li>
217          <li>Prior sensitivity on operating characteristics</li>
218          <li>Regulatory-ready OC tables and plots</li>
219          <li>Works with bayprior and baymon</li>
220        </ul>
221        <div class="pkg-install"><span class="prompt">&gt; </span><span style="color:var(--ink-soft)">Coming soon</span></div>
222        <a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
223      </div>
224
225      <div class="pkg-card reveal reveal-d3">
226        <div class="pkg-header"><span class="pkg-name">baysen</span><div class="pkg-badges"><span class="badge badge-planned">Planned</span></div></div>
227        <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>
228        <ul class="pkg-feats">
229          <li>Prior sensitivity across elicited prior families</li>
230          <li>Bayesian tipping point analysis for missing data</li>
231          <li>ICH E9(R1) estimand-linked sensitivity framework</li>
232          <li>Unified across all endpoint types</li>
233        </ul>
234        <div class="pkg-install"><span class="prompt">&gt; </span><span style="color:var(--ink-soft)">Coming soon</span></div>
235        <a href="https://github.com/repro-stats" class="pkg-link" target="_blank" rel="noopener">Follow progress →</a>
236      </div>
237    </div>
238  </div>
239</section>
240
241<section class="section section-alt">
242  <div class="container">
243    <div class="eyebrow">From the blog</div>
244    <h2 class="display display-md" style="margin-bottom:0.875rem">Recent writing on<br><em>R in regulated settings.</em></h2>
245    <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>
246    <div class="blog-grid reveal">
247      <a href="blog/qualifying-regulog-validated-environment.html" class="blog-card">
248        <div class="blog-meta"><span class="blog-date">1 Jul 2026</span><span class="blog-read">10 min read</span></div>
249        <h3>Qualifying regulog in a validated R environment</h3>
250        <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>
251        <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>
252      </a>
253      <a href="blog/regulog-vaccine-immunogenicity.html" class="blog-card">
254        <div class="blog-meta"><span class="blog-date">26 Jun 2026</span><span class="blog-read">12 min read</span></div>
255        <h3>
25521 CFR Part 11-compliant immunogenicity analysis in R with regulog</h3>
256        <p>End-to-end audit logging for a Phase III RSV vaccine trial — GMT, seroconversion, electronic sign-off, and hash chain verification.</p>
257        <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>
258      </a>
259      <a href="blog/lineager-dermatology.html" class="blog-card">
260        <div class="blog-meta"><span class="blog-date">26 Jun 2026</span><span class="blog-read">9 min read</span></div>
261        <h3>Traceable ADaM derivation: every exclusion documented with lineager</h3>
262        <p>Building ADEFF with row-level provenance — population flags, change from baseline, EASI-75 responder flag, CONSORT table, and subject-level tracing.</p>
263        <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>
264      </a>
265      <a href="blog/bayesian-priors-clinical-trials.html" class="blog-card">
266        <div class="blog-meta"><span class="blog-date">22 Jun 2026</span><span class="blog-read">8 min read</span></div>
267        <h3>Bayesian prior elicitation for clinical trials: a practical guide with bayprior</h3>
268        <p>How to elicit, document, and justify informative priors for regulatory submissions — aligned with FDA 2026 draft guidance.</p>
269        <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>
270      </a>
271    </div>
272  </div>
273</section>
274
275<section class="section section-alt" id="about">
276  <div class="container">
277    <div class="eyebrow">About Reprostats</div>
278    <h2 class="display display-md" style="margin-bottom:3rem">Why these packages<br><em>exist.</em></h2>
279    <div class="about-layout reveal">
280      <div class="about-prose">
281        <p>
281Reproducibility 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>
282        <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>
283        <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>
284        <p>Reprostats is maintained by <strong>Ndoh Penn</strong>, a biostatistician based in Antwerp, Belgium.</p>
285        <!-- Reprosia mention removed during active job search (Aug 2026).
286             Reinstate as final sentence above: The enterprise platform built on
287             this foundation is <a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia</a>. -->
288      </div>
289      <div class="about-stats">
290        <div class="astat"><div class="astat-num">21 CFR</div><div class="astat-label">Part 11 &amp; EU Annex 11</div></div>
291        <div class="astat"><div class="astat-num">CDISC</div><div class="astat-label">ADaM &amp; SDTM aligned</div></div>
292        <div class="astat"><div class="astat-num">FDA</div><div class="astat-label">2026 Bayesian guidance</div></div>
293        <div class="astat"><div class="astat-num">EU</div><div class="astat-label">Antwerp, Belgium</div></div>
294      </div>
295    </div>
296  </div>
297</section>
298
299<div class="cta-strip">
300  <div class="cta-strip-inner">
301    <h2>Questions, contributions,<br>or <em>collaboration?</em></h2>
302    <div class="cta-right">
303      <a href="https://github.com/repro-stats" class="btn btn-primary" target="_blank" rel="noopener">Open an issue on GitHub</a>
304      <p class="cta-email"><a href="mailto:[email protected]">[email protected]</a></p>
305    </div>
306  </div>
307</div>
308
309<footer>
310  <a href="/" class="footer-logo">repro<span>stats</span>.org</a>
311  <ul class="footer-links">
312    <!-- Reprosia link removed during active job search (Aug 2026).
313         Reinstate: <li><a href="https://reprosia.com" target="_blank" rel="noopener">Reprosia</a></li> -->
314    <li><a href="https://github.com/repro-stats" target="_blank" rel="noopener">GitHub</a></li>
315    <li><a href="blog.html">Blog</a></li>
316    <li><a href="https://ndohpenngit.github.io/bayprior/" target="_blank" rel="noopener">bayprior docs</a></li>
317    <li><a href="mailto:[email protected]">Contact</a></li>
318  </ul>
319  <span class="footer-copy">© 2026 Ndoh Penn · Antwerp, Belgium</span>
320</footer>
321
322<script src="main.js"></script>
322
323</body>
324</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.