本地Blast2GO安装,及其数据库更新和导入数据中断的解决方案

· Read in about 5 min · (939 Words)

本文提供改进的本地化Blast2GO自动化安装脚本,以及指导如何更新数据库,并提供导入数据中断的解决方案对无root权限的用户同样有效,同时指导如何成功运行b2g4pipe和本地Blast2GO图形界面。

——————————————————————————

本人仅安装了此程序,未跑过真实数据,且时间已久,不做任何解答,抱歉

——————————————————————————

由于Blast2GO官方网站提供的Blast2GO数据库安装教程需要用户具有root权限,而其官网上另一自动化安装脚本已过时,会出错,故文本将二者结合,并根据自身经验重新整理。

软件环境

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

gzip -d *.gz

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文件:

#!/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,请参照后面的章节进行操作。

总共导入数据需要约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

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

#!/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):

#!/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) 预防针”部分。

感谢各位的反馈。

-EOF-