📖 什么是MR-PRESSO?
MR-PRESSO(Mendelian Randomization Pleiotropy RESidual Sum and Outlier)是一种检测水平多效性的方法。
- 检测水平多效性(Horizontal Pleiotropy)
- 识别离群SNP(Outlier Detection)
- 提供校正后的因果效应估计
🎯 核心假设
水平多效性(Horizontal Pleiotropy)
指工具变量通过暴露以外的路径影响结局,是MR分析的主要偏倚来源之一。
✓
MR-PRESSO检验
通过重采样方法检验是否存在显著的全局水平多效性
✓
离群值检测
识别并移除可能导致偏倚的离群SNP
📊 MR-PRESSO结果解读
| 检验类型 | 指标 | 判断标准 |
|---|---|---|
| 全局检验 | p-value | p < 0.05 存在水平多效性 |
| 离群值检验 | RSSobs | 识别异常SNP |
| distortions检验 | p-value | p < 0.05 校正后效应显著不同 |
| 因果效应 | Beta, OR | 校正后的效应估计值 |
💻 R代码实现
安装MRPRESSO包
# 安装MRPRESSO包
# 方法1:从GitHub安装
devtools::install_github("rondolab/MR-PRESSO")
# 方法2:从CRAN安装
install.packages("MRPRESSO")
运行MR-PRESSO
library(MRPRESSO)
# 读取数据(包含暴露和结局的汇总统计)
# 需要列:SNP, beta_exposure, beta_outcome, se_exposure, se_outcome
data <- read.table("mr_data.txt", header = TRUE)
# 运行MR-PRESSO
mr_presso <- mr_presso(
BetaExposure = data$beta_exposure, # 暴露效应
BetaOutcome = data$beta_outcome, # 结局效应
SEExposure = data$se_exposure, # 暴露标准误
SEOutcome = data$se_outcome, # 结局标准误
OUTLIERtest = TRUE, # 离群值检测
DISTORTIONtest = TRUE, # 效应扭曲检验
NbDistribution = 1000, # 重采样次数
SignifThreshold = 0.05 # 显著性阈值
)
# 查看结果
print(mr_presso)
结果解读
# 全局检验结果 # MR-PRESSO global test: p-value global_p <- mr_presso$`Main MR-PRESSO results`$`Global Test`$`P-value` # 离群值SNP列表 outlier_snps <- mr_presso$`Outlier Results`$`SNPs` # 校正后的因果效应 # MR-PRESSO med: (Raw) Beta, (Adjusted) Beta raw_beta <- mr_presso$`Main MR-PRESSO results`$`Main MR-PRESSO results`$`Causal Estimate` adj_beta <- mr_presso$`Main MR-PRESSO results`$`MR-PRESSO results`$`Causal Estimate`
⚠️ 注意事项
- • MR-PRESSO需要足够数量的SNP(建议 > 10)
- • 如果全局检验显著,建议移除离群SNP后重新分析
- • 离群值检验后,比较原始效应和校正后效应差异
- • 可以结合其他方法(如Egger回归)进行敏感性分析