多变量(暴露因素)对一个结局的MR分析
2024-03-14 本文已影响0人
wo_monic
多变量MR:
「目的」:同时评估多个暴露对一个结果的联合影响。
「[如何工作」:为每个暴露选择一组SNP作为工具变量。
「应用场景」:当我们想要了解多个暴露与一个结果之间的相互作用和联合效应时,
[例子」:探究脂肪摄入量和盐摄入量如何同时影响高血压的风险。使用与脂肪摄入和盐摄入关联的SNP作为工具变量来评估它们对高血压风险的联合影响。
挑选多对一的结局的注意事项
- 几个暴露因素之间最好是存在一定的相关性
- SNP只要与其中一个暴露强相关即可
- 应该提取SNP在所有暴露和结局中的信息,不能有缺失。 即使用的SNP应该在所有的暴露和结局中都应该存在。
- 该分析需要关于暴露和结局的完整GWAS结果
此实验是评估三个暴露因素,高密度胆固醇、低密度胆固醇、总胆固醇对冠状动脉心脏病的影响
##多个暴露因素对一个结局变量的影响
#此实验是评估三个暴露因素,高密度胆固醇、低密度胆固醇、总胆固醇对冠状动脉心脏病的影响
#HDL、LDL 和总胆固醇的 GWAS ID 为 ieu-a-299、ieu-a-300和 ieu-a-302。冠心病 (CHD) 的 GWAS ID 是 ieu-a-7。在本例中,我们将估计 HDL、LDL 和总胆固醇对 CHD 的多变量影响
rm(list = ls())
library("TwoSampleMR")
library(phenoscanner)
library(MRInstruments) ##该软件包包含许多 data.frames,其中每个都是 SNP 与性状关联的存储库。
library(ieugwasr) #一定要有这句话,否则会报错Error in r$status_code : $ operator is invalid for atomic vectors
library(tidyverse)
#ieu-a-299是高密度脂蛋白胆固醇HDL
#ieu-a-300是低密度脂蛋白胆固醇
#ieu-a-302是甘油三酯,总胆固醇
#ieu-a-7是冠状动脉心脏病
id_exposure <- c("ieu-a-299", "ieu-a-300", "ieu-a-302")
id_outcome <- "ieu-a-7"
#注意:此处的获取函数,是获取多个暴露因素的函数
mv_exposure_dat <- mv_extract_exposures(id_exposure)
#mv_extract_exposures_local() #如果要是从本地读取,则使用这个函数
#提取暴露因素对应的SNP的结局变量
mv_outcome_dat <- extract_outcome_data(mv_exposure_dat$SNP, id_outcome)
#协调结果,获取相同的参考等位基因
mvdat <- mv_harmonise_data(mv_exposure_dat, mv_outcome_dat)
pdf("5.many2one.pdf")
#进行多变量MR分析
res <- mv_multiple(mvdat,plots=TRUE)
res
dev.off()
head(res)
#id.exposure exposure id.outcome outcome nsnp b se pval
#1 ieu-a-299 HDL cholesterol || id:ieu-a-299 ieu-a-7 Coronary heart disease || id:ieu-a-7 79 -0.08919724 0.05970552 1.351879e-01
#2 ieu-a-300 LDL cholesterol || id:ieu-a-300 ieu-a-7 Coronary heart disease || id:ieu-a-7 68 0.37853543 0.04976846 2.828614e-14
#3 ieu-a-302 Triglycerides || id:ieu-a-302 ieu-a-7 Coronary heart disease || id:ieu-a-7 42 0.13584165 0.06738291 4.380354e-02
#mv_residual(mvdat)
![](https://img.haomeiwen.com/i18151951/76d971dbf2ec5bc3.png)
![](https://img.haomeiwen.com/i18151951/de0d5d8bfb7bd736.png)
![](https://img.haomeiwen.com/i18151951/886b2bbc41a83a79.png)
从res结果可以看到,299HDL 的b值是-0.089,Pval 是0.135187,这个是高密度胆固醇对冠状动脉心脏的影响是负的,但是最后的P值不显著。
300LDL是低密度胆固醇b值0.3785,Pval是2.8286e-14,说明低密度胆固醇是冠状动脉心脏病的正向因素,即低密度胆固醇高了,得病概率也高了。最后p值<0.01,达到极显著,b值是β值。
302总胆固醇和低密度是同样的结论,只是显著水平降低而已,但是仍然小于0.05,达到显著水平。
注意:此处的b值是指在3个因素共同对结局的作用中,对应暴露对结局的效应值。
这种方法没有配套的后续可视化函数。
参考https://mrcieu.github.io/TwoSampleMR/articles/perform_mr.html#multivariable-mr
另一种分析方法分析多对一的MR分析
exp_dat <- extract_instruments(outcomes = c("ieu-a-2", "ieu-a-100", "ieu-a-1032", "ieu-a-104", "ieu-a-1", "ieu-a-72", "ieu-a-999"))
table(exp_dat$exposure)
chd_out_dat <- extract_outcome_data(
snps = exp_dat$SNP,
outcomes = "ieu-a-7" #冠状动脉心脏病
)
dat2 <- harmonise_data(
exposure_dat = exp_dat,
outcome_dat = chd_out_dat
)
res <- mr(dat2)
res
p1 <- mr_scatter_plot(res,dat2)
p1
##森林图
res_single <- mr_singlesnp(dat2)
p2 <- mr_forest_plot(res_single)
p2
#漏斗图
p4 <- mr_funnel_plot(res_single)
p4
#4.7.1 Heterogeneity statistics
mr_heterogeneity(dat2)
#4.7.2 Horizontal pleiotropy
mr_pleiotropy_test(dat2)
#4.7.3 Single SNP analysis
res_single <- mr_singlesnp(dat2)
#4.7.4 Leave-one-out analysis
res_loo <- mr_leaveoneout(dat2)
mr_leaveoneout_plot(res_loo)
这种方法可以和1对1的分析一样,使用mr系列的可视化函数。
留一法森林图
![](https://img.haomeiwen.com/i18151951/330246784e9d053b.png)
![](https://img.haomeiwen.com/i18151951/9cb4e34c452b3058.png)
![](https://img.haomeiwen.com/i18151951/9281c261922b9617.png)
散点图
![](https://img.haomeiwen.com/i18151951/3362838f0f5494d2.png)
![](https://img.haomeiwen.com/i18151951/978f906a7a1a29e7.png)
![](https://img.haomeiwen.com/i18151951/3c359145fa3f0ae9.png)
森林图
![](https://img.haomeiwen.com/i18151951/e980bcd70e3e907f.png)
![](https://img.haomeiwen.com/i18151951/1aeaf2afc3101347.png)
![](https://img.haomeiwen.com/i18151951/273a433720fa850d.png)