关于GO 注释的心得体会
目前对于GO功能注释的思路有 以下常见的四种:
1、BLAST+InterProScan => OmicsBox
可以先通过使用 blastp 进行nr注释,那么问题就来了,nr 数据库截至2018年12月已经有120G左右的数据量了,根据我的个人使用经验,对25000条蛋白进行32线程的并行化比对,差不多要半个月左右(心中一万匹cnm飘过)。很显然,在计算资源有限的条件下这是不现实的,那么大概就会出现两种思路:
(1)缩小数据库:一种是使用Swiss-Prot等小的数据库进行注释;另一种就是根据基于taxid构建 nr子数据库了,具体的构建可见 基于taxid构建Blast database_bioinfomatics2medicine_新浪博客 (2)能不能使用一个更高效的比对工具呢,答案是肯定的 那就是 GitHub - bbuchfink/diamond: Accelerated BLAST compatible local sequence aligner.
其主页介绍如下:
DIAMOND is a sequence aligner for protein and translated DNA searches, designed for high performance analysis of big sequence data. The key features are:
Pairwise alignment of proteins and translated DNA at 500x-20,000x speed of BLAST.
Frameshift alignments for long read analysis.
Low resource requirements and suitable for running on standard desktops or laptops.
Various output formats, including BLAST pairwise, tabular and XML, as well as taxonomic classification.
对的,它就是那么快,相对于 blastp 的半个月,在 ‘--more-sensitive’ 模式下也仅需要4-5个小时。
在nr注释完之后,就到使用 OmicsBox mapping GO id 了。现在所有的服务都要收费了,https://www.biobam.com/omicsbox/#plans. 但价格比以前(Blast2GO)要公道很多, 如果不缺少资金可以购买,但如果不想花钱,那么不如就来个本地化吧,对于本地化网上也有很多的教程了:
blast2go本地化2017教程:blast2go本地化2017教程 - 生信技能树
非root权限的blast2go的安装和使用(二)· blast2go的数据和软件准备及使用:https://mp.weixin.qq.com/s?__biz=MzI1MjU5MjMzNA==&mid=2247486358&idx=1&sn=4b095e9a200a419079d947d930c38abd&chksm=e9e02237de97ab21f4227ee76eca0aa94433fe6cc374e030093eb3acc2094a546110763bb411&mpshare=1&scene=23&srcid=0101kMbzD2el0RPASBiC9pFi#rd
陈连福 centos6.9 代码:
“# installing Blast2go Databases
mkdir /opt/biosoft/blast2go
cd /opt/biosoft/blast2go
wget http://archive.geneontology.org/latest-full/go_monthly-assocdb-data.gz
wget ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz ### ascp -k 1 -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --host=ftp-private.ncbi.nlm.nih.gov --user=anonftp --mode=recv /gene/DATA/gene_info.gz 。/
wget ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2accession.gz #### ascp -k 1 -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --host=ftp-private.ncbi.nlm.nih.gov --user=anonftp --mode=recv /gene/DATA/gene2accession.gz ./
wget ftp://ftp.pir.georgetown.edu/databases/idmapping/idmapping.tb.gz
## 对于不能使用aspera加速下载的文件可以试试 lftp -e 'pget -n NUM -c url; exit'实行多线程下载
gzip -dv go_monthly-assocdb-data.gz
gzip -dv gene_info.gz
gzip -dv gene2accession.gz
gzip -dv idmapping.tb.gz
tar zxf ~/software/local_b2g_db.tar.gz
mv local_b2g_db/* ./ && rm -rf local_b2g_db/
perl -p -i -e 's/go_201512-assocdb-data/go_2017-assocdb-data/' install_blast2goDB.sh
./install_blast2goDB.sh
#一个自己的例子 #
##下载NR 数据库到自己的Blast+ db 中
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.2.28/ncbi-blast-2.2.28+-x64-linux.tar.gz
tar -zxf ncbi-blast-2.2.28+-x64-linux.tar.gz -C /opt/biosoft/
/opt/biosoft/ncbi-blast-2.2.28+/bin/blastdbcmd -db nr -entry all -out nr.faa
### 值得注意的是这里我用的blastdbcmd是ncbi-blast-2.2.28+的,输出的 nr.faa 文件中序列名是 “>gi|66816243|ref|XP_642131.1| hypothetical protein DDB_G0277827” ,但如果用的是 ncbi-blast-2.6.0+的 blastdbcmd,输出没有GI号,原因可能是:As of September 2016, the integer sequence identifiers known as "GIs" will no longer be included in the GenBank, GenPept, and FASTA formats supported by NCBI for the display of sequence records.In addition, the FASTA format will no longer include the database source abbreviation. Please refer to the NCBI News Announcement posting for more detail.
wget https://github.com/bbuchfink/diamond/releases/download/v0.9.24/diamond-linux64.tar.gz
### 同样注意版本,因为diamond输出的XML与 b2g4pipe_v2.5 不兼容而出现 “Annotation of 0 seqs with 0 annots finished. Now searching for orfan IPRs...” 这个issues的讨论,你可以在到下面的链接去看。
tar -zxf diamond-linux64.tar.gz
mv diamond ~/bin/
cp ../interpro/proteins.fasta ./
ascp -k 1 -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --host=ftp-private.ncbi.nlm.nih.gov --user=anonftp --mode=recv /pub/taxonomy/accession2taxid/prot.accession2taxid.gz ./prot.accession2taxid.gz
ascp -k 1 -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --host=ftp-private.ncbi.nlm.nih.gov --user=anonftp --mode=recv /pub/taxonomy/taxdmp.zip ./
unzip taxdmp.zip
/opt/biosoft/ncbi-blast-2.2.28+/bin/blastdbcmd -db nr -entry all -out nr.faa
diamond makedb --in nr.faa -d nr --taxonmap prot.accession2taxid.gz --taxonnodes nodes.dmp #### DIAMOND v0.9.24
diamond blastp --query proteins.fasta --more-sensitive --db nr --evalue 1e-5 --salltitles --threads 64 --outfmt 5 --out nr.xml
perl -p -e 's/diamond 0.9.24/BLASTP 2.2.26/' nr.xml > nr_new.xml
perl -p -i -e 's/^Dbacces.dbname=.*/Dbacces.dbname=b2gdb/' b2gPipe.properties
perl -p -i -e 's/^Dbacces.dbhost=.*/Dbacces.dbhost=127.0.0.1/' b2gPipe.properties
java -cp *:ext/*: es.blast2go.prog.B2GAnnotPipe -in ../nr_new.xml -out go -annot -dat -annex
# 至于整合InterProScan的结果可以使用下面的脚本,当然也可以在java -cp *:ext/*: es.blast2go.prog.B2GAnnotPipe -ips 来实现,或者将b2g4pipe的输出文件加载到 Blast2GO Basic 中进行后续可视化分析。
merge_interpro_to_go.pl b2g4pipe/go.annot ../interpro/interpro.tsv > go.annot
# Anyone use diamond output xml file for b2gpipe? · Issue #79 · bbuchfink/diamond · GitHub
# diamond to blast2go erro · Issue #165 · bbuchfink/diamond · GitHub
2、InterProScan
对于 InterProScan 可以本地化,也可以用 interProScan5.pl 将序列发送到官方服务器进行注释,资源允许,还是推荐本地化,网络版感觉还是有点慢~一个本地化教程:
3、eggNOG-Mapper (包括网页版和本地化)
(1)关于这个注释方法网页版的推荐自己去摸索吧(就是和NCBI提交类似)=> http://eggnogdb.embl.de/#/app/emapper
(2)本地化推荐两个教程吧:
序列功能注释神器:eggNOG-mapper,KEGG/COG/KOG/GO/BiGG 一网打尽 : 序列功能注释神器:eggNOG-mapper,KEGG/COG/KOG/GO/BiGG 一网打尽 « Biostack.org
应该是最好的eggnog-mapper功能注释教程:应该是最好的eggnog-mapper功能注释教程 - 简书(生信媛)
4、PANNZER2-终极注释网站
此部分为2020年12月24日后加,该工具也是一个网页版工具。相较于eggNOG-mapper,PANNZER2注释上的基因条目与Blast2GO差不多,而且,2.5W个基因3-4h就可以拿到结果。如果再整合上InterProScan的结果,那么,这个方法便将高效、准确集于一身。
前方高能:
对于准确性的个人思考,基于比对,也就是基因相似性的注释方法(blastp,diamond)可能会取决于数据库的大小,因为在blast2go中有涉及到相似度cut这一步,如果数据库不够大,那么相似度有的可能只为50(在cut值之上),所以只使用Swiss-Prot等小数据库注释时可能需要提高cut值;当然也会听到直系同源和旁系同源的说法,所以在新版Blast2go中增加了filter GO with Taxid (可能是看到eggnog的文章慌了)这一新模块,减少旁系同源的注释结果。那么如果要在老版的Blast2go中运用这个模块,或许可以换个思路,在比对时,通过Taxid来过滤比对结果。
eggnog的注释,存在两种模式diamond和hummer,前者官方推荐为存在接近物种,也就是在直系同源注释中有更好的表现,hummer则反之. 同样的,只要是比对,就会有cut相似度这一说,数据库的大小及深度(涉及的物种),就会影响结果。其一个特点在于直系同源注释。这点Blast2go中出了filter with Taxid 来补充。
小提示:
参考文献
http://blog.sina.com.cn/s/blog_16152d7d70102xnc3.html
https://github.com/bbuchfink/diamond
https://mp.weixin.qq.com/s?__biz=MzI1MjU5MjMzNA==&mid=2247486358&idx=1&sn=4b095e9a200a419079d947d930c38abd&chksm=e9e02237de97ab21f4227ee76eca0aa94433fe6cc374e030093eb3acc2094a546110763bb411&mpshare=1&scene=23&srcid=0101kMbzD2el0RPASBiC9pFi#rd
http://www.jinciwei.cn/a342744.html
https://github.com/bbuchfink/diamond/issues/79
https://github.com/bbuchfink/diamond/issues/159
https://github.com/bbuchfink/diamond/issues/165
http://www.biostack.org/?p=698
https://www.jianshu.com/p/e646c0fa6443
NGS 生物信息学分析 V6.0 陈连福 郑越
https://www.jianshu.com/p/6296385adf21