R数据分析:孟德尔随机化分析文献解析和实例操练

最近抽空研读了一篇探讨高血压和肾功能关系的文献,记录下来分享给大家,主要也是想看看孟德尔随机化的统计分析结果在论文中是如何呈现的,之后我会给大家写写孟德尔随机化的统计分析在R语言中的做法,希望可以帮助到大家。

文章的题目是A bidirectional Mendelian randomization study supports causal effects of kidney function on blood pressure,这篇文章用到的统计技巧叫做Two-sample MR----两样本孟德尔随机分析。我还查阅了别的孟德尔随机化的文献,这个Two-sample MR的分析其实是非常常用的。

Two-sample MR分析的一般步骤

第一步是找工具变量,我们要的是基因作为工具变量这些个基因都是从别人的研究中挑出来的,所有的基因研究有个专门的库叫做genome wide association studies (GWAS)。我们需要做的就是从这个库中挑出来我们自己需要的和我们暴露相关的基因变量SNPs。这是第一步。

第二步就是估计我们的工具变量对结局的作用,工具变量对结局的作用也是从所有的研究中估计出来的整体效应,这样可以拒绝单个研究的偏倚。

第三步就是合并多个SNP的效应量,这个效应量是我们得到暴露和结局因果效应的前提。

第四步就是用合并后的数据进行孟德尔随机化分析和相应的敏感性分析。

做分析的整个流程就在下面的图中啦:

总体来看就是在孟德尔随机化研究中我们的工具变量可以不需要你收集,工具变量的效应也不需要你计算,这些都只需要你在GWAS挖掘合并就行。就是说做孟德尔随机化研究是不需要你有原始数据的。

我们把上面的步骤具体在刚刚提到的文献中走一遍:

这篇文献是要研究高血压和肾功能的因果方向的,就是到底是高血压导致肾功能下降,还是肾功能下降导致的高血压,具体地就是研究eGFRcr和BP的因果方向。

首先作者从别人的基因研究中找自己研究变量的工具变量,别人的研究的情况如下表:注意下表是包含一个联盟的很多个研究的(肾功能的工具变量是从CKDGen Consortium找来的,血压的工具变量是UKB-ICBP中找来的),是需要进行meta整合的:

通过meta分析作者就筛选出了两个变量可能的工具变量,因为每个变量的工具变量其实是比较多的,为了保证同一个变量工具变量间的独立性,作者有做一个叫LD clumping的操作:

To ensure independence among genetic instruments, we applied LD clumping60 with a clumping window of 10 MB and an r2 cutoff of 0.001 (default of the ld_clumpfunction)

作者有把筛出来的变量的暴露和结局的工具变量展示在文献中(但是放在补充材料中的,我并没有能找到,欸)

然后就到第二步和第三步,估计工具变量对暴露和结局的作用,这个时候要考虑工具变量一定不能直接影响结局(叫做pleiotropy),所以作者会用好几个算法来估计SNP的作用,并将多个SNP的效应合并,用到的是harmonise_data这个函数。

工具变量其实有很多的,所以就有上面提到的pleiotropic问题,作者是用不同的方法来估计参数(inverse variance weighted method, mendelian randomisation-Egger (MR-Egger) method, weighted median method, and weighted mode based estimation)来均衡pleiotropic问题的影响,最后得到一个总的合并后的效应,这个效应被认为是比较稳健的:

We applied four complementary methods of two sample mendelian randomisation (inverse variance weighted method, mendelian randomisation-Egger (MR-Egger) method, weighted median method, and weighted mode based estimation), which make different assumptions about horizontal pleiotropy. A consistent effect across the four methods is less likely to be a false positive.

有了合并后的工具变量对结局的效应,最后一步就是mr分析,估计暴露与结局的直接因果效应。

整个文献就是这么回事,正文中呈现出来的图表包括下面两个,一个是肾功能对血压的作用的森林图和效应的置信区间和p值,另一个是血压对肾功能的作用的森林图和效应的置信区间和p值:

最终作者得到肾功能是影响血压的原因,而非相反。整个文献就完啦,这个就是一个完整的孟德尔随机化研究的统计呈现过程。

Two-sample MR实操

接下来给大家写如何做出文献中的结果:

Two sample Mendelian randomisation (2SMR) is a method to estimate the causal effect of an exposure on an outcome using only summary statistics from genome wide association studies (GWAS).

具体地,作者使用的R包是‘TwoSampleMR’。

使用TwoSampleMR的基本流程包括4步:

选择工具变量

从GWAS数据库提取工具变量

合并效应量

做MR分析,敏感性分析,画图,出报告

在分析中我们要使用SNPs来作为工具变量:

Mendelian randomization is a method to assess the causal effect of an exposure on an outcome using an instrument, defined by one or more SNPs, as a proxy for the exposure.

