# Walker 2019 v2 case-2 reproduction report

Date: 2026-09-25

Release candidate: `mendelian-randomization` `1.0.0-public.2`

Scope: Walker et al. version 2, case 2, systolic blood pressure to coronary
heart disease, Table 4 and Figures 2–5. DOI:
https://doi.org/10.12688/wellcomeopenres.15334.2.

## Evidence boundary

This is a retrospective numerical and structural replay of one published
example. It is not a preregistration, independent biological replication,
clinical validation, or proof that the instrumental-variable assumptions hold.
The article is CC BY 4.0. The author archive code is MIT, but the archive's
underlying GWAS-association redistribution rights are not fully resolved.
Consequently, authentic association tables, article files, original figures,
author scripts and historical package bytes remain private and are not in the
public skill ZIP or website evidence. Public assets contain generated aggregate
comparisons, coordinates and adapted plots with source attribution.

## Frozen analysis

- Authentic archived harmonized input: 163 rows.
- Retained for estimation: 157; excluded: 6.
- Exact excluded identifiers: `rs2274224`, `rs28667801`, `rs35021474`,
  `rs7753358`, `rs7938342`, `rs9385405`.
- Retained proxy: `rs9476331` for target `rs9476307`.
- Exposure unit: current catalogue reports one SD; the archive does not embed a
  unit, so outputs say “catalogue-reported SD; archive lacks embedded unit.”
- Outcome scale: coronary-heart-disease log odds.
- Current engine: R 4.3.2, TwoSampleMR 0.6.11, seed 20260925,
  `nboot=1000`, mode `phi=1`.
- Stochastic sensitivity seeds: 20260925 through 20260944.

The historical article cited TwoSampleMR 0.4.22, `nboot=1000` and `phi=1` but
did not provide an RNG seed. A separately labelled 0.4.22 compatibility run on
the current R runtime matched the fixed-seed point and uncertainty outputs; it
does not reproduce the unavailable original R 3.5 environment or unknown seed.

## Qualified results

| Method | n | beta | SE | P |
|---|---:|---:|---:|---:|
| IVW | 157 | 0.5662910175 | 0.0905047486 | 3.923754448e-10 |
| MR Egger | 157 | 0.9710529564 | 0.2917427875 | 0.001091027216 |
| Weighted median | 157 | 0.5710485388 | 0.0755233905 | 3.993237657e-14 |
| Weighted mode | 157 | 0.5709660892 | 0.1811798979 | 0.001948727345 |

All 19 frozen identity/headline comparison cells matched their prespecified
exact, display-rounding or 20-seed stochastic criteria. Deterministic independent
checks covered IVW, Egger, all 157 Wald ratios and all 158 leave-one-out rows.
The complete ledger is `headline-comparison.csv`.

Sensitivity outputs remain descriptive, not assumption certificates. IVW
heterogeneity was Q=682.6793 on 156 degrees of freedom (P=5.78e-67;
I²=0.7715). The Egger intercept was -0.008655 (SE 0.005933, P=0.1466).
Neither a nonsignificant intercept nor visual funnel symmetry establishes the
absence of directional pleiotropy.

The article prose repeats the IVW P value for the weighted-median sentence,
whereas its Table 4/archive gives the weighted-median value. This report retains
the table/archive comparison and records the prose inconsistency rather than
changing executed results.

## Figures

Six generated display types are in `../figures/final-v4/` and mapped in
`figure-comparison.csv`: instrument flow, a seven-page single-variant forest,
four-method scatter with the executed Egger intercept, seven-page leave-one-out,
funnel and source-versus-reproduction. Each is generated from executed tables,
attributes the corresponding source table/panel, preserves null/reference lines
and distinguishes adapted layout from copied source art.

The v4 assets reproduce byte-for-byte in `final-v4-replay`. Every SVG/PNG was
visually inspected, every PDF page was rasterized and inspected, and headless
Chrome previews at 320, 390 and 768 CSS pixels showed no clipping. Dense pages
use a readable minimum width and intentional horizontal scrolling on narrow
screens.

Render command from the repository root:

```bash
python releases/skills/2026-09-25/mendelian-randomization/figures/scripts/render_publication_figures.py \
  --run releases/skills/2026-09-25/mendelian-randomization/benchmark/walker-2019-v2/run-installed-final \
  --comparison releases/skills/2026-09-25/mendelian-randomization/benchmark/walker-2019-v2/comparisons/run-installed-final/comparison.csv \
  --exclusions releases/skills/2026-09-25/mendelian-randomization/benchmark/walker-2019-v2/protocol/exclusions.csv \
  --out releases/skills/2026-09-25/mendelian-randomization/figures/final-v4-replay
```

## Generalization and auxiliary examples

Nine authentic case-1 pairs and one one-instrument case-3 pair were used as
separately labelled transfer checks. All 75 deterministic result cells, all 699
case-1 single-variant rows, the one case-3 Wald-ratio row and every applicable
leave-one-out row matched. Bootstrap-dependent median/mode uncertainty was not
mislabelled deterministic. These checks demonstrate execution transfer only;
they do not validate those examples' biological conclusions.

The customer package contains only an invented three-variant example. Its exact
extracted ZIP passed all 83 tests and completed both R estimation and Python
rendering. No private project checkout or authentic benchmark input is needed.

## Package identity and remaining limits

Canonical ZIP: `../../packages/mendelian-randomization-1.0.0-public.2.zip`

SHA-256: `c2d74359bc7825748f66296b12b9cdb300bda94fb0bcb3b462dca01baa2f463e`

Files: 28; uncompressed bytes: 227,057.

The reusable source is GPL-3.0-or-later. Dependency binaries are not bundled.
Institutional ownership/legal enforceability, paid-channel seller terms, buyer
payload behavior, price, support and update commitments remain unresolved.
Commerce and customer delivery are not enabled by this qualification.
