多变量(暴露因素)对一个结局的MR分析

2024-03-14  本文已影响0人  wo_monic

多变量MR:
「目的」:同时评估多个暴露对一个结果的联合影响。
「[如何工作」:为每个暴露选择一组SNP作为工具变量。
「应用场景」:当我们想要了解多个暴露与一个结果之间的相互作用和联合效应时,
[例子」:探究脂肪摄入量和盐摄入量如何同时影响高血压的风险。使用与脂肪摄入和盐摄入关联的SNP作为工具变量来评估它们对高血压风险的联合影响。

挑选多对一的结局的注意事项

  1. 几个暴露因素之间最好是存在一定的相关性
  2. SNP只要与其中一个暴露强相关即可
  3. 应该提取SNP在所有暴露和结局中的信息,不能有缺失。 即使用的SNP应该在所有的暴露和结局中都应该存在。
  4. 该分析需要关于暴露和结局的完整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)
299高密度胆固醇
300低密度胆固醇
302总胆固醇
从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系列的可视化函数。

留一法森林图
image.png
image.png
image.png
散点图
image.png
image.png
image.png
森林图
image.png
image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读