如何构建本地化的blast2go数据库

1、blast2go数据库简介

这GO功能注释过程中,我们经常使用一些R包(ClusterProfiler),或者基于超几何检验的方法进行GO功能富集分析。这些分析多数情况下,是建立在具有参考物种信息的情况下。有时候,我们进行的数据分析,是建立在物种信息的情况下。比如,比较常见的无参转录组数据分析,或者发现新基因的时候。在这种情况下,我们常常通过序列相似性的方法,先找到相似的序列编号,再通过注释网站工具进行注释。
其中,blast2go是比较经典的一种blast算法。其基本步骤是,首先对需要注释的序列,与NCBI(Nr数据库)或者Uniprot数据库进行Blast比对。得到注释结果后,按一定的过滤标准进行过滤。然后再映射到相应的GO功能上,并通过一定的打分规则给予相应的得分。

2、blast2go本地化

blast2go有两种方式进行检索:在线联网方式和本地不联网方式。这里我们主要是介绍本地不联网方式(基于Nr数据库注释)。

2.1 MySQL数据库的安装

这里采用的数据库是mysql数据库,具体安装参考Mysql。由于下载的Nr数据库比较大,我们需要更改数据库的保存路径,具体参考Mysql更改存储位置

2.2 Nr数据库下载与解压

$ wget -c -b -N --progress=dot:mega http://archive.geneontology.org/latest-full/go_201310-assocdb-data.gz
$ wget -c -b -N --progress=dot:mega ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene_info.gz
$ wget -c -b -N --progress=dot:mega ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2accession.gz   
$ wget -c -b -N --progress=dot:mega ftp://ftp.pir.georgetown.edu/databases/idmapping/idmapping.tb.gz
$ wget -c -b -N --progress=dot:mega http://blast2go.com/data/blast2go/b2g4pipe_v2.5.zip
$ wget -c -b -N --progress=dot:mega http://blast2go.com/public-data/local_b2g_db.zip

$ gzip -dv go_201207-assocdb-data.gz
$ gzip -dv gene_info.gz
$ gzip -dv gene2accession.gz
$ gzip -dv idmapping.tb.gz
$ unzip b2g4pipe_v2.5.zip
$ unzip local_b2g_db.zip
$ cp  local_b2g_db/* .

2.3 基于MySQL构建本地数据库

本步骤主要是将下载的Nr数据,导入MySQL数据库。
我们将整个流程写入一个shell脚本中(install_blast2go_database.sh),执行导入操作。

#!/bin/sh
godbname=go_201310-assocdb-data
dbname=b2gdb	# 首先在MySQL中创建数据库;无特殊要求,后续也会通过程序指定该命令定义的数据库名称
dbuser=root	# 数据库的root账号
dbpass=passwd	# 安装MySQL时,设置的root密码
dbhost=127.0.0.1	# 默认不要修改,否则需要后续修改blast2go数据库的配置文件(b2gPipe.properties)
path=$PWD	# 下载的Nr数据库文件的存放路径

mysql -h$dbhost -P 3306 -u$dbuser -p$dbpass $dbname < b2gdb.sql 

mysql -h$dbhost -u$dbuser -p$dbpass $dbname < $godbname
mysql -h$dbhost -u$dbuser -p$dbpass $dbname -e"LOAD DATA LOCAL INFILE '$path"/gene2accession"' INTO TABLE gene2accession FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';"
mysql -h$dbhost -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 Finished, now use Blast2GO to import the PIR mapping data-file;

上述shell脚本完成了数据库的导入操作:主要导入了go_201207-assocdb-data.gz,gene2accession 和 gene_info
注意: 需要个性化定制b2gdb.sqlSQL语句。如下部分需要更改:

# mysql 在创建 ci_sessions 表的时候报错:ERROR 1101 (42000): BLOB/TEXT column can’t have a default value
# 这是因为text或blob字段不允许有缺省值,这是由于strict mode导致的
# 可以通过 select @@sql_mode 查看模式规则,然后复制所有规则,并去除 STRICT_TRANS_TABLES
# 使用 set session sql_mode='。。。' 进行会话的设置(不改变全局的)
SET SESSION SQL_MODE='ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

DROP DATABASE IF EXISTS b2gdb; # 与shell配置保持一致
CREATE DATABASE IF NOT EXISTS b2gdb;
GRANT ALL ON b2gdb.* TO 'root'@'localhost' IDENTIFIED BY 'Apt@2022'; # 与shell配置保持一致
FLUSH PRIVILEGES;
USE b2gdb;

2.4 导入idmapping文件

  • 新版导入方式
java -cp .:mysql-connector-java-5.0.8-bin.jar: ImportIdMapping \
idmapping.tb localhost b2gdb blast2go blast4it

在新版本中,local_b2g_db.zip中包含3个文件:b2gdb.sql,ImportIdMapping.class和mysql-connector-java-5.0.8-bin.jar。

  • b2gdb.sql:创建了b2gdb数据库(MySQL database)和表(MySQL table)

  • b2gdb数据库的用户名是blas2go,密码blast4it

  • mysql-connector-java-5.0.8-bin.jar:将 idmapping.tb 导入到本地 b2gdb 数据库的 gi2uniprot 表中

  • 旧版导入方式

/home/chenlianfu/programs/jre1.7.0_04/bin/java -cp /home/chenlianfu/programs/blast2go/b2g4pipe/blast2go.jar:/home/chenlianfu/programs/blast2go/b2g4pipe/ext/mysql-connector-java-3.0.11-stabes-bin.jar es.blast2go.prog.util.ImportPIR idmapping.tb localhost b2gdb root passwd TRUE

# localhost, b2gdb, root和passwd 依据 install_blast2go_database.sh 中设定的而定。

2.5 修改blast2go数据库的配置文件

该文件为:/b2g4pipe/b2gPipe.properties 或者 blast2go/configuration/b2gPipe_55.properties(基于前者自定义的)

# 修改为 install_blast2go_database.sh中设定的
// GO and B2G Data Access Basic
Dbacces.dbname=b2gdb
Dbacces.dbhost=127.0.0.1
#Dbacces.dbhost=10.0.2.1
Dbacces.dbuser=root
Dbacces.dbpasswd=Apt@2022

2.6 执行注释

需要先获得blast和interproscan的注释结果,再进行命令行运行。有两种运行的方法:

$ java -Xmx1000m -cp *:ext/*: es.blast2go.prog.B2GAnnotPipe
$ java -Xmx1000m -jar blast2go.jar
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值