前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >孟德尔随机化之MendelianRandomization包(第一讲)

孟德尔随机化之MendelianRandomization包(第一讲)

作者头像
生信与临床
发布2022-08-21 17:30:45
3K0
发布2022-08-21 17:30:45
举报

之前和大家详细介绍过“TwoSampleMR”包和“MRPRESSO”这两个常用的进行孟德尔随机化分析的R包,但是很多朋友实际上会用到“MendelianRandomization”这个来自CRAN的R包。这个包主要是Stephen Burgess编写的,具有一定的权威性,并且也提供了很多实用的功能,并且在某些方面弥补了TwoSampleMR包的不足。

就米老鼠看来,MendelianRandomizationTwoSampleMR的最大区别就是:

①MendelianRandomization包可以直接在模型中矫正SNP的相关性,从而不需要进行clump;而TwoSampleMR包则不能矫正SNP的相关性,必须进行clump。如果进行clump时,某些SNP不在LD参考文件中的话,就会直接剔除它们,从而使得一些信号损失掉。

②虽然MendelianRandomization包提供了Phenoscanner(http://phenoscanner.medschl.cam.ac.uk)的数据接口,但是个人感觉OpenGWAS数据库(https://gwas.mrcieu.ac.uk/)比Phenoscanner更好点,在这一点上TwoSampleMR包更好一点。

“MendelianRandomization”和“TwoSampleMR”这两个包大同小异,都是很经典的R包,前者的统计方法比较好,后者的数据接口好,都值得学习使用,而且大家还可以用一个包去验证另一个包的结果,看看有没有错误。两个包结合使用,可能会有意想不到的收获!

接下来,我带大家简单认识一下“MendelianRandomization”包:

代码语言:javascript
复制
install.packages(“MendelianRandomization”)#安装R包
library(MendelianRandomization) #加载R包
MRInputObject <- mr_input(bx = ldlc,bxse= ldlcse,by = chdlodds,byse = chdloddsse) #指定输入文件

这里需要注意一下,MRInputObject这个变量是一个S4对象,和咱们传统的S3对象不太一样,这主要体现在数据的操作上。首先,MRInputObject这个S4对象有11个插槽(slot):betaX,betaY,betaXse,betaYse,correlation,exposure,outcome,snps,effect_allele,other_allele和eaf。如果想提取betaX这一列的信息,应该使用MRInputObject@betaX,而不是MRInputObject$betaX。

代码语言:javascript
复制
MRInputObject #查看数据

接下来,使用IVW方法估算结果:

代码语言:javascript
复制
IVWObject1 <- mr_ivw(MRInputObject,model= "default",robust = FALSE,penalized = FALSE,correl = FALSE,weights ="simple", psi = 0,distribution = "normal",alpha = 0.05)

这里的model参数用于指定模型,一般有三个选项"default", "random" 和"fixed",其中“random”指的就是随机效应模型,“fixed”指的是固定效应模型,”default”是指当SNP个数小于或等于3个时,使用固定效应模型,否则就使用随机效应模型。一般来说,异质性大的时候我们使用随机效应模型,异质性小的时候使用固定效应模型。

参数robust是一个逻辑值,TRUE表示的使用稳健回归,它可以修正一些异常SNP对结果的影响,使得结果不会对一些异常的SNP敏感,而FALSE则代表使用标准回归,也即我们最常使用的最小二乘估计(OLS)。

参数penalized代表是否下调那些异常SNP(outlier)的权重,TURE代表下调那些异常值的权重,FALSE表示不下调。

参数correl代表是否有SNP的相关系数数据,TRUE表示有SNP间的相关系数数据,FALSE表示没有。

参数weights表示的是权重计算方法,有两个参数“simple“和”delta“。”simple“表示使用的是逆方差加权,而”delta“表示的是二阶误差估计法,具体公式如下:

这里的psi代表的就是每个SNP的暴露和结局相关性,在双样本MR研究中,由于样本间无重叠,psi是0。

参数distribution用于指定置信区间的估计方法,“normal”表示用正态分布估计置信区间,“t-dist”代表用T分布来估计。

参数alpha代表的是统计学显著性。

代码语言:javascript
复制
IVWObject1 #查看结果

从上图中,我们不难看出,在IVW的随机效应模型下,LDL能显著升高CHD的风险,该结果有显著的异质性。

接下来,我们使用稳健回归,并且对SNP中的outliers进行“惩罚”

代码语言:javascript
复制
IVWObject2 <- mr_ivw(MRInputObject,model= "default",robust = TRUE,penalized = TRUE,correl = FALSE,weights ="simple", psi = 0,distribution = "normal",alpha = 0.05)
代码语言:javascript
复制
IVWObject2 # 查看结果

从上述结果可以看出,在稳健回归模型和引入“惩罚”措施后,结果仍然显著,这时候可以认为LDL和CHD有因果关联,并且LDL的升高可以增加CHD的发病风险

关于“MendelianRandomization”包的输入文件和IVW方法就先介绍到这里,后面会和大家详细介绍它的其它功能。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-01,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 生信与临床 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com