https://zhuanlan.zhihu.com/p/348347441
rondolab/MR-PRESSO: Performs the Mendelian Randomization Pleiotropy RESidual Sum and Outlier (MR-PRESSO) method. (github.com)
孟德尔随机化研究的正确进行依赖于其三原则
(1) 遗传变异与暴露有关。
(2) 该遗传变异与暴露-结果关联的任何混杂因素均不相关。
(3) 该遗传变异不会影响结果,除非可能通过与暴露的关联来实现。
“MR-PRESSO”方法发表于2018年5月的《nature genetics》上(PMID: 29686387),是目前应用比较广泛的检验水平多效性的方法。它的核心包含三部分:
(1)利用“MR-PRESSO global test”检测水平多效性是否存在
(2)利用“MR-PRESSO outlier test”来剔除异常SNP(outliers)并估计矫正后的结果(此结果去除了水平多效性)
(3)利用“MR-PRESSO distortion test”来检验矫正前和矫正后的结果是否存在差异
该检验的核心是:对于每一个SNP,首先计算去除该SNP后的IVW结果,然后再计算该SNP的效应与IVW结果的残差平方和,其实也就是计算该SNP到去掉该SNP计算出的拟合线的距离。最后,我们会把利用每个SNP计算出来的残差平方和(距离)相加,这个值越大,说明水平多效性越显著。
if (!require("devtools")) { install.packages("devtools") } else {}
devtools::install_github("rondolab/MR-PRESSO")
# Load a simulated toy dataset
data(SummaryStats)

# Run MR-PRESSO global method
##第一种就是普通的一对一Two Sample MR
mr_presso(BetaOutcome = "Y_effect", BetaExposure = "E1_effect", SdOutcome = "Y_se", SdExposure = "E1_se", OUTLIERtest = TRUE, DISTORTIONtest = TRUE, data = SummaryStats, NbDistribution = 1000, SignifThreshold = 0.05)
# Run MR-PRESSO on a multi-variable MR (MMR) model specifying several exposures
## 第二种是基于多变量MR下的水平多效性检验
mr_presso(BetaOutcome = "Y_effect", BetaExposure = c("E1_effect", "E2_effect"), SdOutcome = "Y_se", SdExposure = c("E1_se", "E2_se"), OUTLIERtest = TRUE, DISTORTIONtest = TRUE, data = SummaryStats, NbDistribution = 1000, SignifThreshold = 0.05)
BetaOutcome是指outcome的beta值列名;
BetaExposure是指exposure的beta值列名;
SdOutcome是指outcome的se值列名;
SdExposure是指exposure的se值列名;
OUTLIERtest用于指定是否进行MR-PRESSO outlier test;
DISTORTIONtest用于指定是否进行MR-PRESSO distortion test;
data是指输入的数据框名称;
NbDistribution是指模拟计算的次数,它对经验P值影响较大,一般建议至少大于1000;
SignifThreshold是指判断SNP是否为outlier的P值阈。
网友评论