最近抽空研读了一篇探讨高血压和肾功能关系的文献,记录下来分享给大家,主要也是想看看孟德尔随机化的统计分析结果在论文中是如何呈现的,之后我会给大家写写孟德尔随机化的统计分析在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步:

  1. 选择工具变量
  2. 从GWAS数据库提取工具变量
  3. 合并效应量
  4. 做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

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

  1. 孟德尔随机化: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就是工具变量)
  2. Genome-wide association study (GWAS):Genome-wide association studies identify the genetic variants that are associated with a given phenotype.和暴露(表型)相关的基因都是从GWAS中找的
  3. Heterogeneity:Heterogeneity is defined as the variation in the causal estimate across SNPs.这个是不同SNP效应的异质性,所以多个SNP的效应是需要合并的
  4. 其实还有好多,感觉写不完。。。直接上例子吧

实例解析

我现在想通过孟德尔随机化研究血压和冠心病的关系,首先我们得接入孟德尔随机基础库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.

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

  1. R数据分析:交叉滞后模型基础与实例解析

    最近问纵向数据分析的同学贼多,像潜增长,GEE,多水平,之前都有写,今天偷空出个简易的交叉滞后教程哈,大家只要遇到像causal models,cross- lagged panel models,l ...

  2. 孟德尔随机化分析时,异质性太强怎么办

    孟德尔随机化分析是用来研究不同个体之间的差异的统计方法,如果样本中的个体太异质,可能会导致结果的不确定性增加.在这种情况下,可以考虑以下几种方法来减少异质性的影响: 对样本进行分层,即按照相关特征将样 ...

  3. R数据分析:生存分析的做法和结果解释

    今天给大家写写生存分析: Survival analysis corresponds to a set of statistical approaches used to investigate th ...

  4. R数据分析:生存分析的列线图的理解与绘制详细教程

    列线图作为一个非常简单明了的临床辅助决策工具,在临床中用的(发文章的)还是比较多的,尤其是肿瘤预后: Nomograms are widely used for cancer prognosis, p ...

  5. R数据分析:生存分析与有竞争事件的生存分析的做法和解释

    今天被粉丝发的文章给难住了,又偷偷去学习了一下竞争风险模型,想起之前写的关于竞争风险模型的做法,真的都是皮毛哟,大家见笑了.想着就顺便把所有的生存分析的知识和R语言的做法和论文报告方法都给大家梳理一遍 ...

  6. 解析基因影响:孟德尔随机化的创新思维

    一.引言 在当今的遗传学和生物学研究中,我们对基因对个体特征和性状的影响的理解变得更加深入.然而,基因影响的复杂性和多样性给我们带来了巨大的挑战.为了更好地揭示基因影响的本质和机制,我们需要采用创新的 ...

  7. R数据分析:逐步回归的做法和原理,案例剖析

    做回归的时候经常头痛的一个问题就是变量的选择,好多人一放一大堆变量但是结果做出来都没意义,这个时候你可以试试让算法给你选择最优的自变量组合哟. 那么今天要写的就是回归时筛选变量的逐步法: The st ...

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

    好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中: 上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的 ...

  9. [文献分享] 父母炎症性肠病与儿童自闭症(国家登记数据队列研究、连锁不平衡分数回归、多基因风险评分、孟德尔随机化)

    文献来源:Sadik A, Dardani C, Pagoni P, et al. Parental inflammatory bowel disease and autism in children ...

最新文章

  1. 從明天起做個幸福的人...
  2. 前端测试 karma mocha should 都是什么鬼?
  3. c语言函数汉诺塔不用move,C语言——汉诺塔问题(函数递归)
  4. java getcurrentpid
  5. 电子病历模板_年会献礼3:浮针专家平台病历撰写系统年会启动
  6. python付费课程推荐知乎_新手小白学习Python,有什么课程推荐吗?
  7. linux文件定时备份到windows,Linux和windows定时备份数据到百度云盘
  8. 【渝粤教育】国家开放大学2018年秋季 2632T城市轨道交通客运组织 参考试题
  9. Entity Framework 异常档案
  10. bitmap位图详解
  11. FC1179U盘量产教程
  12. sublime好看的字体设置
  13. 《麻省理工学院公开课:人工智能》笔记一
  14. 腾讯无限法则有几个服务器,腾讯《无限法则》亚服即将开测!PC配置需求公布,竟无官方中文!...
  15. 计算机科学第三讲——布尔逻辑和逻辑门
  16. python中lstrip_Python中的lstrip()方法使用简介
  17. win10下VMware15安装centos7详细步骤及遇到的问题
  18. 【ultraedit编辑器中怎么取消文件自动备份】
  19. 个人隐私保护5:和 金士顿 DataTraveler Locker+加密盘优势比较
  20. 21-1职业沟通Do you agree

热门文章

  1. linux C语言access()函数(检查用户对文件的权限)(判断文件是否存在)
  2. 读书笔记—用系统来工作
  3. python中day_python-day01 基础入门
  4. monaco-editor 动态插入文本到光标处
  5. 关于佳博热敏打印机添加打印机3019错误
  6. 大连计算机软件培训,大连计算机办公技能培训
  7. php怎么读取上传文件的md5,利用PHP怎么获取远程http文件的md5值
  8. Avast查出Android:Agent-SEB[PUB]这个毒,然后咋解决的
  9. Docker镜像与容器基本操作
  10. 抹机王怎么一键新机_抹机王怎么进行一键新机???