跳转到主要内容

一个针对癌症变异解释的搜索界面,通过汇总和协调多个癌症变异解释知识库来构建。

项目描述

Documentation Status Build Status Coverage Status

metakb

项目的目的是利用VICC现有资源的综合知识,提高基因组变异的临床解释的全面性。一个持续的目标将是提供并改进其他具有临床解释数据的团队通过哪些标准和指南使其对公众可访问和可见。我们已经发布了一篇关于我们初始协调努力的预印本,并观察到了变异解释的结构和内容差异。

入门

这些说明将帮助您在本地机器上创建项目副本并启动,以便进行开发和测试。有关如何在实时系统上部署项目的说明,请参阅部署部分。

先决条件

  • Python 3的新版本,最好是3.8或更高版本。为了确认您的系统,请运行
python3 --version
pip3 install --user pipenv

安装

安装Pipenv后,克隆存储库并将包需求安装到Pipenv环境中

git clone https://github.com/cancervariants/metakb
cd metakb
pipenv lock && pipenv sync

如果您打算提供开发支持,请安装开发依赖项

pipenv lock --dev && pipenv sync

设置Neo4j

MetaKB使用Neo4j作为其数据库后端。要运行本地MetaKB实例,您还需要运行Neo4j数据库实例。最简单的方法是从Neo4j Desktop开始。

首先,按照桌面设置说明下载、安装并首次打开Neo4j Desktop。

打开Neo4j桌面后,使用窗口左上角的“新建”按钮创建一个新项目。在该项目中,点击窗口右上角的“添加”按钮,并选择“本地DBMS”。DBMS的名称不重要,但密码将用于稍后连接数据库到MetaKB(我们默认使用“admin”)。点击“创建”。然后,点击项目屏幕中对应于您新创建的DBMS的行,并点击绿色的“启动”按钮以启动数据库服务。

图最初将是空的,但一旦成功加载数据,Neo4j Desktop提供了一个探索和可视化图中关系的界面。要访问它,请点击蓝色的“打开”按钮。此窗口顶部的提示处理Cypher查询;为了开始,请尝试MATCH (n:Statement {id:"civic.eid:1409"}) RETURN n。左侧边缘的按钮让您选择图形、表格或文本输出。

设置归一化器

MetaKB调用多个归一化库来转换资源数据和解析传入的搜索查询。这些将作为包需求的一部分安装,但需要额外的设置。

首先,按照这些说明在您的计算机上本地部署DynamoDB。设置完成后,在单独的终端实例中,导航到其源目录并运行以下命令以启动数据库实例

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

接下来,导航到您的虚拟环境的site-packages目录。假设Pipenv已安装到您的用户目录,这应该是类似的东西

cd ~/.local/share/virtualenvs/metakb-<various characters>/lib/python<python-version>/site-packages/  # replace <various characters> and <python-version>

接下来,通过遵循README中的说明来初始化Variation Normalizer。在设置UTA数据库时,这些文档可能会有所帮助。

MetaKB可以获取除OMIM之外的所有其他归一化数据,而OMIM必须手动放置

cd disease/  # starting from the site-packages dir of your virtual environment's Python instance
mkdir -p data/omim
cp ~/YOUR/PATH/TO/mimTitles.txt data/omim/omim_<date>.tsv  # replace <date> with date of data acquisition formatted as YYYYMMDD

环境变量

MetaKB依赖于环境变量来设置以正常工作。

  • 始终需要

    • UTA_DB_URL

      • 在依赖UTA Tools的Variation Normalizer中使用
      • 格式:driver://user:pass@host/database/schema
      • 更多信息可以在这里找到这里

      示例

      export UTA_DB_URL=postgresql://uta_admin:password@localhost:5432/uta/uta_20210129
      
  • 在CLI命令中使用--load_normalizers_db--force_load_normalizers_db参数时需要

    • RXNORM_API_KEY

      • 在Therapy Normalizer中用于检索RxNorm数据
      • RxNorm 需要一个 UMLS 许可证,您可以在 此处 注册。您必须设置 RxNORM_API_KEY 环境变量为您自己的 API 密钥。这可以在登录后 UTS '我的个人资料' 区域 找到。

      示例

      export RXNORM_API_KEY={rxnorm_api_key}
      
    • DATAVERSE_API_KEY

      • 在 Therapy Normalizer 中用于检索 HemOnc 数据
      • HemOnc.org 数据需要哈佛 Dataverse API 密钥。在哈佛 Dataverse 网站上创建用户帐户后,您可以按照 这些说明 生成密钥。您将在此 网站 上创建或登录您的帐户。您必须将 DATAVERSE_API_KEY 环境变量设置为您的 API 密钥。

      示例

      export DATAVERSE_API_KEY={dataverse_api_key}
      

加载数据

一旦 Neo4j 和 DynamoDB 实例都运行,并且已放置必要的正常化数据,请使用 --initialize_normalizers 标志运行 MetaKB CLI 以获取所有其他必要的正常化源数据,并将收获、转换和加载操作执行到图数据存储中。

在 MetaKB 项目根目录中运行以下命令

pipenv shell
python3 -m metakb.cli --db_url=bolt://localhost:7687 --db_username=neo4j --db_password=<neo4j-password-here> --load_normalizers_db

有关不同 CLI 参数的更多信息,请参阅 CLI README

启动服务器

数据成功加载后,使用以下命令在本地主机端口 8000 上启动服务

uvicorn metakb.main:app --reload

确保 MetaKB Neo4j 和 Normalizers 数据库都在运行。

在浏览器中导航到 http://localhost:8000/api/v2 以输入查询。

运行测试

单元测试

说明如何运行此系统的自动测试

python3 -m pytest

以及编码风格测试

编码风格由 flake8 管理,并在提交之前进行检查。

see .flake8

贡献

请阅读 CONTRIBUTING.md 了解我们的行为准则以及向我们提交拉取请求的流程。

提交

我们使用 pre-commit 运行符合性测试。

这确保了

  • 检查代码风格
  • 检查添加的大文件
  • 检测 AWS 凭据
  • 检测私钥

在第一次提交之前运行

pre-commit install

版本控制

我们使用 SemVer 进行版本控制。有关可用的版本,请参阅 此存储库的标签

许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分布

metakb-1.1.0.tar.gz (56.6 kB 查看哈希值)

上传于 来源

构建分发

metakb-1.1.0-py3-none-any.whl (59.2 kB 查看哈希值)

上传于 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面