通常功能注释的思路都是基于序列相似性找直系同源基因,常见的方法就是BLAST+BLAST2GO, 或者是InterProScan。eggNOG-mapper的作者认为这种方法不够可靠,毕竟你有可能找到的的是旁系同源基因。近期对多个工具的整体评估发现eggNOG(evolutionary genealogy of genes: Non-supervised Orthologous Groups)在区分旁系同源基因和直系同源基因上表现不错,因此基于eggNOG数据库开发了eggNOG-mapper工具,用于对新序列进行功能注释。
eggNOG-mapper的算法实现如下:
目前eggNOG HMM数据库中拥有1,911,745个OG,覆盖了1,678种细菌,115种古细菌,238种真核物种以及352种病毒。除了HMMER3外,还而可用DIAMOND直接对所有的eggNOG蛋白序列进行搜索,它的速度更快,适合类似于宏基因组这类大数据集,或者是已有物种和eggNOG所收集的物种比较近
安装本体eggnog-mapper之前,需要先保证服务器上已经安装Python3.7(BioPython模块), wget, HMMER3 和/或 DIAMON,此外你还得保证70G的空间用于存放注释数据库和FASTA文件,对于真核生物至少保证90G的服务器内存。
git clone https://github.com/jhcepas/eggnog-mapper.git
之后需要下载所需要的数据库。eggNOG提供了107个不同物种的HMM数据库(xxxNOG)以及三个优化数据库, euk对应真核生物,bact对应细菌, arch对应古细菌(Archeabacteria), 以及一个病毒数据库(viruses). 这三个优化数据库包含了属于该分类内的所有物种的HMM模型。
cd eggnog-mapper
python3 ./download_eggnog_data.py
eggnog-mapper用起来非常的简单,你需要提供蛋白序列或基因组序列等作为输入
python3 path/to/emapper.py -i test.fasta --itype genome --cpu 10 -o rapa
eggnog-mapper默认是以HMMER进行序列搜索,可以通过-m diamond更改成DIAMOND,参数一般使用默认就好。
--itype
表示输入的序列文件类型,可选的有:CDS, proteins, genome, metagenome
--cpu
选取线程数目
-o
表示输出文件的前缀,默认输出在当前文件夹下
eggnog-mapper会生成三个文件:
[project_name].emapper.annotations每一列对应的记录如下: