前面我们给大家讲解了两样本孟德尔随机化(←点击查看原文)的在线分析,其中只探究了一个暴露因素与结局因素的因果关系。那么我们今天要给大家讲解的多变量孟德尔随机化呢,就是将多个表型作为暴露因素,共同探究其与结局的关系。
01 适用场景
很难找到基因变异(SNP)只与某一特定暴露相关,但是可以找到其与一系列相互关联的暴露相关。(比如,既和HDL有关,又和LDL有关,有混杂因素);暴露相关的SNP,很多都与某个或者某几个混杂因素相关时。
02 三大假设
1.关联性假设:遗传工具变量需与至少一个暴露之间强相关。
2.独立性假设:遗传工具变量不受混杂因素的影响。
3.排他性假设:遗传工具变量只能通过一个或多个暴露因素来影响结局,不能通过其他途径。
03 代码实操
#加载R包
library(TwoSampleMR)
#提取两个暴露的并集工具变量
exposure_dat_mv<-mv_extract_exposures(c("ebi-a-GCST90014325","ieu-b-4877")) #Asthma、Smoking initiation
#提取工具变量在结局当中的信息
outcome_dat_mv<-extract_outcome_data(exposure_dat_mv$SNP,"ebi-a-GCST90027161") #atopic dermatitis
#整合数据
mvdat<-mv_harmonise_data(exposure_dat_mv,outcome_dat_mv,harmonise_strictness = 2)
#对数据进行MVMR的分析
res <- mv_multiple(mvdat)
#提取结果
result<-res$result
注:一般情况多变量孟德尔随机化分析就到这一步就停止了,作为对单变量分析的一个补充。因为后面的一些分析得到的结果不一定很理想。
04 补充部分
#安装包
#remotes::install_github("WSpiller/RMVMR",build_opts=c("--no-resave-data", "--no-manual"), build_vignettes = TRUE)
#加载包
library(MVMR)
#提取函数要求数据格式
F.data <- format_mvmr(BXGs = mvdat[["exposure_beta"]],
BYG = mvdat[["outcome_beta"]],
seBXGs = mvdat[["exposure_se"]],
seBYG = mvdat[["outcome_se"]],
RSID = rownames(mvdat[["exposure_beta"]]))
#计算F值
sres <- strength_mvmr(r_input = F.data, gencov = 0)
#异质性检验
pres <- pleiotropy_mvmr(r_input = F.data, gencov = 0)
05 文章小结
一般我们在进行多变量孟德尔随机化时,选取的暴露因素最好具有一定的相关性,这样后续文章描述中更有逻辑。且在增加变量时,建议一个个增加。好了,今天的分享就到这里啦,感兴趣的小伙伴赶紧练习起来吧。