From genetic associations to inspectable MR results.
Select and harmonize supplied summary associations, run supported Mendelian randomization methods, and generate figures with a record of inputs, settings and limitations. Includes instrument-count checks, sensitivity analyses and an executed reproduction of one published example.
$5.00 one-off
Preview — package delivery is not available yet
Python 3.10+; tested with Python 3.10.12, numpy 1.26.4, pandas 2.3.3, matplotlib 3.7.5, Pillow 11.0.0 and fonttools 4.62.1.
Owner-authorized and AI-assisted. Edition 1.0.2 adds OpenGWAS access guidance without changing the qualified runtime files or the 1.0.1 license correction. Package, numerical and visual checks are recorded; no independent human scientific review, legal-counsel review or clinical certification is claimed.
Supports independent-instrument, two-sample summary-data MR. Reproducing an estimate does not establish instrumental-variable assumptions, biological causality or a clinical treatment effect. Correlated, multivariable and colocalization analyses require separate validated workflows.
The bounded target is Walker et al. 2019 version 2, case 2: systolic blood pressure to coronary heart disease, Table 4 and Figures 2–5. The frozen archive contained 163 association rows; 157 were retained and six prespecified ambiguous palindromes were excluded. Retained target rs9476307 used proxy rs9476331.
Exposure effects are labelled per catalogue-reported SD of automated systolic blood pressure; the archived file itself does not embed the exposure unit. Outcome effects are log odds. All 19 frozen identity and headline cells matched their declared exact, display-rounding or prespecified stochastic rules.
| Method | Published b | Reproduced b | Δb | Published SE | Reproduced SE | ΔSE | Published P | Reproduced P | Status |
|---|---|---|---|---|---|---|---|---|---|
| Inverse variance weighted | 0.5663 | 0.5662910 | -0.0000090 | 0.0905 | 0.0905047 | +0.0000047 | 3.924e-10 | 3.9238e-10 | Matched |
| MR Egger | 0.9711 | 0.9710530 | -0.0000470 | 0.2917 | 0.2917428 | +0.0000428 | 0.001091 | 0.00109103 | Matched |
| Weighted median | 0.571 | 0.5710485 | +0.0000485 | 0.07664 | 0.0755234 | -0.0011166 | 9.226e-14 | 3.9932e-14 | Matched* |
| Weighted mode | 0.571 | 0.5709661 | -0.0000339 | 0.1744 | 0.1811799 | +0.0067799 | 0.00131 | 0.00194873 | Matched* |
| Method | b | 95% CI for b | OR | 95% CI for OR | P |
|---|---|---|---|---|---|
| Inverse variance weighted | 0.566291 | 0.389–0.744 | 1.761 | 1.475–2.104 | 3.924e-10 |
| MR Egger | 0.971053 | 0.399–1.543 | 2.641 | 1.491–4.677 | 0.001091 |
| Weighted median | 0.571049 | 0.423–0.719 | 1.770 | 1.527–2.053 | 3.993e-14 |
| Weighted mode | 0.570966 | 0.216–0.926 | 1.770 | 1.241–2.524 | 0.001949 |
The forest and leave-one-out displays are seven-page redesigns so all 157 labels remain readable; their full PDFs and coordinate tables are linked. The scatter includes all four executed method lines and the executed nonzero Egger intercept. The funnel contains all 157 ratios and identifies IVW, Egger and the zero null.
These graphics reproduce the named computational views, not the article’s visual style. Funnel asymmetry and a nonsignificant Egger intercept do not identify or rule out a particular biological mechanism.
The article prose repeats the IVW P value for the weighted median, while Table 4 and the archived result table report 9.226e-14. The comparator uses the table/archive target and preserves the prose mismatch as a source discrepancy; it is not presented as a skill defect.
TwoSampleMR 0.4.22 produced the same four fixed-seed outputs under the current R 4.3.2 compatibility environment, but the original R 3.5 system and seed were unavailable. Strong IVW heterogeneity remains an interpretation limit. The nonsignificant Egger-intercept test is not proof that directional pleiotropy is absent.
A one-instrument archived case executed the Wald ratio without inventing Egger, heterogeneity, funnel or leave-one-out claims. Nine auxiliary case-1 pairs preserved their continuous or log-odds scales. These cases test transfer and boundaries within the same article archive; they are not independent biological validation.
The public package example uses three invented variants and demonstrates interfaces only. Malformed, ambiguous or unsupported inputs are rejected with reasons rather than silently coerced into a desired analysis.
Edition 1.0.2 contains 29 files and 207,191 uncompressed source bytes. Its statistical scripts, tests, examples, dependencies and existing scientific-method references are byte-identical to 1.0.1; the new OpenGWAS access reference and related documentation add account, JWT, security and reproducibility guidance. The 83-test suite and fresh extracted synthetic R estimation and Python rendering passed again.
The runtime-equivalent public.2 skill was discovered by Codex CLI 0.154.0 on Linux and completed the invented estimate/render flow. Edition 1.0.2 was replayed from its clean extracted ZIP but was not separately registered through another native-host discovery. Other agent hosts, operating systems, external importers and buyer delivery were not tested.
29 files · 202 KiB unpacked · standard Agent Skills layout
Package delivery is not available yet. These instructions describe installation once you have the ZIP. The compatibility table records the actual test date, environment and scope for each agent.
Installation overview. Follow the steps for your agent and check the compatibility table for the tested scope.
Preview listing only: checkout and package delivery are not enabled.
Preview — package delivery is not available yet
The steps below describe installation once you have the ZIP. Checkout and downloads are not enabled.
The guard refuses an existing destination so local edits are not overwritten.
test ! -e ~/.codex/skills/mendelian-randomization && mkdir -p ~/.codex/skills/mendelian-randomization
unzip mendelian-randomization-1.0.2.zip -d ~/.codex/skills/mendelian-randomizationInstall the declared R and Python dependencies first. Use a fresh output directory. For remote OpenGWAS retrieval, configure OPENGWAS_JWT only in your environment; the local example does not need it.
cd ~/.codex/skills/mendelian-randomization
PYTHONDONTWRITEBYTECODE=1 python3 -m pytest -q tests
Rscript scripts/run_mr.R --harmonized examples/synthetic-harmonized.csv --effect-scale continuous --out synthetic-run --seed 153 --nboot 100
python3 scripts/render_mr.py --run synthetic-run --out synthetic-figures --scale beta| Agent | Status | Method | Notes |
|---|---|---|---|
| Codex CLI 0.154.0 | Partial2026-09-25 | Runtime-equivalent public.2 host check plus clean extracted 1.0.2 replay | Linux x86_64; Python 3.10.12 and R 4.3.2. Edition 1.0.2 preserves the qualified runtime bytes and passes the three-instrument example, but this documentation-only package identity was not separately registered through Codex discovery. |
| Claude Code Not tested | Untested | Standard SKILL.md layout | This exact public.2 package was not invoked in Claude Code. |
| Antigravity / Gemini Not tested | Untested | Explicit file-reading pointer | This exact public.2 package was not invoked in these hosts. |
| Other agents and operating systems Not tested | Untested | Read SKILL.md and invoke local Python/R explicitly | No Cursor, OpenCode, Windows, macOS, remote-host, external importer or buyer-delivery claim is made. |
Organization-use commercial license for original Nexitia skill material. Separately installed open-source dependencies retain their own licenses and are not bundled. Public proof reports and figures remain CC BY 4.0. The earlier GPL-labelled 1.0.0-public.2 edition is preserved.
The displayed price does not change the license. Terms apply to the identified edition; earlier grants and third-party rights are preserved.
Original owner-directed scientific workflow, qualified against Walker et al. 2019 version 2, case 2. The reusable package contains no dependency source or binary, authentic GWAS rows, article PDFs, original figures or historical archives.
SHA-256 of mendelian-randomization-1.0.2.zip — verify your download against this hash:
b0401d5fae3c6263d8c8fad71d6b5fa5b45af7d9ecc43e45a970823a47ae24fd