本文小编为大家详细介绍“如何用clusterProfiler中的enricher进行富集分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用clusterProfiler中的enricher进行富集分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
做基因的GO或者kegg富集分析,需要基因组当中所有基因的GO与KEGG数据库的注释信息,对于做模式物种的人来说很简单,有现成的注释结果,直接使用就可以,比如人里面可以直接用clusterProfiler进行基因集的富集分析;但是,对于非模式动物与植物的研究对象往往没有现成的注释结果,就没法直接进行富集分析;
因此学会基因功能批量注释非常重要;这里介绍一种方法可以针对所有的非模式物种进行GO和KEGG富集分析;
使用eggNOG对基因组进行注释,要想进行富集分析,首先要有背景数据集的GO注释和KEGG注释,这里选用eggNOG进行注释。
是在线服务器,点点鼠标上传就能注释,无需复杂配置。eggNOG虽然是web server,但一次最多可以注释10万条序列,应该是完全可以满足需求的。将自己的基因对应的cds序列或者蛋白序列提交到该网站即可注释。
研究物种基因组中所有基因对应的GO文件:
go2gene.tsv : 通过eggNOG注释结果文件整理得到
GO | GENE | CLASS |
GO:0000165 | Pg_S3686.2 | biological_process |
GO:0003674 | Pg_S3686.2 | molecular_function |
... | ... | ... |
go2name.tsv:GO term对应的功能描述文件
首先需要去GO下载GO的obo文件,这里我使用go-basic.obo然后我写了个脚本可以把obo文件解析为如下格式:
http://purl.obolibrary.org/obo/go/go-basic.obo |
GO | DESC | CLASS |
GO:0000001 | mitochondrion inheritance | biological_process |
GO:0000007 | low-affinity zinc ion transmembrane transporter activity | molecular_function |
4. KEGG富集分析需要的文件
ko2gene.tsv : 通过eggNOG注释结果文件整理得到
KO | GENE |
ko00920 | Pg_S3686.2 |
ko01100 | Pg_S33386.2 |
ko2name.tsv ko通路对应的名称
KO | DESC |
ko00440 | Phosphonate and phosphinate metabolism |
ko00450 | Selenocompound metabolism |
ko00460 | Cyanoamino acid metabolism |
ko00471 | D-Glutamine and D-glutamate metabolism |
ko00472 | D-Arginine and D-ornithine metabolism |
ko00473 | D-Alanine metabolism |
ko00480 | Glutathione metabolism |
ko00510 | N-Glycan biosynthesis |
ko00513 | Various types of N-glycan biosynthesis |
ko00512 | Mucin type O-glycan biosynthesis |
利用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进行富集分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。