前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(二)(一行代码拿捏所有方法)

🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(二)(一行代码拿捏所有方法)

作者头像
生信漫卷
发布2024-01-15 18:04:20
9680
发布2024-01-15 18:04:20
举报

1写在前面

这周的工作告一段落了,不是特别忙,好像最近病人少了一些。😅

要抽时间去健健身了,感觉自己马上就要成过劳肥了。🫠

今天继续接上次的MendelianRandomization包吧,示例数据就不再重复了。🧐

不清楚的小伙伴看上一篇。😘

2用到的包

代码语言:javascript
复制
rm(list = ls())
# install.packages("MendelianRandomization")
library(MendelianRandomization)
library(tidyverse)

3多变量孟德尔随机化

SNP与多种风险因素相关时,因果估计就可以采用多变量孟德尔随机化Multivariable Mendelian randomization)。😘

两种情况下可以使用这种方法。👇

1️⃣ 当存在一组相关的危险因素时,例如脂质分数,因为一般预测HDL-cholesterolSNP,对LDL-cholesterol and/or triglycerides也有一定的预测作用。😂

2️⃣ 当存在风险因素网络时,通常是主要危险因素和次要危险因素或中介。

由于多变量方法需要与多个风险因素的SNP关联,因此输入函数不同:🫠

代码语言:javascript
复制
MRMVInputObject <- mr_mvinput(bx = cbind(ldlc, hdlc, trig),
                              bxse = cbind(ldlcse, hdlcse, trigse),
                              by = chdlodds,
                              byse = chdloddsse)

MRMVInputObject

接着做一下IWV吧,这里需要注意的是:👇

多变量孟德尔随机化要求SNP的数量超过危险因素的数量。😘

代码语言:javascript
复制
MRMVObject <- mr_mvivw(MRMVInputObject,
                      model = "default",
                      correl = FALSE,
                      distribution = "normal",
                      alpha = 0.05)

MRMVObject <- mr_mvivw(MRMVInputObject)

MRMVObject

4Mode-based estimation法

代码语言:javascript
复制
MBEObject <- mr_mbe(MRInputObject,
                    weighting = "weighted",
                    stderror = "delta",
                    phi = 1,
                    seed = 314159265,
                    iterations = 10000,
                    distribution = "normal",
                    alpha = 0.05)

MBEObject <- mr_mbe(mr_input(bx = ldlc, bxse = ldlcse,by = chdlodds, byse = chdloddsse))

MBEObject

5Heterogeneity-penalized法

这个方法比较考验电脑的,大家最好在服务器上运行。😅

代码语言:javascript
复制
HetPenObject <- mr_hetpen(MRInputObject,
                          prior = 0.5,
                          CIMin = -1,
                          CIMax = 1,
                          CIStep = 0.001,
                          alpha = 0.05)

HetPenObject <- mr_hetpen(mr_input(bx = ldlc[1:10], 
                                   bxse = ldlcse[1:10],
                                   by = chdlodds[1:10],
                                   byse = chdloddsse[1:10]), 
                                    CIMin = -1, 
                                    CIMax = 5, 
                                    CIStep = 0.01)

HetPenObject

6多方法应用

大家肯定想把前面的方法一次全部输出。😘

大家试试这个方法,拿捏一下!~🤒

代码语言:javascript
复制
MRInputObject <- mr_input(bx = ldlc,
                          bxse = ldlcse,
                          by = chdlodds,
                          byse = chdloddsse)

MRAllObject_all <- mr_allmethods(MRInputObject, method = "all")

MRAllObject_all

IVW, 经典可视化!~

代码语言:javascript
复制
mr_plot(mr_input(bx = ldlc, 
                 bxse = ldlcse, 
                 by = chdlodds, 
                 byse = chdloddsse),
        error = T, 
        orientate = F,
        line = "ivw",
        interactive = F,
        labels = T
        )

还可以比较一下不同方法。😘

代码语言:javascript
复制
mr_plot(MRAllObject_all)

最后祝大家早日不卷!~


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

本文分享自 生信漫卷 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3多变量孟德尔随机化
  • 4Mode-based estimation法
  • 5Heterogeneity-penalized法
  • 6多方法应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档