Blast
使用SequenceServer搭建blast网页服务。
SequenceServer安装配置#
- 下载安装blast+
 - 安装SequenceServer
 - 准备fasta格式的文件
 - 使用blast+中的makeblastdb命令构建库文件
   
makeblastdb -dbtype <prot_or_nucl> -title <human_readable_name> -in <path_to_fasta> -parse_seqids - 启动SequenceServer
   
sequenceserver -p <port> -d <path_to_database-dir> -n 50 -b <path_to_blast_binaries> 
SequenceServer命令行选项#
| Configuration file | Command line | Description | 
|---|---|---|
| :bin: | -b/--bin | Indicates path to the BLAST+ binaries. | 
| :database_dir: | -d/--database_dir | Indicates path to the BLAST+ databases. | 
| :num_threads: | -n/--num_threads | Number of threads to use for BLAST search. | 
| :host: | -H/--host | Host to run SequenceServer on. | 
| :port: | -p/--port | Port to run SequenceServer on. | 
| :require: | -r/--require | Load extension from this file. | 
升级SequenceServer2.0#
- 升级SequenceServer
   可以使用以下命令回调版本。
gem install --pre sequenceservergem uninstall sequenceserver - 升级后运行命令不变。
 
Note
此时sequenceserver在blast后返回的url为www.xxx.com/{job.id}, 但是因为我们的blast服务启动的地址为www.xxx.com/{port}, 能够看到结果的url是www.xxx.com/{port}/{job.id}, 因此会导致返回的结果无法打开。目前在github上已经有人建议将返回的url改为 请求地址/{job.id}, 目前作者已经将此添加到todo里,可能以后版本会修复, 具体查看https://github.com/wurmlab/sequenceserver/issues/555。
以下为我目前的解决方案:
1. 找到gem的安装路径, 该命令可能会输出多个gem的安装路径, 检查每个路径中的gems目录中的文件, 找到sequenceserver-2.0.0.rc8(也可能是2.0其他版本)。
   
echo "$(ruby -e 'puts Gem.path')"
cd ./lib/sequenceserver
def initialize(app)
  @app = app
end
def initialize(app)
  @app = app
  $my_port = app.config[:port]
end
redirect to("/#{job.id}")
redirect to("/#{$my_port}/#{job.id}")