走进转录组注释和富集生物信息

转录组分析(6) - 基因注释

2021-03-13  本文已影响0人  半夜一更
目的

基因功能的注释依赖于基因结构或者序列,将基因序列或蛋白序列和主流数据库进行比对获取该基因的功能信息,最终对预测的编码基因进行功能注释,从而了解相关生物学意义。

做法

EggNOG:2016年基因家族数据库EggNOG v4.5.1开始进入大家的视野,这个团队为数据库开发了相应的注释软件。目前已开发出5.0版本(http://eggnog5.embl.de/#/app/home) 支持了5,090个物种,比上一个版本4.5.1高出一倍不止。另外支持的Orthologous Groups也有4.5.1的19w疯狂升级到440W,其中每个Orthologous Group的蛋白也都关联了GO、KEGG数据库。

home.png
关于eggnog的 注释原理:首先将要研究的蛋白质序列与Eggnog中的蛋白序列进行比对,这个过程可以是基于相似性(DIAMOND),也可以是基于结构域(HMMER)。比对完以后就知道了我们提交的序列与哪个Orthologous Group最相似,并且还能知道与什么物种相似度最高,帮助确定注释的物种(真核还是原核,植物还是动物)。随后通过数据库之间关联进行COG、GO、Pathway的功能分类。 workflow.png
安装

系统要求:这个软件基于python2.7,需要200G左右的硬盘空间,并且对于真核生物需要90GB的内存,细菌大约32G内存,古细菌10G内存 (因为使用快速模式的话,会把数据库一次性加到内存中)
下载安装:

https://github.com/jhcepas/eggnog-mapper/releases

GitHub Clone 安装:

git clone https://github.com/jhcepas/eggnog-mapper.git

Anaconda 安装

conda install eggnog-mapper
下载数据库

它构建了107个各个层级的物种注释数据库,在http://eggnogdb.embl.de/#/app/downloads可以下载特有的数据库。
5.0版本仅提供下载Diamond数据库,命令为:

download_eggnog_data.py

直接使用命令下载数据库的话速度非常慢,通常可以采用迅雷下载后解压缩的方式搞定数据库。下载地址分别为:http://eggnogdb.embl.de/download/emapperdb-5.0.0/eggnog.db.gz ——8G大小、http://eggnogdb.embl.de/download/emapperdb-5.0.0/eggnog_proteins.dmnd.gz ——5G大小

4.5版本以前可以下载真核、细菌、古细菌、病毒(euk、bact、arch、viruses)的数据库,下载命令为:

download_eggnog_data.py euk bact arch viruses -y

下载完成,主要包括以下内容:其中OG_fasta存储fasta文件;eggnog.db存储eggnog数据库中的蛋白序列ID与GO、KEGG等其他分类数据库的对应关系; eggnog_proteins.dmnd是diamond的数据库;hmmdb_levels这个文件夹存储HMMER的数据库。

使用
 emapper.py  -h #查看帮助文档
 -m {hmmer,diamond}    Default:hmmer #设置模式,默认是hmmer
 -i                    Input FASTA file containing query sequences #输入的文件FASTA
 -d       specify the target database #指定数据库(euk,bact,arch,viruses从中选择一个)
 -o         base name for output files #设置输出文件前缀
 --usemem #[可选]针对hmmer模式(一次性将数据读入内存,快速处理,真核生物推荐90G以上内存服务器使用)

emapper.py -m diamond -i test.fa -o test --cpu 10  # 不需要指定数据库 -d
结果

结果保存在工作目录下。
随后对结果进行些许处理,以便后续在使用R包AnnotationForge构建物种org.db并采用R包clusterProfiler进行富集分析。

#去掉#开头的行(但是保留query_name这一行的表头信息)
$ sed -i '/^# /d' XXX..emapper.annotations
# 然后再去掉query_name前面的#,并且去掉第一行的空行
$ sed -i 's/#//' XXX..emapper.annotations
上一篇 下一篇

猜你喜欢

热点阅读