前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GWAS分析中的GO和KEGG富集分析教程

GWAS分析中的GO和KEGG富集分析教程

作者头像
邓飞
发布2023-10-20 15:25:35
3660
发布2023-10-20 15:25:35
举报

大家好,我是邓飞,上一次,我们介绍如何根据显著性snp,使用bedtools根据上下游距离,根据gff文件注释基因。(使用bedtools进行gwas基因注释)

这一次,介绍一下如何根据注释的基因,进行富集分析,主要是看一下GWAS定位的基因有没有某一个趋势,也算是一种验证的方法。比如籽粒大小找到的30个候选基因,如果都与籽粒发育相关的生化途径一致,那就说明找到的都是相关的基因。

之前用于注释基因需要的gff文件:

上面红框中就是基因的名字,这里,我们已经注释到的基因,形成一个txt文件,内容如下:

1. R包依赖

下面先载入需要的R包,如果没有安装,需要安装一下:

代码语言:javascript
复制
  library(clusterProfiler)
  library(enrichplot)
  library(topGO)
  library(Rgraphviz)
  library(openxlsx)
  library(ggplot2)

2. 下载数据库

到Bioconductor中(https://www.bioconductor.org/),检索该物种的数据库:

常见的物种数据库如下:直接在Bioconductor中安装OrgDB的名称就行了。

这里,我们用的是水稻的数据库,名称为:org.Osativa.eg.db

3. 载入数据库和读取基因名文件

「载入数据库」

代码语言:javascript
复制
library(org.Osativa.eg.db)
db <- org.Osativa.eg.db 
organism <- "dosa" # 物种的名称

「读取基因型文件」

代码语言:javascript
复制
geneid = read.csv("gene_total.txt",header = F)
head(geneid)

4. 将ID匹配GID

将geneID,替换为数据库中的GID

代码语言:javascript
复制
map_id = AnnotationDbi::select(db, keys = geneid, columns=c("GID"), keytype = "RAP")
head(map_id)

5. 对基因列表进行GO注释

GO注释包括:

  • MF注释
  • CC注释
  • BP注释

「MF注释:」

代码语言:javascript
复制
go_MF =enrichGO(map_id$GID, 
                 OrgDb=db,
                 keyType = "GID",
                 ont="MF", 
                 pvalueCutoff=1,
                 qvalueCutoff=1, 
                 pAdjustMethod="none")
write.xlsx(go_MF,"go_MF.xlsx")
dotplot(go_MF,color="pvalue")
ggsave("go_MF_dotplot.pdf",width=12,height=6)

结果文件:

同样的,CC和BP的GO注释,将ont后面的改为CC和BP即可。

「CC的GO注释:」

代码语言:javascript
复制
## CC
go_CC =enrichGO(map_id$GID, 
                OrgDb=db,
                keyType = "GID",
                ont="CC", 
                pvalueCutoff=1,
                qvalueCutoff=1, 
                pAdjustMethod="none")
write.xlsx(go_CC,"go_CC.xlsx")
dotplot(go_CC,color="pvalue")
ggsave("go_CC_dotplot.pdf",width=12,height=6)

「BP的GO注释:」

代码语言:javascript
复制
## BP
go_BP =enrichGO(map_id$GID, 
                 OrgDb=db,
                 keyType = "GID",
                 ont="BP", 
                 pvalueCutoff=1,
                 qvalueCutoff=1, 
                 pAdjustMethod="none")
write.xlsx(go_BP,"go_BP.xlsx")
dotplot(go_BP,color="pvalue")
ggsave("go_BP_dotplot.pdf",width=12,height=6)

其它类型的图:

代码语言:javascript
复制
## 其它类型的图:
barplot(go_BP)
heatplot(go_BP)

6. KEGG富集分析

把基因型的ID后面加上“-01”,并且把g变为t

代码语言:javascript
复制
rap_id <- paste0(geneid, "-01")
rap_id <- gsub("g","t",rap_id)
head(rap_id)

富集分析:

代码语言:javascript
复制
geneid = read.csv("a1.txt",header = F)$V1
rap_id <- paste0(geneid, "-01")
rap_id <- gsub("g","t",rap_id)
head(rap_id)
kegg <- enrichKEGG(
  gene = rap_id,  #基因列表文件中的基因名称
  keyType = 'kegg',  
  organism = 'dosa', 
  pAdjustMethod = 'fdr',  #指定 p 值校正方法
  pvalueCutoff = 1,  
  qvalueCutoff = 1)  

运行日志:

作图:

代码语言:javascript
复制
barplot(kegg)
dotplot(kegg)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. R包依赖
  • 2. 下载数据库
  • 3. 载入数据库和读取基因名文件
  • 4. 将ID匹配GID
  • 5. 对基因列表进行GO注释
  • 6. KEGG富集分析
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档