这周的工作告一段落了,不是特别忙,好像最近病人少了一些。😅
要抽时间去健健身了,感觉自己马上就要成过劳肥了。🫠
今天继续接上次的MendelianRandomization
包吧,示例数据就不再重复了。🧐
不清楚的小伙伴看上一篇。😘
rm(list = ls())
# install.packages("MendelianRandomization")
library(MendelianRandomization)
library(tidyverse)
当SNP
与多种风险因素相关时,因果估计就可以采用多变量孟德尔随机化
(Multivariable Mendelian randomization
)。😘
在两种
情况下可以使用这种方法。👇
1️⃣ 当存在一组相关的危险因素时,例如脂质分数,因为一般预测HDL-cholesterol
的SNP
,对LDL-cholesterol and/or triglycerides
也有一定的预测作用。😂
2️⃣ 当存在风险因素网络时,通常是主要危险因素和次要危险因素或中介。
由于多变量方法需要与多个风险因素的SNP
关联,因此输入函数不同:🫠
MRMVInputObject <- mr_mvinput(bx = cbind(ldlc, hdlc, trig),
bxse = cbind(ldlcse, hdlcse, trigse),
by = chdlodds,
byse = chdloddsse)
MRMVInputObject
接着做一下IWV
吧,这里需要注意的是:👇
多变量孟德尔随机化要求SNP
的数量超过危险因素的数量。😘
MRMVObject <- mr_mvivw(MRMVInputObject,
model = "default",
correl = FALSE,
distribution = "normal",
alpha = 0.05)
MRMVObject <- mr_mvivw(MRMVInputObject)
MRMVObject
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
这个方法比较考验电脑的,大家最好在服务器上运行。😅
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
大家肯定想把前面的方法一次全部输出。😘
大家试试这个方法,拿捏一下!~🤒
MRInputObject <- mr_input(bx = ldlc,
bxse = ldlcse,
by = chdlodds,
byse = chdloddsse)
MRAllObject_all <- mr_allmethods(MRInputObject, method = "all")
MRAllObject_all
IVW
, 经典可视化!~
mr_plot(mr_input(bx = ldlc,
bxse = ldlcse,
by = chdlodds,
byse = chdloddsse),
error = T,
orientate = F,
line = "ivw",
interactive = F,
labels = T
)
还可以比较一下不同方法。😘
mr_plot(MRAllObject_all)
最后祝大家早日不卷!~