今天是TwoSampleMR包的最后一期内容了,这里米老鼠将带大家学习如何实现孟德尔随机化结果的可视化,主要有4方面的内容:(1)绘制散点图;(2)绘制森林图;(3)绘制敏感性分析图;(4)绘制漏斗图。其中第3个已经在上一期内容中进行了详细介绍,这里就不赘述了。
首先,我们还是回顾一下往期代码:
代码语言:javascript复制library(TwoSampleMR)
bmi_exp <- extract_instruments(
outcomes='ieu-a-835',
clump=TRUE, r2=0.01,
kb=5000,access_token = NULL
)
dim(bmi_exp)
# [1] 80 15
t2d_out <- extract_outcome_data(
snps=bmi_exp$SNP,
outcomes='ieu-a-26',
proxies = FALSE,
maf_threshold = 0.01,
access_token = NULL
)
dim(t2d_out)
# [1] 80 16
mydata <- harmonise_data(
exposure_dat=bmi_exp,
outcome_dat=t2d_out,
action= 2
)
res <- mr(mydata)
res
het <- mr_heterogeneity(mydata)
het
mr(mydata,method_list=c('mr_ivw_mre')) #使用随机效应模型
pleio <- mr_pleiotropy_test(mydata)
pleio
single <- mr_leaveoneout(mydata)
mr_leaveoneout_plot(single)
第一部分 绘制散点图
散点图的绘制其实非常简单,只需如下一行代码即可:
代码语言:javascript复制mr_scatter_plot(res,mydata)
这里的res就是函数mr()运行出来的MR结果,而mydata则是harmonise_data()函数的结果。
这幅图上每一个点其实代表的就是一个IV,每个点上的线实际反映的是95%置信区间,横坐标是SNP对暴露(BMI)的效应,纵坐标是SNP对结局(二型糖尿病)的效应,彩色的线表示的是MR拟合结果。从图中我们不难看出,随着BMI的升高,二型糖尿病的发病风险也在升高。
第二部分 绘制森林图
绘制森林图需要两行代码,具体如下:
代码语言:javascript复制res_single <- mr_singlesnp(mydata)
mr_forest_plot(res_single)
上述森林图中的每一条水平实线反映的是单个SNP利用Wald ratio方法估计出来的结果:有的实线完全在0的左边,说明由这个SNP估计出来的结果是BMI增加能降低二型糖尿病的风险;有的实线完全在0的右边,说明由这个SNP估计出来的结果是BMI增加能升高二型糖尿病的发病风险;而那些跨过0的说明结果不显著。所以我们单看某一个SNP的结果可能是有问题的,只有把结果综合起来看才能得到合理结果,这就是最底下红线,它反映出IVW方法下BMI的升高增加糖尿病的发病风险。
第三部分 绘制敏感性分析图
这一部分就不赘述了,请参见往期内容TwoSampleMR包实战教程之敏感性分析
第四部分 绘制漏斗图
我们使用如下一行代码即可绘制出漏斗图:
代码语言:javascript复制mr_funnel_plot(res_single)
我们可以看到,这个漏斗图整体上还是比较对称的。当然,某些点明显偏离了总体(比如最左侧的那个点),这时候就可以把它们去除掉。其实,这和我们之前发现这些SNP间的异质性很大的结果相符。
至此,关于TwoSampleMR的实战教程就全部更新完毕了,米老鼠接下来打算更新全基因组关联研究(GWAS)的相关内容,敬请期待!