首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mendelian randomization(MR)

Mendelian randomization(MR)

原创
作者头像
用户10803254
发布于 2023-12-19 13:42:24
发布于 2023-12-19 13:42:24
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

孟德尔随机化:根据孟德尔遗传规律,亲代的等位基因随机分配给子代,此过程相当于随机对照研究(RCT)的随机分组过程:不受混杂因素(社会地位、行为等)的影响;满足时间顺序合理性(遗传变异继承于父母,且保持不变)

基本思想:利用与暴露因素具有强相关的遗传变异作为工作变量,借此推断暴露因素与研究结局之间的因果效应。

一.基础知识

1.数据来源:

现有全基因组关联研究(GWAS)数据大部分来源于欧洲,少量来源于亚洲、非洲、混合人种(暴露与结局最好来自同一个地方,消除人群异质性)

2.两样本MR的一个关键要点:

暴露与结局数据不存在或存在少量可接受范围内的样本重叠(最好不用同一库的)

3.下载的GWAS数据通常含以下变量

Rs号(pos,chr可以转化为rs号)

effect_allele(A1;效应等位基因)

other_allele(A2)

beta(OR;效应值):表示SNP对表型起到的作用(结局是连续型变量用beta,大于0则增加风险;结局是二分类变量用OR,OR大于1则增加风险)

se

P

EAF(Freq;MAF;效应等位基因频率)

注:beta与OR可以相互转化:beta <- ln(OR)

