一个针对癌症变异解释的搜索界面,通过汇总和协调多个癌症变异解释知识库来构建。
项目描述
metakb
项目的目的是利用VICC现有资源的综合知识,提高基因组变异的临床解释的全面性。一个持续的目标将是提供并改进其他具有临床解释数据的团队通过哪些标准和指南使其对公众可访问和可见。我们已经发布了一篇关于我们初始协调努力的预印本,并观察到了变异解释的结构和内容差异。
入门
这些说明将帮助您在本地机器上创建项目副本并启动,以便进行开发和测试。有关如何在实时系统上部署项目的说明,请参阅部署部分。
先决条件
- Python 3的新版本,最好是3.8或更高版本。为了确认您的系统,请运行
python3 --version
- Pipenv,用于包管理。
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5fdcc4a0d2b273afaa07d06ba7fcfe7fc4758b3202cbf688352af4b8958d17d3 |
|
MD5 | ed5f37250b976bb9afbff714fddba54a |
|
BLAKE2b-256 | b79813f08331d7bb8a72433c245636fc5c9c02ccc6a9197ca8e51f00a34910a3 |
metakb-1.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 05531144880405c63011701b93e0b669c37975a981efff2996669f520bb84683 |
|
MD5 | 11426e22cab82dfcd8f9e4019f6be6ff |
|
BLAKE2b-256 | 2293ac19b289aada0a7dc911ea0c5f939f97bb044db2b7f60efed5b3359434d5 |