GWAS找到显著信号位点后,需要解释显著信号位点如何影响表型。
常见的一个解释方法是共定位分析。

主流的共定位分析包括:

  • 1)GWAS和eQTL共定位;
  • 2)GWAS和sQTL共定位;
  • 3)GWAS和meQTL共定位;
  • 4)GWAS和pQTL共定位;

其中,GWAS和eQTL共定位应用最为广泛。

具体来说,当检测到GWAS信号和eQTL共定位时,我们会认为GWAS信号上的位点可能通过改变基因表达的生物学过程影响表型。

共定位分析有四种设想:

  第一种设想 H0: 表型1(GWAS)和 表型2 (以eQTL为例)与某个基因组区域的所有SNP位点无显著相关;
  第二种设想 H1/H2: 表型1(GWAS)或表型2(以eQTL为例)与某个基因组区域的SNP位点显著相关;
  第三种设想 H3: 表型1(GWAS)和 表型2 (以eQTL为例)与某个基因组区域的SNP位点显著相关,但由不同的因果变异位点驱动;
   第四种设想 H4: 表型1(GWAS)和 表型2 (以eQTL为例)与某个基因组区域的SNP位点显著相关,且由同一个因果变异位点驱动;

基于以上四种设想,我们希望第四种设想 H4 在统计学上概率更高,这样就能解释显著信号位点如何影响表型;

所以共定位分析,本质上是在检验第四种的后验概率;

讲完共定位分析的相关概念,接下来我们以“GWAS和eQTL共定位”为例讲一下如何使用coloc进行共定位分析。

1 下载、安装coloc

if(!require("remotes"))install.packages("remotes")install.packages("dplyr")
library(remotes)
install_github("chr1swallace/coloc",build_vignettes=TRUE)
library("coloc")
library(dplyr)

2 下载测试数据

测试数据请在公众号“bio生物信息”后台回复"coloc"获取;
或者用自己的数据分析(如果有的话);

3 分析

3.1 导入表型1(GWAS)数据:

gwas <- read.table(file="E:/path_to_GWAS/GWAS.txt", header=T);

GWAS数据包括:rs编号rs_id,P值pval_nominal等:

注意事项:如果表型是二分类变量(case和control),输入文件二选一:

1)rs编号rs_id、P值pval_nominal、SNP的效应值beta、效应值方差varbeta

2)rs编号rs_id、P值pval_nominal、case在所有样本中的比例s

3.2 导入表型2(eQTL)数据:

eqtl <- read.table(file="E:/path_to_eqtl/eQTL.txt", header=T);

eQTL数据包括:rs编号rs_id,基因gene_id,次等位基因频率maf、P值pval_nominal等:

注意事项:如果表型是连续型变量,输入文件三选一:

1)rs编号rs_id、P值pval_nominal、表型的标准差sdY

2)rs编号rs_id、P值pval_nominal、效应值beta,效应值方差 varbeta, 样本量N,次等位基因频率 MAF

3)rs编号rs_id、P值pval_nominal、次等位基因频率 MAF

3.3 合并GWAS和eQTL数据:

input <- merge(eqtl, gwas, by="rs_id", all=FALSE, suffixes=c("_eqtl","_gwas"))
head(input)

3.4 共定位分析

result <- coloc.abf(dataset1=list(pvalues=input$pval_nominal_gwas, type="cc", s=0.33, N=50000), dataset2=list(pvalues=input$pval_nominal_eqtl, type="quant", N=10000), MAF=input$maf)

dataset1的type="cc"指的是GWAS的表型是二分类(case和control);

dataset2的type="quant"指的是eQTL的表型(基因表达量)是连续型

N指样本量;

3.5 筛选共定位的位点

通常情况下,很多文献认为PPA > 0.95的位点是共定位位点,也有一些文献会放松要求到0.75。

这里假定后验概率大于0.95为共定位位点:

library(dplyr)
need_result=result$results %>% filter(SNP.PP.H4 > 0.95)

结果如下:

从图上可以看出,SNP.4811位点的后验概率为1。怎么找到这个位点呢?可以通过对应的P值(1.81e-42)找到这个位点的rs号;

4 结果解读

对于输出结果,我们只需要关注最后一列信息SNP.PP.H4,对应推文前面提到的第四种设想 H4。

SNP.PP.H4表示的是GWAS显著信号和eQTL位点为同一个位点的后验概率,范围在0-1之间,0表示概率为0%,1表示概率为100%。后验概率越高越好。

5 注意事项

1)由于共定位分析是基于某个基因组区域进行计算,所以请不要把全基因组的信息都丢进去(偷懒该打),这么做一个是没意义,另外一个特别耗时,给计算机增加工作负担;

2)虽然我们没必要把基因组的全部信息丢进去,但也不意味着只放一个变异位点信息就行。

3)因此,正确的做法是,先提取GWAS中显著变异位点上下游区域(这个区域多大自己定,没有金标准)的GWAS summary数据,理想情况下,提取后显著变异位点所在基因组区域的SNP数量在1,000-10,000之间。

4)该方法的设想是只有一个causal 位点,所以如果表型1(GWAS)和 表型2 (以eQTL为例)在某个区域有多个显著位点的话,用该方法是定位不出结果的,这是该方法的局限,所以如果某个基因组区域存在多个显著位点,请考虑其他工具(允许多个causal 位点共定位的工具)

