[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CVHSRBF2R31MEFMDSP5Q1E":3,"skill-same:01M7CVHSRBF2R31MEFMDSP5Q1E":66},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M7CVHSRBF2R31MEFMDSP5Q1E","mendelian-randomisation",null,"mrsonord2240\u002Fopenscience-specialists","mrsonord2240","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F76487430?v=4","01M7CTEM40S43GSJZ9A3YCCXZK","Samuel Nord","01M7CTEM4K69JD1GBYNHVJ9ZP4",2,"MIT","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: mendelian-randomisation\ndescription: >-\nlicense: MIT\nauthor: Reza\n---\n> **Source**: [https:\u002F\u002Fgithub.com\u002Faipoch\u002Fmedical-research-skills](https:\u002F\u002Fgithub.com\u002Faipoch\u002Fmedical-research-skills)\n\n\n# 🧬 Mendelian Randomisation\n\nYou 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.\n\n## Trigger\n\n**Fire this skill when the user says any of:**\n- \"Run mendelian randomisation on these GWAS results\"\n- \"Is there a causal effect of X on Y?\"\n- \"Two-sample MR analysis\"\n- \"MR-Egger \u002F IVW \u002F weighted median\"\n- \"Causal inference from GWAS summary statistics\"\n- \"Drug target validation with genetic instruments\"\n- \"MR sensitivity analysis\"\n\n**Do NOT fire when:**\n- User wants a GWAS association study (route to `gwas-pipeline`)\n- User wants to look up a single variant (route to `gwas-lookup`)\n- User wants polygenic risk scores (route to `gwas-prs`)\n- User wants colocalization analysis (different method, different skill)\n\n## Why This Exists\n\n- **Without it**: Running best-practice MR requires hundreds of lines of R code across TwoSampleMR, MendelianRandomization, and MR-PRESSO packages, with manual orchestration of instrument selection, harmonisation, four+ estimators, and six+ sensitivity tests\n- **With it**: A single command produces all estimators, the full sensitivity battery, four publication-ready plots, and a STROBE-MR aligned report\n- **Why ClawBio**: Grounded in Burgess et al. (2013), Bowden et al. (2015\u002F2016), Verbanck et al. (2018) — every threshold and method traces to a published paper, not ad hoc parameter choices\n\n## Core Capabilities\n\n1. **Four MR estimators**: IVW (random effects), MR-Egger, weighted median, weighted mode\n2. **Full sensitivity battery**: Cochran's Q, Egger intercept, Steiger directionality, F-statistic, I²_GX, leave-one-out\n3. **Instrument diagnostics**: F-statistic per SNP (warning when F \u003C 10), palindromic SNP flagging, weak instrument detection\n4. **Publication plots**: Scatter, forest, funnel, leave-one-out (four .png files)\n5. **STROBE-MR report**: Assumptions stated, all methods and sensitivity results tabulated, caveats explicit\n\n## Scope\n\n**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.\n\n## Input Formats\n\n| Format | Extension | Required Fields | Example |\n|--------|-----------|-----------------|---------|\n| 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` |\n\n## Workflow\n\n1. **Load**: Read harmonised instruments from JSON (or from IEU OpenGWAS in live mode)\n2. **Validate**: Check F-statistics, flag weak instruments (F \u003C 10), flag palindromic SNPs with ambiguous EAF\n3. **Estimate**: Run IVW, MR-Egger, weighted median, weighted mode\n4. **Sensitivity**: Cochran's Q, Egger intercept, Steiger test, I²_GX, leave-one-out\n5. **Visualise**: Scatter, forest, funnel, leave-one-out plots\n6. **Report**: STROBE-MR aligned markdown with all results, warnings, and disclaimer\n\n## CLI Reference\n\n```bash\n# Demo mode (cached BMI->T2D, completely offline)\npython skills\u002Fmendelian-randomisation\u002Fmendelian_randomisation.py \\\n  --demo --output \u002Ftmp\u002Fmr_demo\n\n# User-provided instruments\npython skills\u002Fmendelian-randomisation\u002Fmendelian_randomisation.py \\\n  --instruments instruments.json --output results\u002F\n\n# Via ClawBio runner\npython clawbio.py run mr --demo\n```\n\n## Demo\n\n```bash\npython clawbio.py run mr --demo\n```\n\nExpected 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.\n\n## Algorithm \u002F Methodology\n\n1. **IVW**: beta = sum(w * bx * by) \u002F sum(w * bx²), with multiplicative random-effects variance inflation (Burgess et al., 2013)\n2. **MR-Egger**: Weighted linear regression of by on bx with intercept; slope = causal estimate, intercept = pleiotropy (Bowden et al., 2015)\n3. **Weighted Median**: Median of Wald ratios weighted by inverse-variance; consistent when ≥50% weight from valid instruments (Bowden et al., 2016)\n4. **Weighted Mode**: Kernel density mode of weighted Wald ratios (Hartwig et al., 2017)\n\n**Key thresholds**:\n- F-statistic > 10 for instrument strength (Staiger & Stock, 1997)\n- I²_GX > 0.9 for MR-Egger validity; SIMEX recommended below (Bowden et al., 2016)\n- Cochran's Q P \u003C 0.05 indicates heterogeneity\n- Egger intercept P \u003C 0.05 indicates directional pleiotropy\n\n## Example Output\n\n```markdown\n# Mendelian Randomisation Report\n\n**Exposure**: Body mass index (BMI)\n**Outcome**: Type 2 diabetes (T2D)\n**Instruments**: 30 SNPs\n\n## MR Estimates\n\n| Method | Estimate | SE | 95% CI | P-value |\n|--------|----------|----|--------|---------|\n| IVW | 0.5979 | 0.0369 | [0.5255, 0.6702] | 5.17e-59 |\n| MR-Egger | 0.5989 | 0.0391 | [0.5223, 0.6756] | 6.62e-53 |\n| Weighted Median | 0.6001 | 0.0469 | [0.5081, 0.6921] | 2.07e-37 |\n| Weighted Mode | 0.5989 | 0.0144 | [0.5708, 0.6271] | 0.00e+00 |\n\n## Sensitivity Analysis\n\n| Test | Result | Interpretation |\n|------|--------|----------------|\n| Cochran's Q | 0.73 (P=1.00) | No heterogeneity |\n| Egger intercept | 0.0001 (P=0.93) | No pleiotropy |\n| Mean F-statistic | 70.6 | Strong instruments |\n| Steiger direction | Correct (P\u003C0.001) | Confirmed |\n\n*ClawBio is a research tool. Not a medical device.*\n```\n\n## Output Structure\n\n```\noutput_directory\u002F\n├── report.md                              # STROBE-MR aligned report\n├── result.json                            # Machine-readable estimates + sensitivity\n├── tables\u002F\n│   ├── mr_results.tsv                     # Per-method estimates\n│   ├── sensitivity.tsv                    # All sensitivity test results\n│   └── harmonised_instruments.tsv         # Per-SNP instrument details + F-stat\n├── figures\u002F\n│   ├── scatter.png                        # Exposure vs outcome effects\n│   ├── forest.png                         # Per-SNP Wald ratios\n│   ├── funnel.png                         # Precision vs effect\n│   └── leave_one_out.png                  # IVW after removing each SNP\n└── reproducibility\u002F\n    ├── commands.sh\n    └── software_versions.json\n```\n\n## Dependencies\n\n**Required**:\n- `numpy` >= 1.24 — numerical computation\n- `scipy` >= 1.10 — statistical tests (t-test, chi2, norm)\n- `matplotlib` >= 3.7 — scatter, forest, funnel, leave-one-out plots\n\n## Gotchas\n\n- **Palindromic SNPs**: You will want to silently resolve A\u002FT and C\u002FG SNPs using the EAF threshold of 0.42. Do not. When EAF is between 0.42 and 0.58, the correct strand is ambiguous. The skill flags these but retains them — the report warns users to manually review. Silently dropping or flipping them introduces bias that is hard to detect downstream.\n\n- **Weak instruments**: You will want to report F \u003C 10 as a table entry and move on. Do not. Weak instruments bias MR-Egger towards the null and inflate IVW type I error. The skill prints a stderr WARNING for every instrument with F \u003C 10 and highlights it in the report narrative, not just the sensitivity table. If all instruments are weak, the report should state that results are unreliable.\n\n- **Winner's curse**: You will want to select instruments from the same GWAS used as the exposure dataset. Do not, when possible. Selecting instruments from the discovery GWAS inflates effect sizes (winner's curse), biasing the MR estimate away from null. The skill documents this caveat in the report. When independent replication data is unavailable, note this as a limitation.\n\n- **Ignoring MR-Egger intercept**: You will want to report a significant Egger intercept alongside a significant IVW and claim \"robust causal evidence.\" Do not. A significant intercept means directional pleiotropy is present. If Egger intercept P \u003C 0.05, the IVW estimate is biased and the Egger slope should be preferred. The skill's report narrative explicitly flags this.\n\n## Safety\n\n- **Local-first**: Demo mode is fully offline with cached data. Live mode contacts IEU OpenGWAS API (public, unauthenticated) for summary statistics only — no patient data uploaded\n- **Network dependency**: Live mode requires `gwas-api.mrcieu.ac.uk`. Demo mode requires no network access\n- **Disclaimer**: Every report includes the ClawBio medical disclaimer\n- **No hallucinated science**: All thresholds trace to cited publications\n- **Audit trail**: Full command log and software versions in reproducibility bundle\n\n## Agent Boundary\n\nThe 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.\n\n## Integration with Bio Orchestrator\n\n**Trigger conditions** — the orchestrator routes here when:\n- User mentions Mendelian randomisation, causal inference from GWAS, or two-sample MR\n- User provides GWAS summary statistics and asks about causal effects\n\n**Chaining partners**:\n- `gwas-pipeline` (upstream): Produces GWAS summary statistics (TSV with SNP, beta, se, pval, eaf) that feed into this skill as exposure or outcome data\n- `gwas-lookup` (upstream): Provides variant-level context for instruments (trait associations, eQTLs)\n- `gwas-prs` (parallel): PRS and MR are complementary — PRS predicts individual risk, MR estimates population-level causal effects\n\n**Chaining contract**:\n- **Input**: JSON with `instruments` array; each instrument has `SNP`, `beta_exposure`, `se_exposure`, `pval_exposure`, `beta_outcome`, `se_outcome`, `pval_outcome`, `effect_allele`, `other_allele`, `eaf`, `f_statistic`\n- **Output**: `result.json` with `estimates` array (method, estimate, se, pvalue) and `sensitivity` object; `tables\u002Fmr_results.tsv` for downstream consumption\n\n## Maintenance\n\n- **Review cadence**: Re-evaluate when new MR methods are published or IEU OpenGWAS API changes\n- **Staleness signals**: New MR-PRESSO version, changes to STROBE-MR checklist, IEU API deprecation\n- **Deprecation**: If superseded by a more comprehensive causal inference skill\n\n## Citations\n\n- [Burgess et al. (2013)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F23569189\u002F) — IVW method. *Genet Epidemiol* 37:658–665\n- [Bowden et al. (2015)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F26050253\u002F) — MR-Egger. *Int J Epidemiol* 44:512–525\n- [Bowden et al. (2016)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F26892547\u002F) — Weighted median. *Genet Epidemiol* 40:304–314\n- [Hartwig et al. (2017)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F29040600\u002F) — Weighted mode. *Int J Epidemiol* 46:1985–1998\n- [Verbanck et al. (2018)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F29686387\u002F) — MR-PRESSO. *Nature Genetics* 50:693–698\n- [Hemani et al. (2017)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F28877894\u002F) — Steiger test. *PLOS Genetics* 13:e1007081\n- [Skrivankova et al. (2021)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F34698778\u002F) — STROBE-MR. *BMJ* 375:n2233\n- [Staiger & Stock (1997)](https:\u002F\u002Fdoi.org\u002F10.2307\u002F2171753) — Weak instruments. *Econometrica* 65:557–586\n\n## Input Validation\n\nThis skill accepts requests that match the documented purpose of `mendelian-randomisation` and include enough context to complete the workflow safely.\n\nDo not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:\n\n> `mendelian-randomisation` only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.\n","> **Source**: [https:\u002F\u002Fgithub.com\u002Faipoch\u002Fmedical-research-skills](https:\u002F\u002Fgithub.com\u002Faipoch\u002Fmedical-research-skills)\n\n\n# 🧬 Mendelian Randomisation\n\nYou 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.\n\n## Trigger\n\n**Fire this skill when the user says any of:**\n- \"Run mendelian randomisation on these GWAS results\"\n- \"Is there a causal effect of X on Y?\"\n- \"Two-sample MR analysis\"\n- \"MR-Egger \u002F IVW \u002F weighted median\"\n- \"Causal inference from GWAS summary statistics\"\n- \"Drug target validation with genetic instruments\"\n- \"MR sensitivity analysis\"\n\n**Do NOT fire when:**\n- User wants a GWAS association study (route to `gwas-pipeline`)\n- User wants to look up a single variant (route to `gwas-lookup`)\n- User wants polygenic risk scores (route to `gwas-prs`)\n- User wants colocalization analysis (different method, different skill)\n\n## Why This Exists\n\n- **Without it**: Running best-practice MR requires hundreds of lines of R code across TwoSampleMR, MendelianRandomization, and MR-PRESSO packages, with manual orchestration of instrument selection, harmonisation, four+ estimators, and six+ sensitivity tests\n- **With it**: A single command produces all estimators, the full sensitivity battery, four publication-ready plots, and a STROBE-MR aligned report\n- **Why ClawBio**: Grounded in Burgess et al. (2013), Bowden et al. (2015\u002F2016), Verbanck et al. (2018) — every threshold and method traces to a published paper, not ad hoc parameter choices\n\n## Core Capabilities\n\n1. **Four MR estimators**: IVW (random effects), MR-Egger, weighted median, weighted mode\n2. **Full sensitivity battery**: Cochran's Q, Egger intercept, Steiger directionality, F-statistic, I²_GX, leave-one-out\n3. **Instrument diagnostics**: F-statistic per SNP (warning when F \u003C 10), palindromic SNP flagging, weak instrument detection\n4. **Publication plots**: Scatter, forest, funnel, leave-one-out (four .png files)\n5. **STROBE-MR report**: Assumptions stated, all methods and sensitivity results tabulated, caveats explicit\n\n## Scope\n\n**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.\n\n## Input Formats\n\n| Format | Extension | Required Fields | Example |\n|--------|-----------|-----------------|---------|\n| 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` |\n\n## Workflow\n\n1. **Load**: Read harmonised instruments from JSON (or from IEU OpenGWAS in live mode)\n2. **Validate**: Check F-statistics, flag weak instruments (F \u003C 10), flag palindromic SNPs with ambiguous EAF\n3. **Estimate**: Run IVW, MR-Egger, weighted median, weighted mode\n4. **Sensitivity**: Cochran's Q, Egger intercept, Steiger test, I²_GX, leave-one-out\n5. **Visualise**: Scatter, forest, funnel, leave-one-out plots\n6. **Report**: STROBE-MR aligned markdown with all results, warnings, and disclaimer\n\n## CLI Reference\n\n```bash\n# Demo mode (cached BMI->T2D, completely offline)\npython skills\u002Fmendelian-randomisation\u002Fmendelian_randomisation.py \\\n  --demo --output \u002Ftmp\u002Fmr_demo\n\n# User-provided instruments\npython skills\u002Fmendelian-randomisation\u002Fmendelian_randomisation.py \\\n  --instruments instruments.json --output results\u002F\n\n# Via ClawBio runner\npython clawbio.py run mr --demo\n```\n\n## Demo\n\n```bash\npython clawbio.py run mr --demo\n```\n\nExpected 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.\n\n## Algorithm \u002F Methodology\n\n1. **IVW**: beta = sum(w * bx * by) \u002F sum(w * bx²), with multiplicative random-effects variance inflation (Burgess et al., 2013)\n2. **MR-Egger**: Weighted linear regression of by on bx with intercept; slope = causal estimate, intercept = pleiotropy (Bowden et al., 2015)\n3. **Weighted Median**: Median of Wald ratios weighted by inverse-variance; consistent when ≥50% weight from valid instruments (Bowden et al., 2016)\n4. **Weighted Mode**: Kernel density mode of weighted Wald ratios (Hartwig et al., 2017)\n\n**Key thresholds**:\n- F-statistic > 10 for instrument strength (Staiger & Stock, 1997)\n- I²_GX > 0.9 for MR-Egger validity; SIMEX recommended below (Bowden et al., 2016)\n- Cochran's Q P \u003C 0.05 indicates heterogeneity\n- Egger intercept P \u003C 0.05 indicates directional pleiotropy\n\n## Example Output\n\n```markdown\n# Mendelian Randomisation Report\n\n**Exposure**: Body mass index (BMI)\n**Outcome**: Type 2 diabetes (T2D)\n**Instruments**: 30 SNPs\n\n## MR Estimates\n\n| Method | Estimate | SE | 95% CI | P-value |\n|--------|----------|----|--------|---------|\n| IVW | 0.5979 | 0.0369 | [0.5255, 0.6702] | 5.17e-59 |\n| MR-Egger | 0.5989 | 0.0391 | [0.5223, 0.6756] | 6.62e-53 |\n| Weighted Median | 0.6001 | 0.0469 | [0.5081, 0.6921] | 2.07e-37 |\n| Weighted Mode | 0.5989 | 0.0144 | [0.5708, 0.6271] | 0.00e+00 |\n\n## Sensitivity Analysis\n\n| Test | Result | Interpretation |\n|------|--------|----------------|\n| Cochran's Q | 0.73 (P=1.00) | No heterogeneity |\n| Egger intercept | 0.0001 (P=0.93) | No pleiotropy |\n| Mean F-statistic | 70.6 | Strong instruments |\n| Steiger direction | Correct (P\u003C0.001) | Confirmed |\n\n*ClawBio is a research tool. Not a medical device.*\n```\n\n## Output Structure\n\n```\noutput_directory\u002F\n├── report.md                              # STROBE-MR aligned report\n├── result.json                            # Machine-readable estimates + sensitivity\n├── tables\u002F\n│   ├── mr_results.tsv                     # Per-method estimates\n│   ├── sensitivity.tsv                    # All sensitivity test results\n│   └── harmonised_instruments.tsv         # Per-SNP instrument details + F-stat\n├── figures\u002F\n│   ├── scatter.png                        # Exposure vs outcome effects\n│   ├── forest.png                         # Per-SNP Wald ratios\n│   ├── funnel.png                         # Precision vs effect\n│   └── leave_one_out.png                  # IVW after removing each SNP\n└── reproducibility\u002F\n    ├── commands.sh\n    └── software_versions.json\n```\n\n## Dependencies\n\n**Required**:\n- `numpy` >= 1.24 — numerical computation\n- `scipy` >= 1.10 — statistical tests (t-test, chi2, norm)\n- `matplotlib` >= 3.7 — scatter, forest, funnel, leave-one-out plots\n\n## Gotchas\n\n- **Palindromic SNPs**: You will want to silently resolve A\u002FT and C\u002FG SNPs using the EAF threshold of 0.42. Do not. When EAF is between 0.42 and 0.58, the correct strand is ambiguous. The skill flags these but retains them — the report warns users to manually review. Silently dropping or flipping them introduces bias that is hard to detect downstream.\n\n- **Weak instruments**: You will want to report F \u003C 10 as a table entry and move on. Do not. Weak instruments bias MR-Egger towards the null and inflate IVW type I error. The skill prints a stderr WARNING for every instrument with F \u003C 10 and highlights it in the report narrative, not just the sensitivity table. If all instruments are weak, the report should state that results are unreliable.\n\n- **Winner's curse**: You will want to select instruments from the same GWAS used as the exposure dataset. Do not, when possible. Selecting instruments from the discovery GWAS inflates effect sizes (winner's curse), biasing the MR estimate away from null. The skill documents this caveat in the report. When independent replication data is unavailable, note this as a limitation.\n\n- **Ignoring MR-Egger intercept**: You will want to report a significant Egger intercept alongside a significant IVW and claim \"robust causal evidence.\" Do not. A significant intercept means directional pleiotropy is present. If Egger intercept P \u003C 0.05, the IVW estimate is biased and the Egger slope should be preferred. The skill's report narrative explicitly flags this.\n\n## Safety\n\n- **Local-first**: Demo mode is fully offline with cached data. Live mode contacts IEU OpenGWAS API (public, unauthenticated) for summary statistics only — no patient data uploaded\n- **Network dependency**: Live mode requires `gwas-api.mrcieu.ac.uk`. Demo mode requires no network access\n- **Disclaimer**: Every report includes the ClawBio medical disclaimer\n- **No hallucinated science**: All thresholds trace to cited publications\n- **Audit trail**: Full command log and software versions in reproducibility bundle\n\n## Agent Boundary\n\nThe 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.\n\n## Integration with Bio Orchestrator\n\n**Trigger conditions** — the orchestrator routes here when:\n- User mentions Mendelian randomisation, causal inference from GWAS, or two-sample MR\n- User provides GWAS summary statistics and asks about causal effects\n\n**Chaining partners**:\n- `gwas-pipeline` (upstream): Produces GWAS summary statistics (TSV with SNP, beta, se, pval, eaf) that feed into this skill as exposure or outcome data\n- `gwas-lookup` (upstream): Provides variant-level context for instruments (trait associations, eQTLs)\n- `gwas-prs` (parallel): PRS and MR are complementary — PRS predicts individual risk, MR estimates population-level causal effects\n\n**Chaining contract**:\n- **Input**: JSON with `instruments` array; each instrument has `SNP`, `beta_exposure`, `se_exposure`, `pval_exposure`, `beta_outcome`, `se_outcome`, `pval_outcome`, `effect_allele`, `other_allele`, `eaf`, `f_statistic`\n- **Output**: `result.json` with `estimates` array (method, estimate, se, pvalue) and `sensitivity` object; `tables\u002Fmr_results.tsv` for downstream consumption\n\n## Maintenance\n\n- **Review cadence**: Re-evaluate when new MR methods are published or IEU OpenGWAS API changes\n- **Staleness signals**: New MR-PRESSO version, changes to STROBE-MR checklist, IEU API deprecation\n- **Deprecation**: If superseded by a more comprehensive causal inference skill\n\n## Citations\n\n- [Burgess et al. (2013)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F23569189\u002F) — IVW method. *Genet Epidemiol* 37:658–665\n- [Bowden et al. (2015)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F26050253\u002F) — MR-Egger. *Int J Epidemiol* 44:512–525\n- [Bowden et al. (2016)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F26892547\u002F) — Weighted median. *Genet Epidemiol* 40:304–314\n- [Hartwig et al. (2017)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F29040600\u002F) — Weighted mode. *Int J Epidemiol* 46:1985–1998\n- [Verbanck et al. (2018)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F29686387\u002F) — MR-PRESSO. *Nature Genetics* 50:693–698\n- [Hemani et al. (2017)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F28877894\u002F) — Steiger test. *PLOS Genetics* 13:e1007081\n- [Skrivankova et al. (2021)](https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F34698778\u002F) — STROBE-MR. *BMJ* 375:n2233\n- [Staiger & Stock (1997)](https:\u002F\u002Fdoi.org\u002F10.2307\u002F2171753) — Weak instruments. *Econometrica* 65:557–586\n\n## Input Validation\n\nThis skill accepts requests that match the documented purpose of `mendelian-randomisation` and include enough context to complete the workflow safely.\n\nDo not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:\n\n> `mendelian-randomisation` only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.\n",{"name":5,"author":23,"license":14,"description":24},"Reza","","main","e0956dc9606356ab78468936b502e55a365282e2","specialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation",0,"https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists","https:\u002F\u002Fgithub.com\u002Fmrsonord2240","2026-10-12 03:19:04",{"source":7,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add mrsonord2240\u002Fopenscience-specialists --skill mendelian-randomisation",{"tool":38,"command":39},"bunx","bunx skills add mrsonord2240\u002Fopenscience-specialists --skill mendelian-randomisation",{"tool":41,"command":42},"pnpm","pnpm dlx skills add mrsonord2240\u002Fopenscience-specialists --skill mendelian-randomisation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002FSKILL.md",true,[46,52,58,62],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"example_data\u002Fdemo_instruments.json","REFERENCE","参考文档",11835,"https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002Fexample_data\u002Fdemo_instruments.json",{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"mendelian_randomisation.py","SCRIPT","脚本",28295,"https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002Fmendelian_randomisation.py",{"path":59,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":60,"sourceHtmlUrl":61},"POLISH_CHANGELOG.md",603,"https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002FPOLISH_CHANGELOG.md",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"tests\u002F__init__.py",32,"https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Fmendelian-randomization-specialist\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fmendelian-randomisation\u002Ftests\u002F__init__.py",[67,75,82,89,96,103],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":18},"01M7CW36A6QAGWFE2C008M1XPG","bio-workflows-metabolomics-pipeline","Orchestrates the untargeted LC-MS metabolomics pipeline end-to-end (xcms 4.x feature extraction, QC\u002Fdrift\u002Fnormalization, confidence-stratified annotation, permutation-validated statistics, background-aware pathway mapping), naming what each stage decides and where it silently fails. Use when running a full LC-MS metabolomics study from raw mzML to enriched pathways and needing the honest handoffs between stages. Each stage defers to its component skill for parameters and traps; for stable-isotope flux (a separate branch, not this untargeted flow) see metabolomics\u002Fisotope-tracing.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-workflows-metabolomics-pipeline\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":18},"01M7CW2Y18623NA2S1Y30FRQW1","bio-metabolomics-xcms-preprocessing","Programmatic untargeted LC-MS feature extraction in R with the modern xcms 4.x MsExperiment\u002FXcmsExperiment API, taking raw mzML to a feature table via CentWave peak detection, retention-time alignment, peak-density correspondence, gap-filling, CAMERA redundancy collapse, and built-in QC feature filtering. Use when converting centroided LC-MS runs into a features-by-samples matrix and deciding centWave\u002Fgrouping\u002Falignment parameters. For drift correction and QC\u002FCV filtering execution see metabolomics\u002Fnormalization-qc; for metabolite identification see metabolomics\u002Fmetabolite-annotation; for the MS-DIAL GUI alternative with MS2Dec deconvolution see metabolomics\u002Fmsdial-preprocessing; for downstream statistics see metabolomics\u002Fstatistical-analysis.","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-metabolomics-xcms-preprocessing\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M7CW2M364HVWPNQEKE2WP4PP","bio-metabolomics-statistical-analysis","Decision-grade statistical analysis for metabolomics intensity tables. Covers transformation and scaling (Pareto vs unit-variance as a hidden hypothesis), unsupervised structure (PCA\u002FHCA for QC), permutation-validated PLS-DA\u002FOPLS-DA (R2 vs Q2, double CV, VIP as heuristic), univariate testing (Welch\u002FMann-Whitney\u002FANOVA\u002FLMM with covariate adjustment), and dependence-aware multiple testing. Use when testing which metabolites differ, building or validating a discriminant model, choosing a scaling, or correcting many correlated tests. For sample-wise normalization\u002Fdrift correction see metabolomics\u002Fnormalization-qc; for ML classifiers and selection-inside-CV leakage see machine-learning\u002Fbiomarker-discovery and machine-learning\u002Fmodel-validation; for pathway interpretation see metabolomics\u002Fpathway-mapping; for design\u002Fpower\u002Fmultiplicity regime see experimental-design\u002Fmultiple-testing.","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-metabolomics-statistical-analysis\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":18},"01M7CW2BCBF851WYE03Z8XPEDQ","bio-metabolomics-pathway-mapping","Maps metabolomics results to biological pathways via over-representation (ORA), metabolite-set enrichment (MSEA\u002FQEA), mummichog\u002FPSEA on raw m\u002Fz peaks, and network-diffusion enrichment (FELLA), with correct background-set construction and honest interpretive ceilings. Use when interpreting differential metabolites or an untargeted LC-MS feature table in pathway context, choosing ORA vs MSEA vs mummichog vs topology, or setting the reference\u002Fbackground set. For annotation confidence levels feeding ORA see metabolomics\u002Fmetabolite-annotation; for gene-set concepts see pathway-analysis\u002Fgo-enrichment and pathway-analysis\u002Fgsea; for joint gene+metabolite pathways see multi-omics-integration\u002Fmofa-integration.","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-metabolomics-pathway-mapping\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":18},"01M7CW21NSZMCPMF7D9CHJM718","bio-metabolomics-normalization-qc","Designs QC, corrects signal drift, removes batch effects, filters features, normalizes samples, and imputes missing values for untargeted LC-MS\u002FGC-MS metabolomics, framing each step as a measurement model that can create or erase biological signal. Use when processing a peak\u002Ffeature table before statistical analysis, choosing a drift-correction or sample-normalization method, deciding QC RSD vs D-ratio filtering, or handling left-censored missing values. The feature table is produced by metabolomics\u002Fxcms-preprocessing or metabolomics\u002Fmsdial-preprocessing; transformation\u002Fscaling for modeling defers to metabolomics\u002Fstatistical-analysis; cross-study design issues link to experimental-design\u002Fbatch-design.","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-metabolomics-normalization-qc\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":71,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":18},"01M7CW1SWVM0NYHVE6Q7MA3G7R","bio-metabolomics-msdial-preprocessing","Runs the MS-DIAL preprocessing workflow (peak picking, MS2Dec spectral deconvolution, alignment, gap-filling) and imports the alignment-result table into R or Python with honest filtering. Use when preprocessing LC-MS DDA\u002FDIA (SWATH) or GC-MS raw data with MS-DIAL, deciding MS-DIAL vs XCMS, configuring the MSDIALCUI console run, or parsing an MS-DIAL export into a clean feature matrix. For programmatic R peak detection and the feature-table-as-artifact framing see metabolomics\u002Fxcms-preprocessing; for lipid annotation mode see metabolomics\u002Flipidomics; for MSI-level confidence honesty see metabolomics\u002Fmetabolite-annotation; for drift correction and QC see metabolomics\u002Fnormalization-qc.","https:\u002F\u002Fgithub.com\u002Fmrsonord2240\u002Fopenscience-specialists\u002Fblob\u002Fmain\u002Fspecialists\u002Funtargeted-metabolomics-analyst\u002Fversions\u002F1.0.0\u002Fpackage\u002Fskills\u002Fbio-metabolomics-msdial-preprocessing\u002FSKILL.md",[],[]]