多组学因果推断实操:孟德尔随机化与中介效应建模
本文介绍多组学背景下孟德尔随机化(MR)与中介效应建模的整合分析框架。涵盖理论基础、数据准备、质量控制、核心分析及敏感性验证全流程。通过免疫表型至代谢物至疾病的案例,展示如何利用 R 和 Python 代码进行因果推断。重点讲解工具变量筛选、等位基因对齐、多重检验校正及中介比例计算。适用于解析复杂疾病机制,为精准医学研究提供从关联到因果的方法论支持。

本文介绍多组学背景下孟德尔随机化(MR)与中介效应建模的整合分析框架。涵盖理论基础、数据准备、质量控制、核心分析及敏感性验证全流程。通过免疫表型至代谢物至疾病的案例,展示如何利用 R 和 Python 代码进行因果推断。重点讲解工具变量筛选、等位基因对齐、多重检验校正及中介比例计算。适用于解析复杂疾病机制,为精准医学研究提供从关联到因果的方法论支持。

在精准医学时代,多组学技术(基因组学、转录组学、蛋白质组学、代谢组学等)已成为解析复杂疾病机制的核心工具。通过整合不同生物分子层面的数据,研究者能构建从基因到表型的分子调控网络,但传统分析往往止步于变量间的相关性描述,难以区分因果关系与混杂干扰。例如,在肥胖与 2 型糖尿病的研究中,炎症因子水平升高与两者均相关,但无法确定是炎症导致糖尿病,还是肥胖同时驱动了两者变化。
孟德尔随机化(Mendelian Randomization, MR)借助遗传变异的'自然随机分配'特性,为解决因果推断难题提供了新思路。其核心逻辑是:遗传变异在受孕时随机分配,不受后天环境和疾病状态影响,可作为暴露因素的工具变量(Instrumental Variable, IV),有效规避混杂偏倚与反向因果问题。而中介效应建模能进一步拆解因果通路,识别多组学分子在暴露 - 结局关系中的中间传导角色,例如揭示某蛋白质如何介导基因变异对疾病的影响。
本指南将系统梳理多组学背景下 MR 与中介效应建模的整合分析框架,结合真实案例与可复现代码,助力研究者实现从'发现关联'到'解析机制'的跨越。
MR 的有效性依赖于工具变量必须满足以下三个不可撼动的假设:
中介效应建模旨在将暴露(X)对结局(Y)的总效应分解为两部分:
在多组学研究中,中介因子可来自转录组(基因表达)、蛋白质组(血浆蛋白)、代谢组(代谢物)等不同层面,形成'基因型→转录物→蛋白质→代谢物→疾病'的层级因果通路。
多组学数据具有维度高、异质性强的特点,需通过以下策略实现与 MR 的整合:
以'免疫表型→血浆代谢物→再生障碍性贫血(AA)'的因果通路解析为例,完整展示多组学 MR 中介分析的实施步骤。
明确三要素:
| 数据类型 | 推荐数据库 | 获取方式 | 关键参数 |
|---|---|---|---|
| 免疫表型 GWAS | IEU GWAS(prot-a 队列) | 在线 API 调用 | 样本量>10 万,含效应量及 P 值 |
| 代谢物 GWAS | Metabolomics GWAS Catalog | 批量下载汇总数据 | 包含 pQTL 及代谢物浓度数据 |
| 疾病 GWAS | DisGeNET、FinnGen | 筛选 AA 相关条目 | 病例数>500,对照数>1000 |
| 工具变量参考 | GTEx(eQTL)、PharmGKB | 提取 SNP - 分子关联 | LD 阈值 r²<0.01,P<1e-5 |
实操技巧:通过 IEU GWAS 数据库的 extract_instruments() 函数可直接获取标准化工具变量,无需本地存储几十 G 原始数据,代码如下(R 语言):
# 安装并加载 TwoSampleMR 包
install.packages("TwoSampleMR")
library(TwoSampleMR)
# 从 IEU 数据库提取免疫表型(CD39+Treg)的工具变量
exposure_dat <- extract_instruments(outcomes = "ieu-a-1234", p1 = 1e-5, clump = TRUE)
# 查看工具变量基本信息
head(exposure_dat[, c("snp", "beta", "se", "pval")])
遵循'三步骤筛选法':
harmonise_data() 函数统一 SNP 的等位基因方向,避免链翻转导致的效应量偏差:import pandas as pd
import numpy as np
from TwoSampleMR.py import harmonise
# 读取暴露、中介、结局数据
exposure = pd.read_csv("exposure_snps.csv")
mediator = pd.read_csv("mediator_snps.csv")
outcome = pd.read_csv("outcome_snps.csv")
# 等位基因对齐
harmonised_exp_med = harmonise.harmonise_data(exposure, mediator)
harmonised_med_out = harmonise.harmonise_data(mediator, outcome)
采用'三步法'验证因果关系链:暴露→中介、中介→结局、暴露→结局。
以 CD39⁺Treg(暴露)对 GPI(中介)的效应分析为例,采用多种 MR 方法交叉验证:
# 1. 加载数据
med_dat <- extract_outcome_data(snps = exposure_dat$snp, outcomes = "ieu-b-5678")
dat_xm <- harmonise_data(exposure_dat, med_dat)
# 2. 多方法分析
mr_results_xm <- mr(dat_xm, method_list = c("ivw", "mr_egger_regression", "weighted_median"))
# 3. 结果输出
print(mr_results_xm[, c("method", "b", "se", "pval", "or")])
关键结果解读:若 IVW 法显示 βₓₘ=0.23(95% CI:0.11~0.35,P=0.002),表明 CD39⁺Treg 水平每增加 1SD,GPI 浓度显著升高 23%,满足中介效应的前提条件。
验证 GPI 对 AA 的因果效应,需控制暴露因素的混杂:
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor
# 构建多变量回归模型(控制暴露效应)
X = harmonised_med_out[["beta_med", "beta_exp"]] # 中介效应量 + 暴露效应量
X = sm.add_constant(X)
y = harmonised_med_out["beta_out"] # 计算 VIF 值,排除共线性(VIF<5 为合格)
vif = pd.DataFrame()
vif["变量"] = X.columns
vif["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
# 拟合模型
model_my = sm.OLS(y, X).fit()
print(model_my.summary())
采用 IVW 法作为核心方法,MR-Egger 和加权中位数法作为敏感性验证:
# 提取结局数据
out_dat <- extract_outcome_data(snps = exposure_dat$snp, outcomes = "ieu-c-9012")
dat_xy <- harmonise_data(exposure_dat, out_dat)
# 总效应估计
mr_results_xy <- mr(dat_xy, method_list = c("ivw", "mr_egger_regression", "weighted_median"))
# 森林图可视化
mr_forest_plot(mr_results_xy, dat_xy)
采用乘积法计算中介效应,公式为:中介效应 = βₓₘ × βₘᵧ;中介比例 =(βₓₘ × βₘᵧ)/ βₓᵧ × 100%。
# 提取关键效应量
beta_xm <- mr_results_xm$b[mr_results_xm$method == "ivw"] # 暴露对中介的效应
beta_my <- model_my.params["beta_med"] # 中介对结局的效应
beta_xy <- mr_results_xy$b[mr_results_xy$method == "ivw"] # 暴露对结局的总效应
# 计算中介效应及比例
mediation_effect <- beta_xm * beta_my
mediation_proportion <- (mediation_effect / beta_xy) * 100
# 输出结果
cat(paste0("中介效应:", round(mediation_effect, 3), "\n"))
cat(paste0("中介比例:", round(mediation_proportion, 2), "%\n"))
案例结果:如 GPI 在 CD39⁺Treg 与 AA 间的中介效应为 - 0.003,中介比例为 - 8.80%(95% CI:-16.00%~-1.63%,P=0.016),表明 GPI 在该通路中发挥负向中介作用。
当存在多个代谢物作为潜在中介时,采用多变量 MR(MVMR)模型控制中介间的相互干扰:
# 加载 MVMR 包
install.packages("MVMR")
library(MVMR)
# 构建多中介数据集
mv_data <- format_mvmr(exposure_dat = exposure_multi, mediator_dat = mediator_multi, outcome_dat = out_dat)
# 拟合多中介模型
mv_result <- mvmr(mv_data, method = "ivw")
# 提取各中介的效应量
mediation_effects <- mv_result$beta_mediator
敏感性分析是 MR 研究的'生命线',需从异质性、多效性、稳定性三方面展开:
采用 Cochran's Q 检验评估工具变量间的效应异质性:
# 异质性检验
heterogeneity_xm <- mr_heterogeneity(dat_xm, method = "ivw")
cat(paste0("Cochran's Q 统计量:", round(heterogeneity_xm$q_stat, 2), "\n"))
cat(paste0("P 值:", round(heterogeneity_xm$q_pval, 3), "\n"))
判断标准:P>0.05 表明无显著异质性,模型拟合良好。
# MR-PRESSO 检验(Python 实现)
from pymrpress import mrp
# 执行检验
presso_result = mrp.mr_presso(dat_xy["beta_exp"], dat_xy["beta_out"], dat_xy["se_exp"], dat_xy["se_out"])
# 查看结果
print("全局异常值检验 P 值:", presso_result.global_pval)
print("校正后效应量:", presso_result.corrected_beta)
采用**留一法(Leave-One-Out)**分析单个 SNP 对总效应的影响:
# 留一法分析
loo_result <- mr_leaveoneout(dat_xy)
# 可视化留一法结果
mr_leaveoneout_plot(loo_result)
若剔除任一 SNP 后效应量仍稳定在 95% CI 内,表明结果不受单个工具变量影响。
以'SGLT1 抑制→血浆蛋白 / 代谢物→老年人衰弱'研究为例,展示多组学中介分析的完整应用。
# 批量筛选蛋白中介
protein_mediators <- list()
for (i in 1:nrow(protein_list)) {
# 提取单个蛋白的工具变量
med_snps <- extract_instruments(outcomes = protein_list$id[i], p1 = 1e-5)
# 验证 X→M 和 M→Y 效应
if (nrow(med_snps) > 2) { # 至少 3 个工具变量
dat_xm <- harmonise_data(exposure_dat, med_snps)
res_xm <- mr(dat_xm, method = "ivw")
dat_my <- harmonise_data(med_snps, out_dat)
res_my <- mr(dat_my, method = "ivw")
# 筛选显著中介
if (res_xm$pval < 0.05/1558 & res_my$pval < 0.05/1558) {
protein_mediators[[i]] <- data.frame(
protein = protein_list$name[i],
beta_xm = res_xm$b,
beta_my = res_my$b
)
}
}
}
# 合并结果
mediator_results <- do.call(rbind, protein_mediators)
多组学孟德尔随机化与中介效应建模的结合,打破了传统关联分析的局限性,为解析复杂疾病机制提供了'因果透镜'。从工具变量筛选到敏感性验证,从单中介到多组学整合,每一步都需要严格的方法学规范与生物学逻辑支撑。
本指南提供的分析框架与代码,可直接应用于免疫、代谢、肿瘤等多个研究领域。但需牢记:统计因果推断是生成假设的工具,而非验证机制的终点。只有将 MR 发现与湿实验验证、临床观察相结合,才能真正实现从'数据'到'机制'再到'干预'的转化,为精准医学研究注入新动能。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online