SequenceServer

SequenceServer

简介

SequenceServer 是基于 BLAST 的一款基因检索服务。

使用方式

首先需要拉取镜像:

1
docker pull wurmlab/sequenceserver:latest

然后下载样例基因文件:

1
2
3
4
mkdir db
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/005/845/GCF_000005845.2_ASM584v2/GCF_000005845.2_ASM584v2_genomic.fna.gz
gunzip GCF_000005845.2_ASM584v2_genomic.fna.gz
mv GCF_000005845.2_ASM584v2_genomic.fna ./db/demo.fna

然后根据基因库文件生成索引:

1
docker run --rm -v /xxx/db:/db -it wurmlab/sequenceserver:latest /sequenceserver/bin/sequenceserver -m

默认的配置只支持同时运行一个查询任务,需要修改配置文件 sequenceserver.conf

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
---
:host: 0.0.0.0
:port: 4567
:databases_widget: classic
:options:
:blastn:
:default:
:description:
:attributes:
- "-task blastn"
- "-evalue 1e-5"
:blastp:
:default:
:description:
:attributes:
- "-evalue 1e-5"
:blastx:
:default:
:description:
:attributes:
- "-evalue 1e-5"
:tblastx:
:default:
:description:
:attributes:
- "-evalue 1e-5"
:tblastn:
:default:
:description:
:attributes:
- "-evalue 1e-5"
:num_threads: 5
:num_jobs: 5
:job_lifetime: 43200
:cloud_share_url: https://share.sequenceserver.com/api/v1/shared-job
:large_result_warning_threshold: 262144000
:optimistic: false
:database_dir: "/db"

注:job_lifetime 代表查询的保存时间,单位是分钟,默认是 30 天。

之后可以编写 docker-compose.yaml 文件管理服务:

1
2
3
4
5
6
7
8
services:
sequenceserver:
image: wurmlab/sequenceserver:latest
ports:
- "4567:4567"
volumes:
- "./db:/db"
- "./sequenceserver.conf:/root/.sequenceserver.conf"

使用如下命令运行文件即可:

1
docker-compose up -d

之后访问 http://localhost:4567 在文本输入框内进行检索即可,样例如下:

1
2
>demo
CTCCTAAAGGGCCCAGCAAGACCAGCTGGTTGATAGGTCGGATGTGGACGCGCTGCAAGGCGTTGAGCTAACCGATACTA

如果有需要也可以使用接口调用数据请参照 接口文档,例如使用 curl

获取数据库 ID 用于检索:

1
curl $BASEURL/searchdata.json

发起搜索请求:

1
jobUrl=$(curl -v -X POST -Fsequence=ATGTTACCACCAACTATTAGAATTTCAG -Fmethod=blastn -Fdatabases[]=3c0a5bc06f2596698f62c7ce87aeb62a --write-out '%{redirect_url}' $BASEURL)

注:CSRF 如果异常可以注释掉 lib/sequenceserver/routes.rb 中的 use Rack::Csrf, raise: true, skip: ['POST:/cloud_share']

参考资料

官方网站

项目源码

接口文档


SequenceServer
https://wangqian0306.github.io/2024/sequenceserver/
作者
WangQian
发布于
2024年8月8日
许可协议