“MR-PRESSO”包两讲之实际应用

2022-08-21 16:58:12 浏览数 (1)

上一期我和大家简单介绍了一下"MR-PRESSO“包的基本原理,今天我将和大家讲讲这个包如何使用。

首先说一句,这个包的使用非常简单!!!

安装R包

代码语言:javascript复制
devtools::install_github("rondolab/MR-PRESSO")# 先安装好devtools这个包,不必多说 

这里我们使用它提供的数据集

代码语言:javascript复制
data(SummaryStats) # 加载数据集
head(SummaryStats) # 查看数据集

从上面的结果可以看出,我么只要给出SNP对应的beta,se和P值就行了。

“MR-PRESSO”包很贴心,提供了两种计算模式

第一种就是普通的一对一Two Sample MR,代码如下:

代码语言:javascript复制
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)

接下来我给大家介绍一下相关参数:

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值阈。

具体结果如下:

从输出的结果我们不难看出,第46484950个SNP都是outliers,它们的存在使得整体存在水平多效性,去掉后MR的结果更加显著了(Main results里的Outlier-corrected的P值更小了)。另外,我们也可以看出,这4个SNP去除后的结果和原始结果的差异显著(distortion test P值小于0.05)。

第二种是基于多变量MR下的水平多效性检验

代码语言:javascript复制
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)

从这里可以看出,我们只需要把BetaExposure和SdExposure变成一个储存多个变量名的向量即可。

从结果来看,多变量MR并没有显示存在水平多效性的问题。

以上就是“MR-PRESSO”的使用说明,感兴趣的小伙伴赶快动手试试吧!

0 人点赞