前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何获取非模式生物KEGG PATHWAY的基因集并用clusterProfile做GSEA?

如何获取非模式生物KEGG PATHWAY的基因集并用clusterProfile做GSEA?

作者头像
生信技能树
发布2020-10-27 16:47:24
3.3K0
发布2020-10-27 16:47:24
举报
文章被收录于专栏:生信技能树

学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了!

下面是四川成都大熊猫基地学员原创教程

作者 so_zy, 2020-10-14

写此文档的缘由:在做GSEA分析时,由于研究的是非模式生物,从Broad Institue开发的MSigDB没有找到合适的预设基因集,没办法顺利进行GSEA. 但是KEGG数据库收录有目标物种。几经折腾,终于跑上了GSEA. 写此文档为其他研究非模式生物的人员提供一点借鉴。

以大熊猫为例:
1. 安装并加载R包

正常情况下,大家安装R包应该是都问题不大了。

代码语言:javascript
复制
 #清空当前变量
 rm(list = ls())
 options(stringsAsFactors = F)

#设置镜像
 options("repos"= c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
 options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")

#BiocManager安装"KEGGREST",
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("KEGGREST")

#加载"KEGGREST"
library(KEGGREST) #用于提取通路及基因信息

#查看KEGGREST说明书
browseVignettes("KEGGREST") 

#加载clusterProfile
library(clusterProfile)#用于GSEA富集分析

#加载stringr,用于字符串处理
if(!require(stringr))install.packages('stringr')
library(stringr)
2.查询大熊猫在KEGG数据库中的缩写
代码语言:javascript
复制
#获取KEGG数据库收录的所有物种的清单
org <- keggList('organism') 
# 在中国大陆地区耗时2-3分钟,在海外耗时一秒钟不到。
head(org) 
# 查询大熊猫在KEGG数据库中的缩写
org[str_detect(org[,3],"panda"),]

当然,也可以网页查询。https://www.genome.jp/kegg/catalog/org_list.html

可以看到,大熊猫在KEGG数据库对应的缩写为“aml

物种的kegg代号

最出名的物种当然是人类了,人类数据分析超级便捷,到处是造好的轮子。

3.获取大熊猫的KEGG通路及基因集
代码语言:javascript
复制
aml_path <- keggLink("pathway","aml") 
#得到字符型向量。元素名为基因id,元素为通路名. 耗时4-5分钟
#查看aml_path的前6个
length(aml_path)
aml_path[1:6] 
length(unique(names(aml_path)))
length(unique(aml_path))

可以看到大熊猫的KEGG通路有333条,涉及到的基因数量是7893个(2020-10-14 查询),跟人类研究不相上下哦。

4.获取用于GSEA的基因集数据框
代码语言:javascript
复制
#数据整理,将向量转变为数据框,作为GSEA的基因集
aml.kegg <- data.frame(term=unname(aml_path),gene=names(aml_path))

#将"gene"列中的“aml:”删掉
aml.kegg$gene <- str_replace_all(aml.kegg$gene,"aml:",'')
aml.kegg[1:6,] #包含两列,一列term为通路名称,一列gene为基因id

如下所示,基本的数据整理能力:

5.利用clusterProfile进行GSEA

(前提是已获得排序好的genelist)

代码语言:javascript
复制
genesets <- aml.kegg 
# 其中这个 genelist 来源于自己的大熊猫转录组数据分析后的基因排序的向量哦。
#富集分析
egmt<- GSEA(genelist, TERM2GENE=genesets, verbose=T,pvalueCutoff = 1)
library(clusterProfiler)
#提取富集结果
kegg_gsea_panda <- as.data.frame(egmt@result)
colnames(kegg_gsea_panda)

#保存结果到当前工作目录
write.table(kegg_gsea_panda,"kegg_gsea_panda.xls",row.names = F,
            sep="\t",quote = F)

PS: genelist 和genesets都用的是gene ID, 因此这里直接用gene ID进行mapping. 没有将ID转换为symbol.

参考网址:

  • https://bioconductor.org/packages/release/bioc/vignettes/KEGGREST/inst/doc/KEGGREST-vignette.html
  • https://www.jianshu.com/p/211b62bbd2bf

感谢生信技能树的《生信入门课程转录组讲师》张娟老师的帮助!

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

本文分享自 生信技能树 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以大熊猫为例:
  • 1. 安装并加载R包
  • 2.查询大熊猫在KEGG数据库中的缩写
  • 3.获取大熊猫的KEGG通路及基因集
  • 4.获取用于GSEA的基因集数据框
  • 5.利用clusterProfile进行GSEA
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档