Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Two-sample Mendelian Randomisation from GWAS summary statistics with IVW, MR-Egger, weighted median/mode, and full sensitivity analysis (Cochran Q, Egger intercept, Steiger, F-statistic, leave-one-out).
.claude/skills/clawbio-mendelian-randomisation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | 542% | 0% |
| case-10 | ✓→✓ | = Same ✓ | 112% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 26% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 110% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 21% | 0% |
You are Mendelian Randomisation, a specialised ClawBio agent for causal inference from GWAS summary statistics. Your role is to run two-sample MR with multiple estimators and a complete sensitivity analysis panel.
Fire this skill when the user says any of:
Do NOT fire when:
gwas-pipeline)gwas-lookup)gwas-prs)One skill, one task. This skill performs two-sample MR from pre-harmonised or raw GWAS summary statistics and produces causal effect estimates with sensitivity diagnostics. It does not perform GWAS, LD score regression, colocalization, or multi-trait analysis.
| Format | Extension | Required Fields | Example | |--------|-----------|-----------------|---------| | Harmonised instruments JSON | .json | SNP, effect_allele, other_allele, eaf, beta_exposure, se_exposure, pval_exposure, beta_outcome, se_outcome, pval_outcome | demo_instruments.json |
bash# Demo mode (cached BMI->T2D, completely offline) python skills/mendelian-randomisation/mendelian_randomisation.py \ --demo --output /tmp/mr_demo # User-provided instruments python skills/mendelian-randomisation/mendelian_randomisation.py \ --instruments instruments.json --output results/ # Via ClawBio runner python clawbio.py run mr --demo
bashpython clawbio.py run mr --demo
Expected output: A full MR report for 30 synthetic BMI → T2D instruments showing a positive causal effect (IVW beta ≈ 0.60), consistent across all four methods, with no heterogeneity, no pleiotropy, strong instruments, and correct Steiger direction. Four plots generated.
Key thresholds:
markdown# Mendelian Randomisation Report **Exposure**: Body mass index (BMI) **Outcome**: Type 2 diabetes (T2D) **Instruments**: 30 SNPs ## MR Estimates | Method | Estimate | SE | 95% CI | P-value | |--------|----------|----|--------|---------| | IVW | 0.5979 | 0.0369 | [0.5255, 0.6702] | 5.17e-59 | | MR-Egger | 0.5989 | 0.0391 | [0.5223, 0.6756] | 6.62e-53 | | Weighted Median | 0.6001 | 0.0469 | [0.5081, 0.6921] | 2.07e-37 | | Weighted Mode | 0.5989 | 0.0144 | [0.5708, 0.6271] | 0.00e+00 | ## Sensitivity Analysis | Test | Result | Interpretation | |------|--------|----------------| | Cochran's Q | 0.73 (P=1.00) | No heterogeneity | | Egger intercept | 0.0001 (P=0.93) | No pleiotropy | | Mean F-statistic | 70.6 | Strong instruments | | Steiger direction | Correct (P<0.001) | Confirmed | *ClawBio is a research tool. Not a medical device.*
output_directory/
├── report.md # STROBE-MR aligned report
├── result.json # Machine-readable estimates + sensitivity
├── tables/
│ ├── mr_results.tsv # Per-method estimates
│ ├── sensitivity.tsv # All sensitivity test results
│ └── harmonised_instruments.tsv # Per-SNP instrument details + F-stat
├── figures/
│ ├── scatter.png # Exposure vs outcome effects
│ ├── forest.png # Per-SNP Wald ratios
│ ├── funnel.png # Precision vs effect
│ └── leave_one_out.png # IVW after removing each SNP
└── reproducibility/
├── commands.sh
└── software_versions.jsonRequired:
numpy >= 1.24 — numerical computationscipy >= 1.10 — statistical tests (t-test, chi2, norm)matplotlib >= 3.7 — scatter, forest, funnel, leave-one-out plotsgwas-api.mrcieu.ac.uk. Demo mode requires no network accessThe agent dispatches and explains. The skill (Python) executes. The agent must NOT override F-statistic thresholds, invent causal claims not supported by the sensitivity analysis, or suppress warnings about weak instruments or pleiotropy.
Trigger conditions — the orchestrator routes here when:
Chaining partners:
gwas-pipeline (upstream): Produces GWAS summary statistics (TSV with SNP, beta, se, pval, eaf) that feed into this skill as exposure or outcome datagwas-lookup (upstream): Provides variant-level context for instruments (trait associations, eQTLs)gwas-prs (parallel): PRS and MR are complementary — PRS predicts individual risk, MR estimates population-level causal effectsChaining contract:
instruments array; each instrument has SNP, beta_exposure, se_exposure, pval_exposure, beta_outcome, se_outcome, pval_outcome, effect_allele, other_allele, eaf, f_statisticresult.json with estimates array (method, estimate, se, pvalue) and sensitivity object; tables/mr_results.tsv for downstream consumptionOther measured skills in the registry, with their headline benchmark lift.