本文提供改进的本地化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。
sudo /usr/sbin/alternatives --config java
手动准备数据
1) 避免不稳定的网络环境使下载中断,自己用迅雷或者FTP客户端(wget也支持断点续传)下载以下4个文件(一共5.1G):
- godatabase: http://archive.geneontology.org/latest-full/ 目录下对应的go_XXXX-assocdb-data.gz
- gene_info.gz: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
- gene2accession.gz: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2accession.gz
- idmapping.tb.gz: ftp://ftp.pir.georgetown.edu/databases/idmapping/idmapping.tb.gz
2) 解压文件。提示:gzip -d解压文件后会删除原来的压缩文件。
1 | gzip -d *.gz |
3)下载local_b2g_db.zip文件,并解压。内含创建数据库的b2gdb.sql文件和导入idmapping文件的java程序ImportIdMapping.class及其依赖的库mysql-connector-java-5.0.8-bin.jar。
为了方便,上述文件都放到同一目录下。解压后文件清单如下:
1 2 3 4 5 6 7 8 9 | ./: 31.48 GB 2.97 KBImportIdMapping.class 2.33 KBb2gdb.sql 1.83 KBdownload_and_install.sh 3.27 GBgene2accession 1.32 GBgene_info 22.37 GBgo_201307-assocdb-data 4.51 GBidmapping.tb 528.18 KBmysql-connector-java-5.0.8-bin.jar |
导入数据库
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
1 | sh ./download_and_install.sh |
由于非常费时,强烈推荐以下命令将任务转到后台
1 | nohup sh ./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小时。
数据库各文件大小:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | b2gdb/: 74.91 GB 17.59 GBassociation.MYI 14.82 GBevidence.MYI 6.43 GBevidence_dbxref.MYI 5.91 GBevidence.MYD 3.90 GBassociation.MYD 3.63 GBdbxref.MYI 3.31 GBgene_product.MYI 2.68 GBgene2accession.MYD 2.37 GBgene_product_count.MYI 2.01 GBgi2uniprot.MYI 1.95 GBgene_product_synonym.MYI 1.67 GBevidence_dbxref.MYD 1.42 GBgene_product.MYD 1.40 GBgene2accession.MYI 1.28 GBgene_info.MYD 1.10 GBgene_product_synonym.MYD 1.10 GBgene_product_count.MYD 894.13 MBgi2uniprot.MYD 636.91 MBdbxref.MYD 349.73 MBgene_info.MYI 224.40 MBspecies.MYI 156.21 MBgraph_path.MYI 55.88 MBspecies.MYD 23.98 MBgraph_path.MYD 16.19 MBterm_synonym.MYI 10.71 MBterm.MYI 9.58 MBterm_dbxref.MYI 7.27 MBterm_definition.MYD 5.63 MBterm2term.MYI 5.16 MBterm_synonym.MYD 3.10 MBterm.MYD 2.32 MBterm_dbxref.MYD 1.53 MBterm2term.MYD 1.08 MBterm_definition.MYI 735.00 KBassociation_qualifier.MYI 419.75 KBassociation_qualifier.MYD 343.00 KBterm_subset.MYI 196.00 KBgene_product_homolset.MYI 111.00 KBterm2term_metadata.MYI 87.12 KBterm_subset.MYD 82.42 KBgene_product_homolset.MYD 49.76 KBdb.MYD 38.00 KBdb.MYI 37.67 KBterm2term_metadata.MYD 36.00 KBhomolset.MYI 35.00 KBassociation_species_qualifier.MYI 16.73 KBspecies.frm 14.35 KBhomolset.MYD 12.63 KBdb.frm 12.60 KBassociation.frm 12.58 KBgraph_path.frm 12.57 KBterm.frm 12.56 KBterm_synonym.frm 12.54 KBgene_product.frm 12.52 KBdbxref.frm 12.51 KBevidence.frm 11.69 KBassociation_species_qualifier.MYD 9.06 KBgene_info.frm 8.96 KBgene2accession.frm 8.67 KBrelation_properties.frm 8.64 KBsource_audit.frm 8.62 KBseq.frm 8.61 KBhomolset.frm 8.56 KBgene_product_ancestor.frm 8.54 KBterm_definition.frm 8.53 KBinstance_data.frm 8.53 KBgene_product_count.frm 8.53 KBterm2term.frm 8.51 KBrelation_composition.frm 8.50 KBassociation_property.frm 8.50 KBgene_product_homology.frm 8.49 KBintersection_of.frm 8.49 KBterm2term_metadata.frm 8.49 KBphylotree_property.frm 8.48 KBassoc_rel.frm 8.48 KBseq_property.frm 8.47 KBassociation_qualifier.frm 8.47 KBgene_product_property.frm 8.46 KBgene_product_seq.frm 8.46 KBterm_dbxref.frm 8.46 KBterm_property.frm 8.45 KBgene_product_phylotree.frm 8.45 KBgene_product_homolset.frm 8.45 KBassociation_species_qualifier.frm 8.44 KBgraph_path2term.frm 8.43 KBgene_product_synonym.frm 8.43 KBassociation_isoform.frm 8.42 KBphylotree.frm 8.42 KBgene_product_subset.frm 8.42 KBgene_product_dbxref.frm 8.41 KBevidence_dbxref.frm 8.41 KBterm_audit.frm 8.40 KBterm_subset.frm 8.40 KBseq_dbxref.frm 8.39 KBgi2uniprot.frm 7.00 KBrelation_composition.MYI 4.00 KBsource_audit.MYI 4.00 KBinstance_data.MYI 3.00 KBrelation_properties.MYI 2.00 KBseq_property.MYI 2.00 KBgene_product_property.MYI 1.00 KBterm_property.MYI 1.00 KBintersection_of.MYI 1.00 KBphylotree.MYI 1.00 KBphylotree_property.MYI 1.00 KBgraph_path2term.MYI 1.00 KBseq.MYI 1.00 KBseq_dbxref.MYI 1.00 KBgene_product_homology.MYI 1.00 KBgene_product_subset.MYI 1.00 KBgene_product_seq.MYI 1.00 KBgene_product_phylotree.MYI 1.00 KBgene_product_dbxref.MYI 1.00 KBterm_audit.MYI 1.00 KBgene_product_ancestor.MYI 1.00 KBassociation_property.MYI 1.00 KBassociation_isoform.MYI 1.00 KBassoc_rel.MYI 289.00Brelation_composition.MYD 196.00Bsource_audit.MYD 145.00Brelation_properties.MYD 65.00Bdb.opt 24.00Binstance_data.MYD 0.00Bgene_product_dbxref.MYD 0.00Bseq_property.MYD 0.00Bintersection_of.MYD 0.00Bgene_product_ancestor.MYD 0.00Bassoc_rel.MYD 0.00Bassociation_isoform.MYD 0.00Bterm_audit.MYD 0.00Bseq_dbxref.MYD 0.00Bterm_property.MYD 0.00Bseq.MYD 0.00Bphylotree.MYD 0.00Bgene_product_seq.MYD 0.00Bgraph_path2term.MYD 0.00Bgene_product_property.MYD 0.00Bassociation_property.MYD 0.00Bgene_product_phylotree.MYD 0.00Bgene_product_subset.MYD 0.00Bgene_product_homology.MYD 0.00Bphylotree_property.MYD |
运行官方的例子b2g4pipe
下载 https://blast2go.com/data/blast2go/b2g4pipe_v2.5.zip并解压。配置b2gPipe.properties文件中b2gdb信息:
1 2 3 4 5 | // GO and B2G Data Access Basic Dbacces.dbname=b2gdb Dbacces.dbhost=localhost:3306 Dbacces.dbuser=blast2go Dbacces.dbpasswd=blast4it |
注意:如果是无root权限安装的MySQL,一定要设置数据库端口为为自己设置的端口。
运行自带例子:
1 | sh ./runPipeExample.sh |
不到一分钟运行结束。
运行图形界面
直接运行命令java -cp *:ext/*: es.blast2go.Blast2GO或者,将其写入文件:
1 2 3 4 | #!/bin/bash # -Xmx1024M 指定java最大可使用内存,根据情况更改 java -Xmx1024M -cp *:ext/*: es.blast2go.Blast2GO |
运行脚本:
1 | sh ./runPipeExample.sh |
进入图形界面后,配置数据库:菜单栏点击“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中其它导入数据的命令,只保留第二步:
1 2 3 | ### 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的更新:
由于它们是以导入数据文件的方式导入数据库,需要登陆到数据库中,手动清空对应的原来数据表中的数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ 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。
参考
- Blast2GO安装 http://blog.sciencenet.cn/blog-402211-629228.html
- Blast2GO Documentation http://www.blast2go.com/b2glaunch/resources
- Local Blast2GO Database Installation http://www.blast2go.com/b2glaunch/resources/35-localb2gdb
- 其它无数Google出来的页面
-EOF-
本文转自 爪爪
《本地Blast2GO安装,及其数据库更新和导入数据中断的解决方案》http://blog.shenwei.me/local-blast2go-installation/