特别鸣谢:
https://chr1swallace.github.io/coloc/FAQ.html
https://hanruizhang.github.io/GWAS-eQTL-Colocalization/
https://rpubs.com/Charleen_D_Adams/743547


致谢橙子牛奶糖(陈文燕),请用参考模版:We thank the blogger (orange_milk_sugar, Wenyan Chen) for XXX

感谢小可爱们多年来的陪伴, 我与你们一起成长~

post-GWAS:使用coloc进行共定位分析(Colocalization)相关推荐

  1. 使用coloc进行QTL数据的共定位分析

    摘要# 共定位分析旨在确定两个性状在给定基因组区域中可能共享的因果变异,本文中所说的共定位是基于贝叶斯推断的共定位分析,使用的软件是R语言中的coloc包. 抛砖引玉-共定位的原理与算法# 官方对于c ...

  2. Gene co-expression analysis for functional classification and gene–disease predictions 基因共表达分析的功能分类

    Gene co-expression analysis for functional classification and gene–disease predictions 基因共表达分析的功能分类和 ...

  3. 基于 python获取教育新闻进行分词关键词词共现分析 知识图谱 (附代码+报告)

    本文着眼于对疫情期间教育领域新闻的分析,基于 python 语言,利用爬虫获取教育领域的最新新闻,并将其内容进行分词,抓取关键词.在此基础上,根据关键词进行共现分析,并利用 Gephi 软件绘制主题知 ...

  4. 购物中心定位分析、调整方案及租金建议

    商业调整从来都是一个不变的命题,对购物中心而言,调整也是保持购物中心最佳经营业绩和持续竞争优势的重要措施. 尽管购物中心调整的终极目的是租金收益的提升,但商业品质的提升也是资产增值的重要体现:而且只有 ...

  5. LCD 显示异常定位分析方法

    第一种情况: 进入kernel或android 后,如果LCM图像示异常,可以通过如下步骤来判断问题出现在哪个层面. step1:通过DMMS截图,来判断上面刷到LCM的数据是否有问题. 若DMMS获 ...

  6. 阿里云ARMS助力「叫叫阅读」解锁系统定位分析技能包

    简介:在ARMS的长期使用熏陶中,整个技术团队的编码能力潜移默化地得到了升华,获得了生产力的提升. 叫叫阅读系列是成都书声科技有限公司(铁皮人)旗下的教育Apps. 主要针对3-12岁孩子,以儿童身心 ...

  7. HarmonyOS之HiTrace日志跟踪定位分析

    一.概述 在 HarmonyOS 跨设备分布式应用的问题定位过程中,由于跨设备之间的调用关系复杂,导致问题定位困难.DevEco Studio 提供了 HiTrace 日志跟踪的能力,可以分析和梳理跨 ...

  8. Java多线程之死锁编码及定位分析

    Java多线程之死锁编码及定位分析 目录 死锁是什么 代码实现 死锁解决办法 1. 死锁是什么 死锁是指两个或两个以上的进程在执行过程中因争夺资而造成的一种互相等待的现象,若无外力干涉那它们都将无法推 ...

  9. 测试过程线上问题的定位分析问题处理总结

    问题,俗称BUG.在测试工程师的职责范围内,要尽可能且尽早地发现程序上的问题,找到问题,然后暴露出来给开发修复,减少线上问题的发生,降低公司因线上问题产生的风险.在发现问题之后 ,也要关注定位问题.分 ...

  10. javacore分析工具_线上死锁定位分析

    " 记录一次线上死锁的定位分析."        昨晚睡觉前提了点代码到 jfoa(https://github.com/JavaFamilyClub/jfoa) 怎么也没想到导致 ...

最新文章

  1. VUE.JS 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法...
  2. ab的压力测试(转)
  3. 当当网高可用架构之道--转
  4. C++构造及析构执行顺序
  5. [JLOI2015]战争调度
  6. java框架讲解ppt_经典框架spring介绍课件.ppt
  7. 实现Runnable 创建多线程的简单实现
  8. 多目录Makefile(库及分层目录)
  9. zabbix通过ODBC监控sybase举例
  10. 网络高清视频远程会议系统EasyRTC在Windows10上运行程序无返回信息问题解决
  11. win 64 安装 sql server 2000、出现挂起 解决
  12. 中信建投X袋鼠云:实时数仓,证券机构的“速度与稳定”
  13. 对2-9取余的计算方法
  14. agv系统介绍_智能自动化物流系统AGV基础知识(完整介绍)
  15. 开发者必看 | DevWeekly 第1期:什么是时间复杂度?
  16. java关于文件的操作
  17. 揭秘“0 day漏洞”:一款强大却脆弱的武器
  18. Android 替换原生输入法
  19. 基于ThinkPHP+Element的低代码后台开发框架,开箱即用无需配置
  20. python_unittest框架

热门文章

  1. 学习 React.js 需要了解的一些概念
  2. 2022-2027年中国百元酒店行业市场全景评估及发展战略规划报告
  3. 安卓机自动肝手游脚本
  4. python把文件转化为二进制流-python:将一个文件转换为二进制文件(binary)
  5. Linux下通过vi修改只读文件
  6. KY-RTI分布仿真技术:第八章 Visual C#程序设计
  7. c语言链表中next作用,C语言链表中q-next=p;表示什么意思?
  8. Activiti会签
  9. python爬虫大众点评字体反爬
  10. Spring Boot—Controller 注解