IT技术

Blast2Go 的安装与使用

软件环境

  • 操作系统 :Linux(Centos, Ubuntu, Fedora等),最好有root权限,方便配置mysql。
  • 数据库 :Mysql(或者Mysql的分支MariaDB),要有能创建数据库权限的用户,如果没有,可以参照我另一篇日志在没有Root权限的情况下安装Mysql。
  • Java运行环境:一定要Oracle  JDK (6、7都行),不要用OpenJDK,否则无法运行b2g4pipe!可参照我另一篇日志《Linux安装JDK》(内含没root权限时安装方法)。
  • Local NCBI-Blast。

注:1. 除非是已经非root安装mysql在有足够磁盘空间的分区(home)下,请一定参照网上的方法把Mysql的数据库目录配置到有足够空间的目录下面!2. 安装oracle  jdk,不用卸载openjdk,并切换java到oracle jdk。

sudo /usr/sbin/alternatives --config java

手动准备数据

1) 避免不稳定的网络环境使下载中断,自己用迅雷或者FTP客户端(wget也支持断点续传)下载以下4个文件(一共5.1G):

2) 解压文件。提示:gzip -d解压文件后会删除原来的压缩文件。

3)下载local_b2g_db.zip文件,并解压。内含创建数据库的b2gdb.sql文件和导入idmapping文件的java程序ImportIdMapping.class及其依赖的库mysql-connector-java-5.0.8-bin.jar。

为了方便,上述文件都放到同一目录下。解压后文件清单如下:

./:   31.48 GB
   2.97 KB	  ImportIdMapping.class
   2.33 KB	  b2gdb.sql
   1.83 KB	  download_and_install.sh
   3.27 GB	  gene2accession
   1.32 GB	  gene_info
  22.37 GB	  go_201307-assocdb-data
   4.51 GB	  idmapping.tb
 528.18 KB	  mysql-connector-java-5.0.8-bin.jar

导入数据库

0) 预防针。

b2gdb.sql建立数据库以及用户时,默认只赋予用户(blast2go)在本机(localhost)访问数据库(b2gdb)的权限,如下所示:

GRANT ALL ON b2gdb.* TO 'blast2go'@'localhost' IDENTIFIED BY 'blast4it';
FLUSH PRIVILEGES;

如果你今后需要在自己电脑使用服务器的b2g数据库,那么你需要赋予blast2go在任意主机(%)访问数据库的权限,修改如下:

GRANT ALL ON b2gdb.* TO 'blast2go'@'%' IDENTIFIED BY 'blast4it';
FLUSH PRIVILEGES;

没这样设置的结果就是,PC远程连接服务器的数据库提示connection time out,即使PC和服务器的防火墙设置无问题,仍然无法连接数据库。那么补救措施就是在服务器登陆mysql(必要时-P指定端口),运行上述两句mysql命令。

1) 配置download_and_install.sh文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh
 
# 配置以下7行
godbname=go_201307-assocdb-data		  # 根据http://archive.geneontology.org/latest-full/下assocdb-data.gz文件更改
dbname=b2gdb							 # 数据库 名称,不用改
dbuser=root							  # 数据库 用户名
dbpass=passwordofroot					# 数据库 用户密码
dbhost=localhost						 # 数据库 所在ip
dbport=3306							  # 数据库 端口,3306是默认的,如果是无root权限安装的MySQL,一定要改为设置的端口,比如我的33060
path=/home/shenwei/Public/Data/local_b2g # 数据文件目录,注意路径末尾不要有“/”
 
# 如果已经下载数据文件,下列部分保持注释
### Download the GO database the NCBI mapping files and the PIR mapping
# wget http://archive.geneontology.org/latest-full/$godbname.gz
# wget ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
# wget ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2accession.gz
# wget ftp://ftp.pir.georgetown.edu/databases/idmapping/idmapping.tb.gz
 
# 如果已经下载并解压数据文件,下列部分保持注释
###unzip files
# gzip -dv $godbname.gz
# gzip -dv gene_info.gz
# gzip -dv gene2accession.gz
# gzip -dv idmapping.tb.gz
 
echo 1. Create the DB Tables and user
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpass < b2gdb.sql
 
