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

29,029

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

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

软件环境

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

注:请一定参照网上的方法Mysql的数据库目录配置到有足够空间的目录下面!安装oracle  jdk,不用卸载openjdk,并切换java到oracle jdk。

[code lang="shell"]sudo /usr/sbin/alternatives --config java[/code]

手动准备数据

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

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

[shell]gzip -d *.gz[/shell]

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

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

[shell]./: 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[/shell]

导入数据库

1) 配置download_and_install.sh文件:

[shell]#!/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.[/shell]

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

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

2) 运行download_and_install.sh

[shell]sh ./download_and_install.sh[/shell]

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

[shell]nohup sh ./download_and_install.sh &[/shell]

关闭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小时。

数据库各文件大小:

[shell]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[/shell]

运行官方的例子b2g4pipe

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

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

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

运行自带例子:

[shell]sh ./runPipeExample.sh[/shell]

不到一分钟运行结束。

运行图形界面

直接运行命令java -cp *:ext/*: es.blast2go.Blast2GO或者,将其写入文件:

[shell]#!/bin/bash

# -Xmx1024M 指定java最大可使用内存,根据情况更改
java -Xmx1024M -cp *:ext/*: es.blast2go.Blast2GO[/shell]

运行脚本:

[shell]sh ./runPipeExample.sh[/shell]

进入图形界面后,配置数据库:菜单栏点击“Tools”,最后一个“DB configuration",更改Host为localhost,DB name为b2gdb,然后点击播放按钮生效,下次启动程序仍然有效。注意:如果是无root权限安装的MySQL,Host需要加上自定义的mysql端口,比如localhost:33060。

运行例子:菜单栏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中其它导入数据的命令,只保留第二步:

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

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

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

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

[shell]$ 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[/shell]

注意,上面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出来的页面

-EOF-

本文转自 爪爪

《本地Blast2GO安装,及其数据库更新和导入数据中断的解决方案》http://blog.shenwei.me/local-blast2go-installation/

评论  2  访客  2
    • 爪爪

      有多出重要更新,请看原文:
      http://blog.shenwei.me/local-blast2go-installation/

      • 爪爪

        blast2go的时候,PC远程连接服务器的数据库提示connection time out,在排除防火墙设置原因后,仍未解决,今天才想起来是mysql用户权限问题。

        之前哪位童鞋遇到的一直没解决,特做了更新。

      发表评论

      匿名网友