12 个版本
0.3.2 | 2024 年 7 月 14 日 |
---|---|
0.3.1 | 2024 年 7 月 11 日 |
0.2.1 | 2024 年 2 月 1 日 |
0.2.0 | 2023 年 12 月 27 日 |
0.1.6 | 2023 年 6 月 19 日 |
#174 in HTTP 服务器
220KB
2.5K SLoC
维古诺

维古诺(Versatile Interface for Genetics Utilization of Nice Ontologies)是 VarFish 安装的一部分,提供有关 HPO 表型、疾病及其与基因之间关系的信息。
维古诺提供了一个 REST API。
运行 Docker 镜像
以下命令假设您机器上有一个 viguno
可执行文件(例如,通过 cargo install
)。然而,我们还提供了 Docker 镜像。您可以如下运行版本 v0.1.1
。我们假设当前工作目录是对 viguno
的检查,所以我们有 HPO 和 HGNC xlink 表的副本在 tests/data
中。我们使用 -$PWD/tests/data:/data
绑定挂载到容器中。
# docker run \
-v $PWD/tests/data:/data \
-it ghcr.io/varfish-org/viguno:0.1.1
准备数据
第一步是将官方 HPO 数据下载到本地目录。我们固定到 2023-06-06 的版本。
# RELEASE=2023-06-06
# URL=https://github.com/obophenotype/human-phenotype-ontology/releases/download
# NAMES="hp-base.obo phenotype.hpoa phenotype_to_genes.txt genes_to_phenotype.txt"
# mkdir -p /tmp/data/hpo
# for name in $NAMES; do \
wget \
-O /tmp/data/hpo/$name \
$URL/v$RELEASE/$name;
done
# mv /tmp/data/hpo/hp-base.obo /tmp/data/hpo/hp.obo
# sed -i -e 's|/hp-base.owl||' /tmp/data/hpo/hp.obo
接下来,生成不同基因标识符之间的交叉链接文件。
# wget -O /tmp/hgnc_complete_set.json \
https://ftp.ebi.ac.uk/pub/databases/genenames/hgnc/json/hgnc_complete_set.json
# echo -e "hgnc_id\tensembl_gene_id\tentrez_id\tgene_symbol" \
> /tmp/data/hpo/hgnc_xlink.tsv
# jq -r '.response.docs[] | select(.entrez_id != null) | [.hgnc_id, .ensembl_gene_id, .entrez_id, .symbol] | @tsv' \
/tmp/hgnc_complete_set.json \
| LC_ALL=C sort -t $'\t' -k3,3n \
>> /tmp/data/hpo/hgnc_xlink.tsv
现在,您可以将下载的文本 HPO 文件转换为二进制格式,这将提高加载数据的性能。
# viguno convert \
--path-hpo-dir /tmp/data/hpo \
--path-out-bin /tmp/data/hpo/hpo.bin
运行服务器
在获得预计算数据后,您可以按照以下方式启动服务器
# viguno server run \
--path-hpo-dir tests/data/hpo
INFO args_common = Args { verbose: Verbosity { verbose: 0, quiet: 0, phantom: PhantomData<clap_verbosity_flag::InfoLevel> } }
INFO args = Args { path_hpo_dir: "tests/data/hpo", suppress_hints: false, listen_host: "127.0.0.1", listen_port: 8080 }
INFO Loading HPO...
INFO attempting to load binary HPO file from tests/data/hpo
INFO ...done loading HPO in 4.788750172s
INFO Loading HGNC xlink...
INFO ... done loading HGNC xlink in 156.362034ms
INFO Loading HPO OBO...
INFO ... done loading HPO OBO in 1.90213703s
INFO Indexing OBO...
INFO ... done indexing OBO in 835.558794ms
INFO Launching server main on http://127.0.0.1:8080 ...
INFO SEE SWAGGER UI FOR INTERACTIVE DOCS: http://127.0.0.1:8080/swagger-ui/
INFO starting 8 workers
INFO Actix runtime found; starting in Actix runtime
现在服务器正在运行,您可以使用 Ctrl-C
停止它。
您可以去 http://127.0.0.1/swagger-ui 查看自动生成的交互式 API 文档。您可以在 GitHub 上找到 main
分支的 OpenAPI YAML 文件这里,例如,您可以在这里的公共 Swagger 编辑器中打开它。
开发者文档
以下是为 Viguno 本身开发者提供的。
创建 Docker 构建
我们使用 GitHub Actions 自动构建 Docker 镜像。要在本地进行此操作,您可以执行以下操作:
# bash utils/docker/build-docker.sh
您可以设置以下环境变量:
GIT_TAG
一个 Git “treeish”(可以是标签或版本),用于构建(默认通过git describe --tags
进行推断)DOCKER_VERSION
用于 Docker 标签的版本(默认使用$GIT_TAG
,并删除v
前缀)
依赖项
~49–67MB
~1M SLoC