前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TwoSampleMR实战教程之计算并解读MR结果

TwoSampleMR实战教程之计算并解读MR结果

作者头像
生信与临床
发布2022-08-21 16:42:07
3K0
发布2022-08-21 16:42:07
举报

在前几期的内容中,我和大家详细介绍了如何使用TwoSampleMR包读取暴露文件去除存在连锁不平衡的SNP以及提取IV在结局中的信息,今天米老鼠将和大家介绍一下拿到数据后如何计算MR的结果并正确进行解读。

首先咱们运行一下之前的代码:

代码语言:javascript
复制
library(TwoSampleMR)
bmi_exp <- extract_instruments(
 outcomes='ieu-a-835',
 clump=TRUE, r2=0.01,
  kb=5000,access_token= NULL
  )
dim(bmi_exp)
# [1] 80 15
t2d_out <- extract_outcome_data(
 snps=bmi_exp$SNP,
 outcomes='ieu-a-26',
 proxies = FALSE,
 maf_threshold = 0.01,
 access_token = NULL
)
dim(t2d_out)
# [1] 80 16

现在我们准备好了暴露和结局的信息了,接下来要做一步很重要的工作,米老鼠理解为将IV的效应等位基因(effect allele)对齐,英文就是harmonise,具体使用的就是TwoSampleMR包的harmonise_data()函数,具体代码如下:

代码语言:javascript
复制
mydata <- harmonise_data(
       exposure_dat=bmi_exp,
       outcome_dat=t2d_out,
       action= 2
       )

函数harmonise_data()只有三个参数,第一个和第二个参数分别是指定暴露数据和结局数据的,第三个参数action最重要,一般我们推荐使用默认值action=2即可,当然也可以使用action=3,这时候就表示去除所有存在回文结构的SNP。

注意了,mydata数据框有一列叫“mr_keep”,只有mr_keep是TRUE的SNP才是真正用于计算MR结果的IV。如果mr_keep是FALSE的话,那就说明这个SNP在计算MR结果时会被剔除。这个其实有点坑,会让很多刚入门的小伙伴认为mydata的所有SNP都是用来计算MR结果的。

最后,咱们只要简单使用mr()函数即可,代码如下:

代码语言:javascript
复制
res <- mr(mydata)
res

具体的输出结果如下图所示:

从图中我们不难看出,5种方法计算出来的结果是比较一致的,虽然MR Egger方法不显著,但是Inverse variance weighted (IVW)和Weighted median都是显著的,并且五个结果的效应值(b)都是正值,说明BMI的增加能导致糖尿病风险的升高。如果写到文章里的话,我们具体描述一下IVW的结果即可。

注意了,如果结局是一个二分类变量(通常是疾病),我们需要把b转化成OR,也即取b的自然指数即可

除了上述5种计算方法外,TwoSampleMR包还提供了很多计算方法,比如随机效应模型和固定效应模型等,感兴趣的朋友可以通过mr_method_list()函数来了解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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