R数据分析:孟德尔随机化实操

好多同学询问孟德尔随机化的问题 , 我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟 , 盯着看将下图印在脑海中:

R数据分析:孟德尔随机化实操

文章插图
上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的时候感兴趣的是x和y的关系,也就是小b,但是我们直接去跑x对y的回归肯定是不对的,因为有很多的U,因此我们借助工具变量G(关于工具变量我们之前的文章有详细的解释,请自行查阅) , 去估计我们感兴趣的小b 。
现在有天然良好的工具变量G,也就是我们的基因变量,此时有上面的图 , 再次重申:我们感兴趣的 , 最终希望得到准确估计的值是小b , 按照上图我们应该有GY的关系是ab , GX的关系是a , 于是乎b可以写成ab/a,就是我们感兴趣的b可以换一种思路得到,如下:
R数据分析:孟德尔随机化实操

文章插图
上面的式子要跑通的话,我们需要知道G-Y的关系和G-X的关系 。
但是我们GY也就是基因和结局的关系已经有人给我们研究好了,我们可以直接去GWAS里面找研究好的summarydata拿来用就行 。
但是我们的的GX也就是基因和暴露的关系也已经有人给我们研究好了,我们可以直接去GWAS里面找研究好的summarydata拿来用就行 。
也就是说,通过孟德尔随机化,我们完全可以毫不费力地估计出我们需要的小b,也就是暴露和结局的关系----就是今天要再次给大家介绍的孟德尔随机化研究 。
思路就是这么清晰 。就是这么清晰 。搞不明白的同学再多读几遍 。
术语解析为了帮助大家理解思想,在孟德尔随机化的实操中有几个术语得提点一波:
连锁不平衡(linkage disequilibrium):刚刚讲我们可以有很多的基因结局/暴露的关系的,就是GWAS里面好些基因可以用,这个时候我们不希望基因之间有相关(会造成double counting,使得结果偏倚):
R数据分析:孟德尔随机化实操

文章插图
我们实际做的时候,模式是像上图 , snp之间你说不相干就不相干?当两个位点的不同等位基因的关联频率高于或低于独立随机关联的条件下的期望频率 , 这种情况是客观存在的,此时时这些工具变量之间相关性就叫连锁不平衡 , 其大小可以用LD r方来表示,这个指标也是我们在操作时需要设定的指标之一 。
水平基因多效性(Horizontal Pleiotropy):理解这个概念先看下图:
R数据分析:孟德尔随机化实操

文章插图
意思是我的理想的情况是通过ab/a的操作估计出b,但是看上图,是不是免不了会出现f这条路径,如果出现了f , 我们的基因和结局之间的关系就是f+ab,此时,我用原来的方法估计的就不是b了,而是b+f/a了,就不对了(始终记住我们关心的是b) 。
但是如果我的基因变量很多 , 从而有很多的f,如果所有f的期望均值为0,那么最后我们汇总一下得到的结果也基本上就是b了,无伤大雅 。但是就怕所有的f都是一边偏向的(都大于0或都小于0) , 此时就有问题了,叫做定向多效性directional pleiotropy,这也是为什么我们最后要做漏斗图的原因 。
就是通过漏斗图一看都是所有的工具变量都是呈漏斗分布的,就说明没有偏向,这个时候我们认为定向多效性都被冲掉了,不影响 。
好,解释了上面的一些术语之后,我们实操一波 。
实操最基本的例子:BMI on CHD的例子,我想看一下BMI作为暴露 , CHD作为结局的mr , 代码就4条:
bmi_exp_dat <- extract_instruments(outcomes = 'ieu-a-2')chd_out_dat <- extract_outcome_data(snps = bmi_exp_dat$SNP, outcomes = 'ieu-a-7')dat <- harmonise_data(bmi_exp_dat, chd_out_dat)res <- mr(dat)结果如下,下图中有不同方法出来的我们关心的小b:
R数据分析:孟德尔随机化实操

文章插图
这个就算做完了 , 就这么简单快速 。
接下来就是敏感性分析,首先是各个工具变量的异质性检验:
mr_heterogeneity(dat)运行代码后可以得到Cochran’s 

    推荐阅读