Detect and adjust for horizontal pleiotropy in two-sample Mendelian randomization. Distinguishes uncorrelated horizontal pleiotropy (UHP) from correlated horizontal pleiotropy (CHP) and selects a method battery whose assumptions span both regimes.
UHP vs CHP is the central distinction:
A complete sensitivity battery must include at least one CHP-aware method when LDSC rg(exposure, outcome) >= 0.3 or biology suggests a shared upstream factor.
|rg| > 0.3, escalate to Step 3.>= 10000 for stringent reporting.>= 100 sig SNPs) or LHC-MR; report ELPD delta + z + q + gamma.| gcp value | Interpretation |
|---|---|
| 0 | Pure genetic correlation; no partial causation |
| 0.5 | Partial causation; mixture |
| 0.6 | Partial causation; modestly causal direction |
| 1 | Fully causal in tested direction |
| Significant p_gcp != 0 | Directional evidence of (partial) causation |
LCV uses ALL genome-wide SNPs after LDSC-merging; it does NOT use the MR instrument set. It complements MR rather than replacing it.
install.packages(c('remotes', 'TwoSampleMR', 'MendelianRandomization', 'simex'))
remotes::install_github('rondolab/MR-PRESSO') # CRAN-never; GitHub-only
remotes::install_github('jean997/cause') # CHP-aware (Morrison 2020)
remotes::install_github('cnfoley/mrclust') # Mechanism heterogeneity
remotes::install_github('gqi/MRMix') # Mixture-of-distributions
remotes::install_github('qingyuanzhao/mr.raps') # CRAN-archived 2025-03; install from GitHub
remotes::install_github('LizaDarrous/lhcMR') # Heritable-confounder MR
# LCV: git clone https://github.com/lukejoconnor/LCV (R scripts, no package)
Inputs are typically a harmonized TwoSampleMR data.frame (beta.exposure, beta.outcome, se.exposure, se.outcome, SNP, effect_allele, eaf, etc.). LHC-MR and LCV take genome-wide GWAS sumstats with LDSC-style merged SNPs; CAUSE takes pruned signature SNPs plus full sumstats for nuisance estimation.
Tell your AI agent what you want to do: - "Run the standard MR sensitivity battery on my TwoSampleMR-harmonized data" - "I suspect a shared heritable confounder; run CAUSE alongside IVW, Egger, and MR-PRESSO" - "My instruments are mostly weak (mean F < 20); use MR-RAPS instead of IVW" - "I have a polygenic exposure with few significant SNPs; run LHC-MR or LCV" - "Cluster my instruments by causal estimate to identify heterogeneous mechanisms" - "Run bidirectional MR with Steiger pre-filtering on both directions" - "Apply SIMEX to my MR-Egger because I^2_GX is 0.75" - "Build a STROBE-MR sensitivity reporting table from my MR results"
"Run IVW, MR-Egger, weighted median, weighted mode, Cochran Q, Egger intercept, MR-PRESSO with 5000 distributions, Steiger directionality, and leave-one-out on my harmonized data and produce a comparison table."
"Compute I^2_GX for my Egger analysis; if below 0.9 apply SIMEX correction."
"LDSC genetic correlation between my exposure and outcome is 0.45. Run CAUSE in addition to MR-PRESSO and compare delta_ELPD against the sharing model."
"Use LHC-MR to jointly estimate forward causal effect, reverse causal effect, and heritable-confounder contribution from genome-wide sumstats."
"Compute LCV gcp from LDSC-merged sumstats to distinguish causation from pure genetic correlation."
"Mean F-statistic across my instruments is 14. Run MR-RAPS with Huber robust loss and overdispersion modeling; report point estimate and CI alongside IVW."
"Apply MR-Mix and contamination mixture to my weak-IV dataset; reconcile against MR-RAPS."
"I suspect my LDL instruments operate through multiple lipoprotein pathways. Run MR-Clust and report per-cluster IVW estimates with biological annotation suggestions."
"My exposure is polygenic with only 40 genome-wide-significant SNPs. CAUSE is underpowered. Run LHC-MR or report LCV gcp instead."
"Run colocalization at the cis-locus instead of Egger because I only have 3 SNPs in tight LD; complement with Steiger directionality."
"Instrument both directions and apply Steiger pre-filter before primary IVW; report forward and reverse IVW + Egger + median + mode side by side."
"My I^2_GX is 0.78. Apply SIMEX correction to MR-Egger using the simex package; report SIMEX-corrected slope alongside naive slope."
"Generate a STROBE-MR compliant table summarizing all methods, F-statistics, I^2_GX, Egger intercept, PRESSO global / distortion / corrected, Steiger, and CAUSE delta_ELPD with citations."
>= 5000 distributions for global + outlier + distortion tests; produce corrected estimate>= 0.3 or biology suggests shared factor): add CAUSE (if sig SNPs >= 100) OR LHC-MRest_cause_params.qingyuanzhao/mr.raps and call via TwoSampleMR::mr_raps() (thin wrapper) or mr.raps::mr.raps() directly. The MendelianRandomization package does NOT export mr_raps().nCores >= 4.causal-genomics/mendelian-randomization - Primary causal estimation that this sensitivity battery validates causal-genomics/genetic-correlation - LDSC rg required for Step 1 of the decision flow; CHP escalation trigger causal-genomics/colocalization-analysis - Required for cis-MR drug-target signals where instruments are too few for Egger causal-genomics/fine-mapping - Identify causal variants underlying instrument loci causal-genomics/mediation-analysis - Multivariable MR for mediator-adjusted causal estimates population-genetics/association-testing - GWAS summary statistics underlying MR instruments clinical-biostatistics/effect-measures - Translate MR estimates to clinical effect measures