前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用“coloc“包进行遗传基因间共定位分析(基于贝叶斯检验)

使用“coloc“包进行遗传基因间共定位分析(基于贝叶斯检验)

作者头像
生信与临床
发布2022-08-21 16:31:26
6.8K2
发布2022-08-21 16:31:26
举报

文章成型,特别感谢米老鼠先生的对于这个test代码调试和帮助。其实我觉得相互帮助,真的是短时间内掌握新东西的最好方法,ps:他好像不需要我帮助但是,作为渣渣也要自强,站在一个渣渣的立场,写一篇大家都能懂的推文!!!本文类似菜谱,只要看,你就懂!!!

背景

目前GWAS的研究铺天盖地,在此基础上,大家为了接近临床意义,或者揭示疾病间相关性,提出了meta分析,孟德尔随机化,WGCNA, 以及类似本文的基于GWAS summary 数据的共定位分析。

数据类型

可以为个体基因型数据,或者GWAS summary数据

目的

此处提出四个假设,也就是最后得到结果时,需要的读懂的五个参数,PP0=无关联,PP1=与1性状有关,与2无关,PP2=与2性状有关与1无关,PP3=与1,2性状相关但是SNP相互独立,PP4=与1,2性状相关并共域SNP。

接下来介绍一下这个分析的主要工具,一个叫做coloc的R包,目前国内应该还没有这个包的任何推文。其实这个包很早就写出来,但是那时候WGCNA,eQTL以及MR国内国外都不火,所以也就石沉大海了。包的思路很明晰,使用先验概率验证两组试验个体单核苷酸变异是否存在关联,并且在相同LD内,存在重叠,以此5个后验概率更好的解释两种现象间的因果或关联情况。

作者考虑了这样一种情况,在两个不相关的个体的不同数据集中测量了两种特征。假设样本来自同一种族,即等位基因频率和连锁不平衡(LD)模式在两个群体中是相同的。对于两个样本中的每一个,我们认为对于每个变体,结果表型Y和基因型X之间的线性趋势模型(或者如果两个结果表型Y中的一个是二元的,则为对数概率广义线性模型):

感兴趣的是一种情况,即单变量关联pvalue和MAFs,或估计回归系数β和估计精度var(^bb),可用于Q变量的两个数据集,通常是SNP,但也包括indel。首先,因果变量包含在Q变量集合中,可以是直接类型化,也可以是很好的imputed,其次,在感兴趣的基因组区域中,每个特征最多只存在一种关联。我们感兴趣的是研究数据是否支持这两种特征的共同因果变异。虽然该方法完全适用于病例对照结果,但我们在初始描述中考虑了两个定量特征。

之后就要提到我前面说过的五个假设:

在这个框架中,共域问题可以被重新表述为在假设H4中评估对所有配置(即二进制向量对)的支持度。之后的方法是贝叶斯方法它对所有可能的构型进行积分。这个过程需要先验概率的定义,在SNP水平(方法)定义先验概率。可以计算每个配置的数据概率,这些概率可以对所有配置求和,并与之前的数据相结合来评估对每个假设的支持程度H。这个过程的结果是5个后验概率(PP0、PP1、PP2、PP3、PP4)。假设3 (PP3)的较大后验概率表明支持两个独立的因果关系,如果PP4很大,数据就支持单一变异同时影响两种性状。对于阴性(如下图A-B,FRK基因和LDL, PP3.90%)阳性(下图C-D,SDC1基因与总胆固醇,PP4。80%)的共定位结果。

接着我们来看一下代码部分,这个软件的难处在于,如果没有R基础,真的很难都明白usage!!!

软件下载和安装都很容易,但一定要R4.0.0版本,米老鼠先生被我折腾的还升了级,哈哈,深表歉意……软件有CRAN,或者git上直接取。这里解读一句话:For usage, please see the vignette at https://chr1swallace.github.io/coloc这个是很多初学者的噩梦,点来点去,又回来了,个人认为,是作者放错了网址,如果需要vignette,使用这个地址https://cloud.r-project.org/web/packages/coloc/vignettes/vignette.html,接下来别以为万事大吉,简直更是噩梦,没有现成的toy文件,全部都是set.seed(),文件格式都很难看出来。

这里也是学习任何一个R包需要的步骤。首先你会找到这个包能解决什么问题的几个大标题,找一个,看你需要什么,比如这里:

接着,就是找输入文件格式。我自己浏览了两天这个页面,最终决定按照定义和要求,做我需要的,也就是(Approximate) Bayes Factor colocalisation analyses。最重要命令只有一行,可能会用掉你一周时间薅头发

代码语言:javascript
复制
my.res <- coloc.abf(dataset1=list(beta=b1$beta, varbeta=b1$varbeta, N=nrow(X1),sdY=sd(Y1),type="quant"),
                    dataset2=list(beta=b2$beta, varbeta=b2$varbeta, N=nrow(X2),sdY=sd(Y2),type="quant"),
                    MAF=maf)

所以,什么内置参数命名千万不要改,就是dataset1, dataset2,接着就是找对应项,这里会用到MAF和回归系数方差。也是需要根据自己的文件进行转换。

最终结果:

代码语言:javascript
复制
## PP.H0.abf PP.H1.abf PP.H2.abf PP.H3.abf PP.H4.abf 
##  2.54e-06  1.48e-04  1.75e-05  2.00e-05  1.00e+00 
## [1] "PP abf for shared variant: 100%"

需要找共域的,看PPH4, 已经到1,说明完全share.

此外,这个包还提供了近似贝叶斯因子共域分析本质上是通过在单个因果变量假设下精细地映射每个特征,然后在这两个后验分布上进行积分来计算这些变量共享的概率,使用finemap.abf()及其他功能。看到这,你应该明白了这个包基本原理和怎么读结果,可以用自己的数据试试,祝你成功!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信与临床 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档