### Import data to the GO Database
echo 2. Import $godbname
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpass $dbname < $godbname
 
echo 3. Import gene2accession
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpass $dbname -e"LOAD DATA LOCAL INFILE '$path"/gene2accession"' INTO TABLE gene2accession FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';"
 
echo 4. Import gene_info
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpass $dbname -e"LOAD DATA LOCAL INFILE '$path"/gene_info"' INTO TABLE gene_info FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';"
 
echo 5. Import idmapping.tb
java -cp .:mysql-connector-java-5.0.8-bin.jar: ImportIdMapping $path/idmapping.tb $dbhost:$dbport $dbname blast2go blast4it
echo All data imported.

注意:如果是无root权限安装的MySQL,一定要设置数据库端口为为自己设置的端口,比如我的33060,否则无法导入idmapping.tb。

如果导入数据出现中断,切勿简单地重新运行download_and_install,请参照后面的章节进行操作。

2) 运行download_and_install.sh

由于非常费时,强烈推荐以下命令将任务转到后台

关闭ssh客户端后,任务仍然可以正常运行,通过查看nohup的默认日志文件nohup.out来观察数据导入的进度。

运行时间:

我的笔记本(Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz双核四线程,硬盘7200 rpm)工作硬盘4921 RPM,CPU温度73.0°C 。%>_<%

go_201307-assocdb-data(约5小时)和idmapping.tb(约1.5小时)比较费事。

总共导入数据需要约7小时。

数据库各文件大小:

