浅谈GWAS分析后的富集分析操作(GO/KEGG)

作者:刘济铭

########################

在我们完成全基因组关联分析后,常常筛选得到特定性状的基因集,接下来,通常我们需要开展富集分析,筛选显著的基因功能富集和Pathway,这就要用到GO富集和KEGG富集。

理论和结果解释同样在知乎和各平台有很多讲解,因此,我还是重点提供一个富集分析的R脚本,供大家交流学习。

###GO富集分析R脚本#加载OrgDB包,OrgDB目前只有少数模式物种有公共数据库,通常大家研究的物种均已经建立了参考基因组和参考基因组注释文件,因此可以根据注释文件自行构建OrgDB数据集
#推荐参考基因课平台张旭东老师的15天入门生物信息课程https://genek-pc.duanshu.com/course/detail/455dbc620a5242fd800dfdc508d978b7,构建各自物种的OrgDB数据集
##
setwd('/Users/a/Desktop') #设置路径
#####数据集读取,多种方法,一下为两种,文件输入和剪贴板复制,都可以。
gene_result <- read.table(file = 'YourfileName',header = TRUE)gene_result <- read.table('clipboard',header = TRUE)
###载入OrgDB数据集
library(org.Hs.eg.db) #安装clusterProfiler包,感谢Y叔开发,造福众生,附原网址:https://github.com/YuLab-SMU/clusterProfiler,发表文章请正确引用原作者
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager")BiocManager::install("clusterProfiler")
#载入作图需要的R包
library(tidyverse)
library(clusterProfiler)
library(ggplot2)#柱状图和点状图
library(stringr)
library(enrichplot)
library(clusterProfiler)
library(GOplot)
library(DOSE)
library(ggnewscale)
library(topGO)gene <- filter(gene_result) %>%pull(GeneID)
#GO富集分析,注意keyType形式
gene_ego <- enrichGO(gene = gene,OrgDb = org.Hs.eg.db,#keyType = 'GID',ont = 'ALL', #Or BP/...qvalueCutoff = 0.05,pvalueCutoff = 0.01#默认enrichGO函数p值计算方法为“BH”,在分析过程中也可以通过调整p值取舍部分富集结果,但仍以显著富集功能或通路为主)
###KEGG富集分析
de_ekp <- enricher(gene,TERM2GENE = pathway2gene,TERM2NAME = pathway2name,pvalueCutoff = 0.05,qvalueCutoff = 0.01)
####富集结果作图,若富集结果无符合显著性阈值的功能或通路,则无法作图###作图代码来自知乎生信大神:糖糖家的老张的技术贴,链接如下:https://zhuanlan.zhihu.com/p/377356510,感谢老张大神
barplot(gene_ego, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free")#柱状图
barplot(de_ekp,showCategory = 20,title = 'KEGG Pathway')
dotplot(gene_ego, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free")#点状图
dotplot(de_ekp)
enrichplot::cnetplot(gene_ego,circular=FALSE,colorEdge = TRUE)#基因-通路关联网络图
enrichplot::cnetplot(de_ekp,circular=FALSE,colorEdge = TRUE)#circluar为指定是否环化,基因过多时建议设置为FALSE
#基因-通路关联热图
enrichplot::heatplot(gene_ego,showCategory = 30)
enrichplot::heatplot(de_ekp,showCategory = 30)#通路间关联网络图
GO2 <- pairwise_termsim(gene_ego)
KEGG2 <- pairwise_termsim(de_ekp)
enrichplot::emapplot(GO2,showCategory = 30, color = "p.adjust", layout = "kk")
enrichplot::emapplot(KEGG2,showCategory =30, color = "p.adjust", layout = "kk")

成图如下:

   以上为普通GO和KEGG富集分析及作图内容,本人感悟为生信分析方法千千万,万变不离其宗,无论如何分析,我们的目的是一致且不变的,就是为了寻找与特定组合、特定性状、特定区域强关联的基因,因此,富集分析可以为我们筛选得到这些显著的基因功能和通路,帮助我们更便捷找到特定基因。找到基因后,通常需要通过位置信息利用bedtools比对参考基因组提取序列信息,blast拟南芥或其他模式物种,对比分析。

参考来源:
https://genek-pc.duanshu.com/course/detail/455dbc620a5242fd800dfdc508d978b7
https://zhuanlan.zhihu.com/p/377356510

浅谈GWAS分析后的富集分析操作(GO/KEGG)相关推荐

  1. 浅谈 Linux 高负载的系统化分析

    简介: 浅谈 Linux 高负载的系统化分析,阿里云系统组工程师杨勇通过对线上各种问题的系统化分析. 讲解 Linux Load 高如何排查的话题属于老生常谈了,但多数文章只是聚焦了几个点,缺少整体排 ...

  2. python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作

    数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...

  3. python列表使用判断_浅谈Python数据类型判断及列表脚本操作

    数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...

  4. 浅谈大数据如何管理与分析

    构建面向海量信息的大数据管理平台,其本质上是要实现一套可软件定义的数据中心来通过对下层的基础架构进行有效的管理(存储.网络.计算以及相关资源的调度.分配.虚拟化.容器化等)以满足上层的业务与应用需求, ...

  5. 浅谈Spring框架注解的用法分析

    1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是"singleton",除此之外还有proto ...

  6. 浅谈 Spring 框架注解的用法分析

    1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是"singleton",除此之外还有proto ...

  7. javascript php 性能,浅谈页面装载js及性能分析方法_javascript技巧

    一.装载 先装载静态页面的引用js文件,然后查找引用文件中是否包含onload函数,比如main.js中包含onload函数,在main.js中查找是否有对其他js文件的引用,优先装载引用js文件,被 ...

  8. 【游戏逆向】浅谈某平台调试软件检测分析

    在调试这个平台的CS过程中,我们用CE对任意一个地址下断点会导致游戏的闪退. 首先我们第一时间想到的是游戏对有关下断的API进行了HOOK,于是用PChunte工具查看后发现有110个钩子 在其中我们 ...

  9. 浅谈:网站SEO优化导航做法分析及技巧

    一.网站的导航SEO优化效果 1.能有用地运用户知道,网站的全体用户的内容,其间包含产品.效劳.联系方法以及公司简介等; 2.很好的进行网站访客进行符号,能出现在当时阅读页面地点的网站方位; 3.制造 ...

最新文章

  1. 【linux】shell中浮点数运算的加、减、乘、除
  2. 使用mvc框架搭建跟人站点
  3. windows mysql 开启日志功能_Windows下开启mysql日志功能
  4. 对抗canary保护技术的几种方式
  5. python怎么玩pdf_如何使用Python玩转PDF各种骚操作?
  6. boost::hana::min用法的测试程序
  7. 计算机网络tcp三次握手,快速掌握_计算机网络_TCP_三次握手
  8. JavaRabbitmq笔记-Rabbitmq自定义头(Properties中的headers)
  9. Nginx进程间通信机制
  10. IE下打开ClearType后透明字体问题解决
  11. vim下中文乱码问题解决办法
  12. Win10:fastboot驱动问题解决方案
  13. php宠物社交领养网站
  14. Matplotlib绘制半圆形
  15. c语言二重循环的盒图怎么画,5循环结构程序设计
  16. Codeforces Problem-1591B Array Eversion
  17. oracle truncate可以恢复吗,恢复truncate表
  18. 新导部队营房室内人员定位系统解决方案
  19. 在安卓手机上运用AidLux实现人流检测数据统计
  20. win8信息服务器不可用怎么办,Win8打印机出现RPC服务器不可用怎么办?

热门文章

  1. 锐捷交换机配置命令节选
  2. 天池_二手车交易价格预测
  3. 越狱后如何使用将.app打包成deb程序
  4. electron tray托盘
  5. 下列那种不是python元组的定义方式
  6. Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environment
  7. 基于react/vue开发一个专属于程序员的朋友圈应用
  8. Django学习笔记 ORM操作 From菜鸟教程
  9. java 反编译 class文件 jad eclipse乱码
  10. 第五届蓝桥杯(国赛)——Log大侠