P、beta、se知道其中两个可以计算另一个:se <- abs(beta/qnorm(p/2,lower.tail=F)

4.工具变量的获取

  • 从GWAS原文中获取
  • 从已发表的MR文章中获取(注意引用)
  • R program提取

5.核心假设(若筛选出的SNP较少,可忽略假设2和3;独立性假设和排他性假设具有相似性)

  • 相关性假设(SNP与暴露强相关):

p<5e-08(视条件而定);F>10代表强相关; 注:p最低可放宽到5e-06(可能存在弱工具变量) ; P值越小,F越大

Clumping:LD r2<0.001(r2越小,SNP越少),kb=10000(视条件而定)#连锁不平衡r2小于0.001(越小SNP之间越独立),kb(指连锁不平衡的区域长度,在遗传学上我们认为在染色体上距离很近的遗传位点通常是“捆绑”在一起遗传给后代的)

代码语言:text
AI代码解释
复制
R2 <- 2*(1-MAF)*MAF*(beta)2 #计算每个SNP的R2将其相加,带入下面公式
F=(R2/(1-R2))((n-k-1)/k)# n为sample size , k为最终的SNP个数
  • 独立性假设(SNP与混淆因素无关)
  • 排他性假设(SNP只能通过暴露对结局发生作用,而不能通过其他途径):p>5e-5 或p>5e-8或P结局>P暴露

PhenoScanner (cam.ac.uk)#假设2和假设3(将假设1筛选出的SNP逐个输入该网站验证)

6.核心假设的违背

  • 弱工具变量:当遗传变异与暴露因素不具有强相关关系(P),或者遗传变异仅能解释小部分的表型变异时(F值),称为弱工具变量

解决方案:1.增加样本量 2.增加表型解释度:相对于单个遗传变异,多个遗传变异能解释更大比例的表型变异

  • 多效性:当遗传变异可通过“遗传变异-暴露因素-结局”以外的其他通路影响结局发生时,该遗传变异具有多效性,这种多效性可导致独立性和排他性假设不成立

解决方案:使用生物学功能明确的遗传变异作为工具变量

  • 连锁不平衡:基因组位置相近的遗传变异倾向于共同遗传

解决方案:使用生物学功能明确的遗传变异作为工具变量

  • 人群分层:遗传变异频率在不同遗传背景的人群间存在差异,导致遗传变异与结局之间出现虚假关联

解决方案:纳入具有相同遗传背景的人群开展遗传关联研究

7.

  • 逆方差加权法(IVW):假设所有遗传变异SNPs都是有效的工具变量,总体偏差为零。但是即使只有一个基因变异是无效的,它也会有偏倚
  • 加权中位数法(weighted median):即使多达一半的权重来自无效的工具,该估计量也是一致的。相比于IVW,该方法具有更小的I类错误,且是对MR-Egger的补充
  • MR-egger回归:斜率系数:估计因果效应;截距:检验基因多效性,当截距接近于0则认为遗传多效性影响较小

8.森林图中置信区间跨过0或1表示结果不显著(p>0.05)

6.暴露数据和结局数据的SNP对应的效应等位基因不一致:Harmonization

代码语言:text
AI代码解释
复制
dat <- harmonise_data(exposure_dat = RI_exp_dat_clumped,outcome_dat = outcome_dat)

7.一部分暴露数据的SNP在结局数据中找不到

8.代理SNP如何确定?

9.选择结局数据注意要点

  • SNP量至少四五百万

10.mr_keep=FALSE的观测分析时会被删掉

11.统计效能power值的计算

mRnd: Power calculations for Mendelian Randomization (cnsgenomics.com)

二.实操

1.实操第一步:暴露数据

将数据下载到桌面,打开RStudio,导入暴露数据exposure.txt:

代码语言:text
AI代码解释
复制
setwd("C:/Users/76325/Desktop")
exposure1 <- read.table("exposure.txt",header=T)

相关性设置:将exposure中P<5e-08的观测筛选出来

代码语言:text
AI代码解释
复制
exposure2 <- (exposure1,p<5e-08)#p为表中的变量名
  • 将数据导出,进行数据预处理(保留分析所需栏(SNP/bata/se/effect_allele/other_allele/eaf/p),对每一栏进行命名)
代码语言:text
AI代码解释
复制
write.csv(exposure2,file="exposure_RI.csv")
  • 将数据重新读回R,名称为exposure_RI
  • 重新整理数据
代码语言:text
AI代码解释
复制
RI_exp_dat <- read_exposure_data(filename=exposure_RI,sep=",",snp_col="SNP",bata_col="bata",
se_col="se",effect_allele_col=""effect_allele,other_allele_col="other_allele",eaf_col=“eaf”,
pval_col="p")

独立性设置

代码语言:text
AI代码解释
复制
RI_exp_dat_clumped <- clump_data(RI_exp_dat,clump_kb= 10000,clump_r2=0.01,clump_p1=1,
clump_p2=1,pop="EUR")#EUR表示样本来自欧洲
  • 将数据导出,计算F值,大于10的数据留下

2..实操第二步:结局数据

  • 将结局数据导入R,命名为PCOS_outcome
  • 将暴露与结局数据进行整合
代码语言:text
AI代码解释
复制
exposure_outcome <- merge(RI_exp_dat_clumped,PCOS_outcome,by.x="SNP",by.y="MarkerName")
  • 导出整合数据,删除exposure部分,剩余outcome部分,名称为outcome.csv
  • 将数据重新读回R
  • 重新整理数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
outcome_dat <- read_outcome_data(snps=RI_exp_dat_clumped,filename=outcome.csv,sep=",",snp_col="SNP",bata_col="bata",
se_col="se",effect_allele_col=""effect_allele,other_allele_col="other_allele",eaf_col=“eaf”,
pval_col="p")

3、实操第三步:Harmonization(协同)

代码语言:text
AI代码解释
复制
dat <- harmonise_data(exposure_dat = RI_exp_dat_clumped,outcome_dat = outcome_dat)

4、实操第四步: MR estimation

代码语言:text
AI代码解释
复制
> mr(dat)#默认用五种方法分析
mr_method_list()#查看总共有多少种方法
#mr(dat,method_list=c("mr_ivw","mr_raps"))#指定方法分析
Analysing 'ieu-a-2' on 'ieu-a-7'
  id.exposure id.outcome                              outcome
1     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
2     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
3     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
4     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
5     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
                       exposure                    method nsnp         b         se
1 Body mass index || id:ieu-a-2                  MR Egger   79 0.5024935 0.14396056
2 Body mass index || id:ieu-a-2           Weighted median   79 0.3870065 0.07201409
3 Body mass index || id:ieu-a-2 Inverse variance weighted   9 79 0.4459091 0.05898302
4 Body mass index || id:ieu-a-2               Simple mode   79 0.3401554 0.15562464
5 Body mass index || id:ieu-a-2             Weighted mode   70.3888249 0.09681892
          pval
1 8.012590e-04 #在MR-Egger的intercept分析时,P必须大于0.05,否则IVW结果不可靠
2 7.699254e-08
3 4.032020e-14  #IVW的P值<0.05,其他的大于0.05也可以当作阳性结果,但其他方法的beta值与IVW方向必须一致
4 3.183437e-02   #若方向不一致,将p值逐渐缩小 5e-9
5 1.352008e-04
  • 将beta值转换为OR值
代码语言:text
AI代码解释
复制
generate_odds_ratios(mr_res=mr(dat))
代码语言:text
AI代码解释
复制
mr_scatter_plot(mr_results = mr(dat,method_list = c("mr_ivw","mr_egger_regression",
"mr_weighted_median")),dat)

5.实操第五步:敏感性分析(我们希望P>0.05)

5.1 异质性检测

代码语言:text
AI代码解释
复制
> mr_heterogeneity(dat)#Q值小于0.05说明存在异质性
  id.exposure id.outcome                              outcome
1     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
2     ieu-a-2    ieu-a-7 Coronary heart disease || id:ieu-a-7
                       exposure                    method        Q Q_df       Q_pval
1 Body mass index || id:ieu-a-2                  MR Egger 143.3046   77 6.841585e-06
2 Body mass index || id:ieu-a-2 Inverse variance weighted 143.6508   78 8.728420e-06
  • 若有异质性(有离群值),则
代码语言:text
AI代码解释
复制
run_mr_presso(dat,NbDistribution = 5000)#数字越大,精度越高
  • 异质性可视化(漏斗图:SNP是否对称分布在IVW线两侧)
代码语言:text
AI代码解释
复制
mr_funnel_plot(singlesnp_results =mr_singlesnp(dat))

5.2 多效性检测(SNP通过其他暴露因素影响到结局):若存在多效性,则通过看文献了解存在哪些暴露因素,用phenoscanner网站剔除与暴露因素有关的SNP

代码语言:text
AI代码解释
复制
mr_pleiotropy_test(dat)#若p<0.05说明存在多效性(有截距),则不做了

5.3 Leave-one-out analysis(对结果有显著影响的SNP要剔除)

代码语言:text
AI代码解释
复制
mr_leaveoneout(dat)
  • 可视化(置信区间:beta+/-1.96se)
代码语言:text
AI代码解释
复制
mr_leaveoneout_plot(leaveoneout_results = mr_leaveoneout(dat))

三、在线数据库:IEU

代码语言:text
AI代码解释
复制
library(devtools)
devtools::install_github("MRCIEU/TwoSampleMR")
library(TwoSampleMR)
exposure <- extract_instruments(outcomes = "ieu-a-2",p1=5e-08)
outcome <- extract_outcome_data(snps = exposure$SNP,outcomes = "ieu-a-7")
dat <- harmonise_data(exposure_dat = exposure,outcome_dat = outcome)
mr(dat)

代码语言:text
AI代码解释
复制
#异质性检测
mr_heterogeneity(dat)#Q值大于0.05说明不存在异质性
run_mr_presso(dat,NbDistribution = 5000)

#异质性可视化
mr_funnel_plot(singlesnp_results =mr_singlesnp(dat))

#多效性检测
mr_pleiotropy_test(dat)#P<0.05则别做了

#leaveoneout analysis
mr_leaveoneout_plot(leaveoneout_results = mr_leaveoneout(dat))

#可视化

代码语言:text
AI代码解释
复制
mr_scatter_plot(mr_results = mr(dat,method_list = c("mr_ivw","mr_egger_regression","mr_weighted_median")),dat)

四、写作技巧

1.Introduction(注意暴露与结局应有侧重点)

background(first paragraph)

  • Epidemiology(发病率高),diagnosis(诊断困难,发现即晚期),treatment(覆盖率低因此预防很重要),prognosis(预后不好),disease burden...Then taken together,point out the importance and urgency for disease prevention ; Previous studies on the association between exposure and outcome(general to specific,experimental and clinical)

Gap(second paragraph)

  • What is unknown based on the existing evidence?(Causality)
  • The inherent defects for the conventional observational studies.
  • Why filling gap(undetermined causality) is important?
  • How will we fill the gap?(introduce MR)

Strategy(third paragraph)

  • Introduce the basic principles of MR design
  • Introduce previous topic-related MR studies

Conclusion(third/fourth paragraph)

  • Briefly describe what you will do in current study,and what implications will have

2.Method

study overview:

Briefly describe the study design and the corresponding fundamental assumption

Data source:

Exposure & Outcome

Genetic variant selection criteria:

Association threshold,LD cutoff,exclude SNP associated with outcome,Harmonization to exclude palindromic and incompatible SNPs, F>10 ,and so on

statistical analysis:

MR estimations like IVW,weighted median, MR-Egger,RAPS,and so on; Sensitivity analysis like Cochran Q test(异质性检测),Egger-intercept test(多效性检测), leave-one-out analysis

Risk factor analysis

Power analysis(推荐达到80%)

3.Result(呈现方法的结果)

4.Discussion

  • findings(开门见山,发现了什么)
  • How finding fit in with existing literature
  • Interpretation(mechanism):干预exposure降低outcome的风险;
  • strengths
  • limitations
  • Conclusion(implications of findings)

5.Abstract(concise:250~350 words)

  • Background(1~2 sentences)
  • Method
  • Results(show the most important results)
  • Conclusions(1~2 sentences)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TwoSampleMR:孟德尔分析(二)
至于F值和R^2值的计算,之前已经说过今天为了系统复现MR分析的所有步骤,再放一下下:
生信菜鸟团
2023/09/28
6.4K2
TwoSampleMR:孟德尔分析(二)
TwoSampleMR:孟德尔随机化一站式分析
包如其名,TwoSampleMR主要是为两样本孟德尔随机化分析而准备的,在应用这个包以前,我们来看看它的核心函数及其功能:
生信菜鸟团
2023/08/23
7.1K0
TwoSampleMR:孟德尔随机化一站式分析
孟德尔随机分析—如何解决数据存在水平多效性
进行孟德尔随机分析时候,发现结果MR-PRESSO(P-value = 0.628,未检测到显著多效性),而Egger截距显著偏离0(P = 0.0368,检测到水平多效性),在chatGPT的帮助下,使用使用 Lasso 回归( RadialMR 包)减少多效性 SNP,使结果Egger截距,P>0.05,这里记录了解决办法。
sheldor没耳朵
2025/03/11
6832
孟德尔随机分析—如何解决数据存在水平多效性
R语言实现孟德尔随机化研究
孟德尔随机化(Mendelian Randomization, MR)是近几年流行起来的用来进行因果推断的有效方法,它以遗传变异为工具变量来推导结局和暴露的因果关系,能有效避免传统流行病学研究的混杂偏
一粒沙
2020/11/16
11.6K0
R语言实现孟德尔随机化研究
全代码分享|孟德尔随机化怎么做?MR一套标准流程
孟德尔随机化(Mendelian randomization,MR)是一种利用基因变异作为工具变量来评估暴露与结果之间因果关系的统计方法。
生信初学者
2024/03/29
3.5K0
使用TwoSampleMR进行两样本的孟德尔随机化研究
TwoSampleMR是MR-Base数据库开发团队提供的R包,可以调用MR-Base数据库中已有的gwas结果,来进行2SMR分析,官方文档链接如下
生信修炼手册
2020/05/07
4.1K0
TwoSampleMR实战教程之计算并解读MR结果
在前几期的内容中,我和大家详细介绍了如何使用TwoSampleMR包读取暴露文件、去除存在连锁不平衡的SNP以及提取IV在结局中的信息,今天米老鼠将和大家介绍一下拿到数据后如何计算MR的结果并正确进行解读。
生信与临床
2022/08/21
4.7K0
TwoSampleMR实战教程之计算并解读MR结果
双向孟德尔随机化研究
https://www.bilibili.com/video/BV1LV4y1b7v5/?spm_id_from=333.1391.0.0&vd_source=7e83cb2510516bdff59ccf808d022aa0
sheldor没耳朵
2025/03/10
2690
双向孟德尔随机化研究
TwoSampleMR包实战教程之MR结果可视化
今天是TwoSampleMR包的最后一期内容了,这里米老鼠将带大家学习如何实现孟德尔随机化结果的可视化,主要有4方面的内容:(1)绘制散点图;(2)绘制森林图;(3)绘制敏感性分析图;(4)绘制漏斗图。其中第3个已经在上一期内容中进行了详细介绍,这里就不赘述了。
生信与临床
2022/08/21
3.2K0
TwoSampleMR包实战教程之MR结果可视化
两样本孟德尔随机化:代码实操,一学就会
到这步以后,其实就可以很好地与上上周的推文➡TwoSampleMR:孟德尔随机化一站式分析衔接起来啦,大家试试看吧
生信菜鸟团
2023/09/09
6.2K0
两样本孟德尔随机化:代码实操,一学就会
孟德尔随机化:代码分享(二)
代码中的那一串标签代表的大脑区域共同组成了brain structure,这里的示例分析相当于把它当成了结局,也就是a的分析过程。当我们把b和c都跑完,这篇文献的思路就明了了。
生信菜鸟团
2023/09/09
3.2K0
孟德尔随机化:代码分享(二)
关于MR-Egger方法的注意事项(1)
在往期的内容中,我和大家简单介绍过MR研究中IVW和MR-Egger这两种方法的区别,具体参见孟德尔随机化之IVW和MR-Egger方法简介。
生信与临床
2022/08/21
1.4K0
关于MR-Egger方法的注意事项(1)
🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)
betaX是来自每个SNP的暴露因素的回归分析的β系数,betaXse是标准误。😘
生信漫卷
2024/01/02
7840
🧐 MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)
孟德尔随机化之MendelianRandomization包(第五讲)
‍‍‍‍在“MendelianRandomization”包的前四讲内容中,米老鼠和大家介绍的都是单变量MR研究,也即一个暴露对应一个结局的研究。不过,我们在这里假设两种情形:(1)以脂质作为暴露因素时,我们很难找到只和HDL相关,但和LDL不相关的SNP,也就是不同的危险因素之间有很多共同遗传变异;(2)如果不同的暴露因素之间存在着中介效应,那我们也很难寻找只和单一危险因素相关的遗传变异。总之,当多个危险因素存在很强的关联时,我们需要使用多变量MR(multivariable MR)来进行准确的因果关系估计。
生信与临床
2022/08/21
1.5K0
孟德尔随机化之MendelianRandomization包(第五讲)
TwoSampleMR包实战教程之敏感性分析
当我们计算出MR的结果后,接下来就要进行敏感性分析,这里我们主要从如下三方面进行检验:
生信与临床
2022/08/21
3K0
TwoSampleMR包实战教程之敏感性分析
孟德尔中介分析全流程代码(一)
背景:据观察,较高的教育程度与较低的阿尔茨海默病风险有关。然而,支撑这种关联的生物学机制仍不清楚。教育程度对阿尔茨海默病的保护作用可能是通过增加大脑储备来介导的。
生信菜鸟团
2023/09/09
3.3K0
孟德尔中介分析全流程代码(一)
【孟德尔随机化】文献复现(五)
今天的内容建议参考【孟德尔随机化】文献复现(三),比较一下代码的异同以便进一步思考~
生信菜鸟团
2024/02/26
6880
【孟德尔随机化】文献复现(五)
【孟德尔随机化】文献复现(六)
大家注意到这里为什么要乘5.5再乘1.32269了吗?【也是问了作者大大才注意到这个细节的,( ╯□╰ )】
生信菜鸟团
2024/02/28
6680
【孟德尔随机化】文献复现(六)
孟德尔随机化系列1
孟德尔随机化(Mendelian Randomization, MR)是近几年流行起来的用来进行因果推断的有效方法,它以遗传变异为工具变量来推导结局和暴露的因果关系,能有效避免传统流行病学研究的混杂偏倚。如图所示,它的研究建立在三个假说之上:1)工具变量和暴露因素强相关;2)工具变量和混杂因素不相关;3)工具变量与结局不直接相关,它对结局的作用只能通过暴露来体现。
生信与临床
2020/08/06
2.2K0
孟德尔随机化系列1
孟德尔随机化之IVW和MR-Egger方法简介
今天和大家简单介绍一下孟德尔随机化研究中最常用的两种方法:逆方差加权法(inverse-varianceweighted,IVW)和MR-Egger法。
生信与临床
2022/08/21
10.1K1
推荐阅读
相关推荐
TwoSampleMR:孟德尔分析(二)
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入[游戏服务器] 腾讯云官方交流站
游戏服运维小技巧 常见问题齐排查
加入[后端] 腾讯云技术交流站
后端架构设计 高可用系统实现
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档