前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)

🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)

作者头像
生信漫卷
发布2024-01-02 16:09:27
3720
发布2024-01-02 16:09:27
举报

1写在前面

今天发现MendelianRandomization包更新v0.9了。😜

其实也算不上更新。🫠

跟大家一起分享一下这个包做MR的用法吧。🤩

还有一个包就是TwoSampleMR,大家有兴趣可以去学一下。😅

2用到的包

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

3示例数据

这里需要说明一下哦,不是所有的参数都需要填的,这个需要根据你后面用到的方法。😘

比如说一些方法不需要指定bxse。😜

mr_ivw函数是将BXSE设置为零的情况下运行的。😀


示例一

betaX是来自每个SNP的暴露因素的回归分析的β系数,betaXse标准误。😘

betaY是每个SNP的结局时间的回归分析的β系数数,betaYse标准误。🥳

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

示例二

如果SNP是存在存在相关性,这个时候可以通过corr = 加入哦。😯

代码语言:javascript
复制
MRInputObject.cor <- mr_input(bx = calcium,
                              bxse = calciumse,
                              by = fastgluc,
                              byse = fastglucse,
                              corr = calc.rho)
MRInputObject.cor

这里的两个data是出自下面2个原文,大家可以去读一下,试试复现:👇

1️⃣ Burgess S, Scott RA, Timpson NJ, Davey Smith G, Thompson SG; EPIC- InterAct Consortium. Using published data in Mendelian randomization: a blueprint for efficient identification of causal risk factors. Eur J Epidemiol. 2015 Jul;30(7):543-52. doi: 10.1007/s10654-015-0011-zIF: 13.6 Q1 . Epub 2015 Mar 15. PMID: 25773750; PMCID: PMC4516908.

2️⃣ Waterworth DM, Ricketts SL, Song K, Chen L, Zhao JH, Ripatti S, Aulchenko YS, Zhang W, Yuan X, Lim N, Luan J, Ashford S, Wheeler E, Young EH, Hadley D, Thompson JR, Braund PS, Johnson T, Struchalin M, Surakka I, Luben R, Khaw KT, Rodwell SA, Loos RJ, Boekholdt SM, Inouye M, Deloukas P, Elliott P, Schlessinger D, Sanna S, Scuteri A, Jackson A, Mohlke KL, Tuomilehto J, Roberts R, Stewart A, Kesäniemi YA, Mahley RW, Grundy SM; Wellcome Trust Case Control Consortium; McArdle W, Cardon L, Waeber G, Vollenweider P, Chambers JC, Boehnke M, Abecasis GR, Salomaa V, Järvelin MR, Ruokonen A, Barroso I, Epstein SE, Hakonarson HH, Rader DJ, Reilly MP, Witteman JC, Hall AS, Samani NJ, Strachan DP, Barter P, van Duijn CM, Kooner JS, Peltonen L, Wareham NJ, McPherson R, Mooser V, Sandhu MS. Genetic variants influencing circulating lipid levels and risk of coronary artery disease. Arterioscler Thromb Vasc Biol. 2010 Nov;30(11):2264-76. doi: 10.1161/ATVBAHA.109.201020IF: 8.7 Q1 B1. Epub 2010 Sep 23. PMID: 20864672; PMCID: PMC3891568.

4方法一 Inverse-variance weighted method

MR的因果推断中,我们常用四种方法,inverse-variance weighted method, median-based methodMR-Egger method,还有Maximum likelihood method。😘

我们注意逐一介绍下。🔽

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

IVWObject <- mr_ivw(mr_input(bx = ldlc, 
                             bxse = ldlcse,
                             by = chdlodds, 
                             byse = chdloddsse)
                    )

IVWObject

代码语言:javascript
复制
IVWObject.correl <- mr_ivw(MRInputObject.cor,
                          model = "default",
                          correl = TRUE,
                          distribution = "normal",
                          alpha = 0.05)
                          IVWObject.correl <- mr_ivw(mr_input(bx = calcium, bxse = calciumse,
                          by = fastgluc, byse = fastglucse, corr = calc.rho)
                          )
IVWObject.correl

5方法二 Median-based method

代码语言:javascript
复制
WeightedMedianObject <- mr_median(MRInputObject,
                                  weighting = "weighted",
                                  distribution = "normal",
                                  alpha = 0.05,
                                  iterations = 10000,
                                  seed = 314159265)

WeightedMedianObject <- mr_median(mr_input(bx = ldlc, 
                                           bxse = ldlcse,
                                           by = chdlodds, 
                                           byse = chdloddsse))

WeightedMedianObject

代码语言:javascript
复制
SimpleMedianObject <- mr_median(mr_input(bx = ldlc, 
                                         bxse = ldlcse,
                                         by = chdlodds, 
                                         byse = chdloddsse), 
                                weighting = "simple")

SimpleMedianObject

6方法三 MR-Egger method

代码语言:javascript
复制
EggerObject <- mr_egger(MRInputObject,
                        robust = FALSE,
                        penalized = FALSE,
                        correl = FALSE,
                        distribution = "normal",
                        alpha = 0.05)

EggerObject <- mr_egger(mr_input(bx = ldlc, 
                                 bxse = ldlcse,
                                 by = chdlodds, 
                                 byse = chdloddsse)
                        )

EggerObject

代码语言:javascript
复制
EggerObject.corr <- mr_egger(MRInputObject.cor,
                            correl = TRUE,
                            distribution = "normal",
                            alpha = 0.05)

EggerObject.corr <- mr_egger(mr_input(bx = calcium, 
                                      bxse = calciumse,
                                      by = fastgluc, 
                                      byse = fastglucse, 
                                      corr = calc.rho))

EggerObject.corr

7方法四 Maximum likelihood method

代码语言:javascript
复制
MaxLikObject <- mr_maxlik(MRInputObject,
                          model = "default",
                          correl = FALSE,
                          psi = 0,
                          distribution = "normal",
                          alpha = 0.05)

MaxLikObject <- mr_maxlik(mr_input(bx = ldlc, bxse = ldlcse,by = chdlodds, byse = chdloddsse))

MaxLikObject

代码语言:javascript
复制
MaxLikObject.corr <- mr_maxlik(mr_input(bx = calcium, bxse = calciumse,by = fastgluc, byse = fastglucse, corr = calc.rho))

MaxLikObject.corr

8简单可视化

这里就以IVW为例哦。🙃

代码语言:javascript
复制
mr_plot(MRInputObject,
        error = T, 
        orientate = F, 
        line = "ivw", # "ivw", "egger"
        interactive = F,
        labels = T
        )
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
    • 示例一
      • 示例二
      • 4方法一 Inverse-variance weighted method
      • 5方法二 Median-based method
      • 6方法三 MR-Egger method
      • 7方法四 Maximum likelihood method
      • 8简单可视化
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档