温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用clusterProfiler中的enricher进行富集分析

发布时间:2022-03-21 10:48:14 来源:亿速云 阅读:2374 作者:iii 栏目:开发技术

本文小编为大家详细介绍“如何用clusterProfiler中的enricher进行富集分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用clusterProfiler中的enricher进行富集分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.问题

做基因的GO或者kegg富集分析,需要基因组当中所有基因的GO与KEGG数据库的注释信息,对于做模式物种的人来说很简单,有现成的注释结果,直接使用就可以,比如人里面可以直接用clusterProfiler进行基因集的富集分析;但是,对于非模式动物与植物的研究对象往往没有现成的注释结果,就没法直接进行富集分析;

因此学会基因功能批量注释非常重要;这里介绍一种方法可以针对所有的非模式物种进行GO和KEGG富集分析;

2.基因批量注释

使用eggNOG对基因组进行注释,要想进行富集分析,首先要有背景数据集的GO注释和KEGG注释,这里选用eggNOG进行注释。

是在线服务器,点点鼠标上传就能注释,无需复杂配置。eggNOG虽然是web server,但一次最多可以注释10万条序列,应该是完全可以满足需求的。将自己的基因对应的cds序列或者蛋白序列提交到该网站即可注释。

3.GO富集分析需要准备的文件:

研究物种基因组中所有基因对应的GO文件:

go2gene.tsv  :  通过eggNOG注释结果文件整理得到

GOGENE
CLASS
GO:0000165Pg_S3686.2
biological_process
GO:0003674Pg_S3686.2 
molecular_function
.........


go2name.tsv:GO term对应的功能描述文件

首先需要去GO下载GO的obo文件,这里我使用go-basic.obo然后我写了个脚本可以把obo文件解析为如下格式:

http://purl.obolibrary.org/obo/go/go-basic.obo



GODESCCLASS
GO:0000001mitochondrion  inheritancebiological_process
GO:0000007low-affinity zinc ion transmembrane transporter  activitymolecular_function


4. KEGG富集分析需要的文件

ko2gene.tsv : 通过eggNOG注释结果文件整理得到

KOGENE
ko00920Pg_S3686.2
ko01100Pg_S33386.2

ko2name.tsv   ko通路对应的名称

KODESC 
ko00440Phosphonate and phosphinate metabolism
ko00450Selenocompound metabolism
ko00460Cyanoamino acid metabolism
ko00471D-Glutamine and D-glutamate metabolism
ko00472D-Arginine and D-ornithine metabolism
ko00473D-Alanine metabolism
ko00480Glutathione metabolism
ko00510N-Glycan biosynthesis
ko00513Various types of N-glycan biosynthesis
ko00512Mucin type O-glycan biosynthesis

5.富集分析

利用clusterProfiler中的enricher这个通用函数进行富集分析:

library(clusterProfiler)
ko2name <- read.delim('ko2name.tsv', stringsAsFactors=FALSE)
ko2gene <- read.delim('ko2gene.tsv', stringsAsFactors=FALSE)
go2name <- read.delim('gog2name.tsv', stringsAsFactors=FALSE)
go2gene <-read.delim('go2gene.tsv', stringsAsFactors=FALSE)
# 前面获取gene list的过程略
gene_list<- read.delim('gene.tsv', stringsAsFactors=FALSE)
# GO富集
## 拆分成BP,MF,CC三个数据框
go2gene = split(go2gene , with(go2gene , CLASS))
## 以MF为例
enricher(gene_list,TERM2GENE=go2gene [['molecular_function']][c(1,2)],TERM2NAME=go2name )
# KEGG富集
enricher(gene_list,TERM2GENE=ko2name ,TERM2NAME=ko2gene )

读到这里,这篇“如何用clusterProfiler中的enricher进行富集分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI