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 sequenceserver
gem 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}")