b2gdb/: 74.91 GB
17.59 GB association.MYI
14.82 GB evidence.MYI
6.43 GB evidence_dbxref.MYI
5.91 GB evidence.MYD
3.90 GB association.MYD
3.63 GB dbxref.MYI
3.31 GB gene_product.MYI
2.68 GB gene2accession.MYD
2.37 GB gene_product_count.MYI
2.01 GB gi2uniprot.MYI
1.95 GB gene_product_synonym.MYI
1.67 GB evidence_dbxref.MYD
1.42 GB gene_product.MYD
1.40 GB gene2accession.MYI
1.28 GB gene_info.MYD
1.10 GB gene_product_synonym.MYD
1.10 GB gene_product_count.MYD
894.13 MB gi2uniprot.MYD
636.91 MB dbxref.MYD
349.73 MB gene_info.MYI
224.40 MB species.MYI
156.21 MB graph_path.MYI
55.88 MB species.MYD
23.98 MB graph_path.MYD
16.19 MB term_synonym.MYI
10.71 MB term.MYI
9.58 MB term_dbxref.MYI
7.27 MB term_definition.MYD
5.63 MB term2term.MYI
5.16 MB term_synonym.MYD
3.10 MB term.MYD
2.32 MB term_dbxref.MYD
1.53 MB term2term.MYD
1.08 MB term_definition.MYI
735.00 KB association_qualifier.MYI
419.75 KB association_qualifier.MYD
343.00 KB term_subset.MYI
196.00 KB gene_product_homolset.MYI
111.00 KB term2term_metadata.MYI
87.12 KB term_subset.MYD
82.42 KB gene_product_homolset.MYD
49.76 KB db.MYD
38.00 KB db.MYI
37.67 KB term2term_metadata.MYD
36.00 KB homolset.MYI
35.00 KB association_species_qualifier.MYI
16.73 KB species.frm
14.35 KB homolset.MYD
12.63 KB db.frm
12.60 KB association.frm
12.58 KB graph_path.frm
12.57 KB term.frm
12.56 KB term_synonym.frm
12.54 KB gene_product.frm
12.52 KB dbxref.frm
12.51 KB evidence.frm
11.69 KB association_species_qualifier.MYD
9.06 KB gene_info.frm
8.96 KB gene2accession.frm
8.67 KB relation_properties.frm
8.64 KB source_audit.frm
8.62 KB seq.frm
8.61 KB homolset.frm
8.56 KB gene_product_ancestor.frm
8.54 KB term_definition.frm
8.53 KB instance_data.frm
8.53 KB gene_product_count.frm
8.53 KB term2term.frm
8.51 KB relation_composition.frm
8.50 KB association_property.frm
8.50 KB gene_product_homology.frm
8.49 KB intersection_of.frm
8.49 KB term2term_metadata.frm
8.49 KB phylotree_property.frm
8.48 KB assoc_rel.frm
8.48 KB seq_property.frm
8.47 KB association_qualifier.frm
8.47 KB gene_product_property.frm
8.46 KB gene_product_seq.frm
8.46 KB term_dbxref.frm
8.46 KB term_property.frm
8.45 KB gene_product_phylotree.frm
8.45 KB gene_product_homolset.frm
8.45 KB association_species_qualifier.frm
8.44 KB graph_path2term.frm
8.43 KB gene_product_synonym.frm
8.43 KB association_isoform.frm
8.42 KB phylotree.frm
8.42 KB gene_product_subset.frm
8.42 KB gene_product_dbxref.frm
8.41 KB evidence_dbxref.frm
8.41 KB term_audit.frm
8.40 KB term_subset.frm
8.40 KB seq_dbxref.frm
8.39 KB gi2uniprot.frm
7.00 KB relation_composition.MYI
4.00 KB source_audit.MYI
4.00 KB instance_data.MYI
3.00 KB relation_properties.MYI
2.00 KB seq_property.MYI
2.00 KB gene_product_property.MYI
1.00 KB term_property.MYI
1.00 KB intersection_of.MYI
1.00 KB phylotree.MYI
1.00 KB phylotree_property.MYI
1.00 KB graph_path2term.MYI
1.00 KB seq.MYI
1.00 KB seq_dbxref.MYI
1.00 KB gene_product_homology.MYI
1.00 KB gene_product_subset.MYI
1.00 KB gene_product_seq.MYI
1.00 KB gene_product_phylotree.MYI
1.00 KB gene_product_dbxref.MYI
1.00 KB term_audit.MYI
1.00 KB gene_product_ancestor.MYI
1.00 KB association_property.MYI
1.00 KB association_isoform.MYI
1.00 KB assoc_rel.MYI
289.00 B relation_composition.MYD
196.00 B source_audit.MYD
145.00 B relation_properties.MYD
65.00 B db.opt
24.00 B instance_data.MYD
0.00 B gene_product_dbxref.MYD
0.00 B seq_property.MYD
0.00 B intersection_of.MYD
0.00 B gene_product_ancestor.MYD
0.00 B assoc_rel.MYD
0.00 B association_isoform.MYD
0.00 B term_audit.MYD
0.00 B seq_dbxref.MYD
0.00 B term_property.MYD
0.00 B seq.MYD
0.00 B phylotree.MYD
0.00 B gene_product_seq.MYD
0.00 B graph_path2term.MYD
0.00 B gene_product_property.MYD
0.00 B association_property.MYD
0.00 B gene_product_phylotree.MYD
0.00 B gene_product_subset.MYD
0.00 B gene_product_homology.MYD
0.00 B phylotree_property.MYD

运行官方的例子b2g4pipe

下载 https://blast2go.com/data/blast2go/b2g4pipe_v2.5.zip并解压。配置b2gPipe.properties文件中b2gdb信息:

// GO and B2G Data Access Basic
Dbacces.dbname=b2gdb
Dbacces.dbhost=localhost:3306
Dbacces.dbuser=blast2go
Dbacces.dbpasswd=blast4it

注意

1) 如果是无root权限安装的MySQL,一定要设置数据库端口为为自己设置的端口。

2) 如果是在本地运行,一定要保证服务器的mysql端口(3306)没有被防火墙屏蔽,Dbaccess.dbhost中的IP也要设置成服务器的IP

进入到b2g4pipe目录,运行自带例子。

 

sh ./runPipeExample.sh

其内容如下,也可以直接在命令行输入,:

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
# Windows中不要上面这行!!!!!!!!!!!!!
 