这个工具变量怎么来呢,有人已经把所用的可能用到的SNPs总结好了放在了R包里,我们直接用就行,从GWAS中获取,我们需要在GWAS中找到暴露相关的工具变量和结局相关的工具变量从而形成两个样本,相应的分析跑两次,所以一般文献中的分析方法就叫做two-sample Mendelian randomization

Methodological advances mean that Mendelian randomization can be implemented using summary statistics from GWAS, without individual level data. This requires SNP-exposure associations and SNP-outcome associations obtained from separate datasets and is known as two-sample Mendelian randomization

这里又有许多术语需要给大家做做铺垫:

孟德尔随机化:Mendelian randomization is a method to assess the causal effect of an exposure on an outcome using an instrument, defined by one or more single nucleotide polymorphisms, as a proxy for exposure.(SNP就是工具变量)

Genome-wide association study (GWAS):Genome-wide association studies identify the genetic variants that are associated with a given phenotype.和暴露(表型)相关的基因都是从GWAS中找的

Heterogeneity:Heterogeneity is defined as the variation in the causal estimate across SNPs.这个是不同SNP效应的异质性,所以多个SNP的效应是需要合并的

其实还有好多,感觉写不完。。。直接上例子吧

实例解析

我现在想通过孟德尔随机化研究血压和冠心病的关系,首先我们得接入孟德尔随机基础库MR-Base这个数据库,找到相应的结局(即血压和冠心病)的相关基因,代码如下:

ao<- available_outcomes()exposure_dat<- extract_instruments(c('ukb-a-360'))outcome_dat<- extract_outcome_data(exposure_dat$SNP, c('7'), proxies=1, rsq = 0.8, align_alleles = 1, palindromes=1, maf_threshold = 0.3)

运行上面的代码然后你去查看对象exposure_dat或者outcome_dat就会看到相关基因研究的基本特征,给大家截个图吧:

然后计算基因对结局的合并效应量,代码如下:

dat<-harmonise_data(exposure_dat,outcome_dat,action=2)

最后一步就是进行mr分析:

mr_results<- mr(dat)

运行所有的代码后我们就可以得到不同算法模型下我们的结果如下图两图:

文献中的结果

我跑出来的结果

可以看到上面的图是文献中的,底下的图是我自己复现出来的,一模一样哦。可以看出来血压是对冠心病有因果影响的,我们还可以得到相应系数的置信区间:

generate_odds_ratios(mr_results)

同时因为我们是选了很多个SNP进行的效应估计,我们可以出整个SNP效应的森林图和漏斗图,漏斗图可以帮我们看SNP的异质性,我们还可以用Cochran’s Q and I2统计量检验不同SNP的异质性,然后选择正确的方法对各个SNP的效应进行合并得到总效应

从森林图就可以看到,整个血压的工具变量对肾功能的作用也是显著的,同时我们可以出散点图直接看出来血压对肾功能的系数,如下:

上图就是不同参数估计方法下面估计出来的暴露(血压)对结局(肾功能)的因果效应,这个图的纵轴是工具变量对结局的影响效应,横轴是工具变量对暴露的因果效应,两个效应做比值就是暴露对结局的效应,也就是图中线的斜率,也可以看出来这个线不同的算法估计出来是有些许差异的,但总体是斜向上的,就意味着暴露(血压)对结局(冠心病)是有着正向的因果关系的。

然后再用同样的方法做一遍冠心病对血压的因果关系的分析(流程完全一样就不重复了),做完之后发现冠心病对血压其实是没有因果作用的,这样我们就知道了其实是血压导致了冠心病而非冠心病导致了血压升高,这样一个完整的孟德尔随机化研究就完成了。

可以看到一个孟德尔随机化研究好像也不难哦。好啦,今天就到这儿吧,今天有粉丝在通话中鼓励我继续(赶紧)写公众号文章,有被感动到,所以特更一期,哈哈。

小结

今天从一篇文献出发给大家写了孟德尔随机化的流程和做法,希望可以帮助到大家,感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请关注后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞转发。

也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,另欢迎私信。

本文参考文献:

Wootton RE, Lawn RB, Millard LA, et al. : Evaluation of the causal effects between subjective wellbeing and cardiometabolic health: mendelian randomisation study. BMJ. 2018;362:k3788. 10.1136/bmj.k3788

A bidirectional Mendelian randomization study supports causal effects of kidney function on blood pressureYu, Zhi et al.Kidney International, Volume 98, Issue 3, 708 - 716

Clinical effect of naturally random allocation to lower systolic blood pressure beginning before the development of hypertension.Ference BA, Julius S, Mahajan N, Levy PD, Williams KA Sr, Flack JMHypertension. 2014 Jun; 63(6):1182-8.

Bowden, Jack, George Davey Smith, and Stephen Burgess. 2015. “Mendelian randomization with invalid instruments: effect estimation and bias detection through Egger regression.” International Journal of Epidemiology In press.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容