blast2go本地化-2017教程
Blast2go本地化教程网上也有不少,但是都是13年之前的,由于最近有这个需求,我也重新收集了下资料,然后整理了下:
主要参考:
http://blog.shenwei.me/local-blast2go-installation/
http://www.blast2go.com/b2glaunch/resources/35-localb2gdb
各种baidu+google
通常我们上游分析得到的蛋白序列需要和主流的数据库进行比对,完成功能注释。常用数据库一共有以几种:
Nr:NCBI官方非冗余蛋白数据库,包括PDB, Swiss-Prot, PIR, PRF; 如果要用DNA序列,就是nt库
Pfam: 蛋白结构域注释的分类系统
Swiss-Prot: 高质量的蛋白数据库,蛋白序列得到实验的验证
KEGG: 代谢通路注释数据库.
GO: 基因本体论注释数据库
这里我们就讲解如何本地化Blast2go完成蛋白序列到GO数据库的注释。
前期准备
Mysql,这个肯定不用说了,必须的要的,我的是ubuntu 14.04,用apt默认安装的,然后将默认数据库目录改到自己的空间大的目录下,我是改到home目录下了,可参考修改mysql默认数据库目录
Java,这个教程里面说是1.6 or 1.7,但我试了下1.8也是可以用的,那肯定就是用1.8咯,教程点明必须要Oracle JDK版,我也没试过open版到底行不行,所以还是听教程的,安装步骤很简单,使用add-apt进行安装
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer数据的下载,其实就是一个需要导入mysql库的数据,主要用于比对后的id mapping
这些直接用wget下载就行了
godatabase: http://archive.geneontology.org/latest-full/ 下载go_monthly-assocdb-data.gz即可
gene2accession.gz: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2accession.gz
gene_info.gz: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
idmapping.tb.gz: ftp://ftp.pir.georgetown.edu/databases/idmapping/idmapping.tb.gz
下载安装文件: local_b2g_db.zip
文件整理
新建一个目录blast2go(名字随意),解压上述文件,并将所有文件都放到blast2go目录下,然后cd到blast2go目录下,进行后续操作,文件总共有这几个:
b2gdb.sql
b2gdb.sql~
gene2accession
gene_info
go_monthly-assocdb-data
idmapping.tb
mysql-connector-java-5.0.8-bin.jar
导入数据库
将b2gdb.sql导入mysql数据库,并添加几个表格(前提你有root权限,没有权限的话,请参照上面的参考文章)
mysql -u root -p password < b2gdb.sql
创建mysql数据库的一个用户blast2go,密码为blast4it(自己记住密码),方便后续调用这个数据库(我对数据库不熟悉,反正我照做了)
mysql -u root -p password -e "GRANT ALL ON b2gdb.* TO 'blast2go'@'localhost' IDENTIFIED BY 'blast4it';"
mysql -u root -p password -e "FLUSH PRIVILEGES;"接下来就是导入各个数据了
mysql -s -u root -p password b2gdb < go_monthly-assocdb-data #这步耗时会很久
mysql -u root -p password b2gdb -e "LOAD DATA LOCAL INFILE '/home/anlan/blast2go/gene2accession' INTO TABLE gene2accession FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';"
mysql -u root -p password b2gdb -e "LOAD DATA LOCAL INFILE '/home/anlan/blast2go/gene_info' INTO TABLE gene_info FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';"最后导入mapping数据(如果你b2gdb密码设置的不是blast4it,记得下面的命令也跟着改,后续的一些的配置文件中的b2gdb的密码也要跟着改)
java -cp .:mysql-connector-java-5.0.8-bin.jar: ImportIdMapping /home/anlan/blast2go/idmapping.tb localhost b2gdb blast2go blast4it
测试
理论上,上述的步骤都没报错的话,下面的测试肯定没问题的
下载官网的测试例子https://blast2go.com/data/blast2go/b2g4pipe_v2.5.zip,其实也是之后正式使用的执行文件
修改配置文件b2gPipe.properties,如下:
// GO and B2G Data Access Basic
Dbacces.dbname=b2gdb
Dbacces.dbhost=your_ip:3306
Dbacces.dbuser=blast2go
Dbacces.dbpasswd=blast4ityour_ip即为你的ip地址,如果你有root权限的话,安装mysql时默认是3306端口的,不是的话,需要改为你设置的端口
运行自带的例子
sh ./runPipeExample.sh
结果会出现在当前目录下的result文件夹中,主要的也就是.dat和.annot两个文件了
注意:
如果是go_monthly-assocdb-data数据导入时卡了或者异常退出了,需要重新导入的话,只要重新执行下命令就行了
mysql -s -u root -p password b2gdb < go_monthly-assocdb-data
如果是gene2accession和gene_info异常退出的话,需要先将mysql里面的对应的表格删除后,才能重新执行命令
mysql> use b2gdb;
mysql> truncate table gene2accession;
mysql> truncate table gene_info;如果是idmapping.tb异常退出的话,需要删除的表格是gi2uniprot,然后再重新执行命令
mysql> use b2gdb;
mysql> truncate table gi2uniprot;
后记
不知道有没有想过,做成一个R包呢?