上一期我和大家简单介绍了一下"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值阈。
具体结果如下:
从输出的结果我们不难看出,第46,48,49和50个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”的使用说明,感兴趣的小伙伴赶快动手试试吧!