# -Xmx1024M 指定java最大可使用内存,根据情况更改
java -Xmx1024M -cp *:ext/*: es.blast2go.prog.B2GAnnotPipe -in 10_BlastResults_2011.xml -out results/myproject
 -prop b2gPipe.properties -v -annot -dat -img -ips ipsr -annex -goslim -wiki html_template.html
 
# Windows中把冒号改成分号!!!!!!!!!!!!!
# java -Xmx1G-cp *;ext/*; es.blast2go.prog.B2GAnnotPipe -in 10_BlastResults_2011.xml -out results/myproject
 -prop b2gPipe.properties -v -annot -dat -img -ips ipsr -annex -goslim -wiki html_template.html

注意:如果是在windows上运行,要将其中的冒号“:”改为分号“;”,文件名后缀改为.bat,直接双击文件运行。

不到一分钟运行结束。

 

运行图形界面

在自己的安装了java(安装方法请google,记得设置环境变量PATH、CLASSPATH)的电脑(也可以通过VNC远程连接服务器)上直接运行命令java -cp *:ext/*: es.blast2go.Blast2GO或者,将其写入文件(windows中后缀为.bat,linux为.sh):

1
2
3
4
5
6
7
8
#!/bin/bash
# Windows中不要上面这行!!!!!!!!!!!!!
 
# -Xmx1024M 指定java最大可使用内存,根据情况更改
java -Xmx1024M -cp *:ext/*: es.blast2go.Blast2GO
 
# Windows中把冒号改成分号!!!!!!!!!!!!!
# java -Xmx1024M -cp *;ext/*; es.blast2go.Blast2GO

进入到b2g4pipe目录,运行脚本(windows中直接双击.bat文件):
sh ./Blast2GO_GUI.sh

 

进入图形界面后,配置数据库:菜单栏点击“Tools”,最后一个“DB configuration”,更改Host为localhost,DB name为b2gdb,然后点击播放按钮(指向右边的三角形)生效,下次启动程序仍然有效。

注意:如果是无root权限安装的MySQL,Host需要加上自定义的mysql端口,比如192.168.1.2:33060,192.168.1.2为服务器IP。

运行例子:菜单栏File->Import->Import Blast Results->One XML File,导入10_BlastResults_2011.xml,菜单栏Mapping->Run Go Mapping Step即可。运行一分钟左右完成。

 

数据库更新 ,导入数据中断的解决方案:

1)assocdb-data数据的更新:

下载解压新的assocdb-data文件后,注释download_and_install.sh中其它导入数据的命令,只保留第二步:

### Import data to the GO Database
echo 2. Import $godbname
mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $godbname

并运行download_and_install.sh。不用担心与旧的数据冲突,它们会被自动删除然后更新。

2)gene2accession、gene_info、idmapping.tb的更新:

由于它们是以导入数据文件的方式导入数据库,需要登陆到数据库中,手动清空对应的原来数据表中的数据:

$ mysql -u root -p
Enter password:
 
mysql> use b2gdb;
Database changed
 
mysql> truncate table gene2accession;
Query OK, 0 rows affected (16.67 sec)
 
mysql> truncate table gene_info;
Query OK, 0 rows affected (2 min 2.49 sec)
 
mysql> truncate table gi2uniprot;
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
Bye

注意,上面truncate table gi2uniprot花费0.00 sec是因为当时我还没有导入idmapping.tb,即gi2uniprot中还没有数据,所以速度很快。

3)用download_and_install导入数据时,如果出现中断,请参照上面“数据库各文件大小”核对数据文件大小,确认已导入和未导入的数据库,按照“数据库更新”的操作恢复导入过程,切勿简单地重新运行download_and_install。

参考

  1. Blast2GO安装 http://blog.sciencenet.cn/blog-402211-629228.html
  2. Blast2GO Documentation http://www.blast2go.com/b2glaunch/resources
  3. Local Blast2GO Database Installation http://www.blast2go.com/b2glaunch/resources/35-localb2gdb
  4. 其它无数Google出来的页面

其它

根据b2gPipe.properties文件可以看出,blast2go的不仅能做基本的go注释(本文所安b2g数据库所支持),还能(需要)做GoSlim、Simap Integration等(均需联网),甚至在线blast,这需要运行b2gPipe或者b2gGUI的电脑能链接互联网。那么通过ssh连接服务器做的时候就需要服务器联网,或者通过代理让服务器联网;或者在自己联网的PC上做。

至于,PC远程连接服务器的数据库提示connection time out的情况,请参照前文“导入数据库”的“0) 预防针”部分。

 

发表评论