跳转到主要内容

治疗药物用的VICC规范化程序

项目描述

Thera-Py

image image image Actions status DOI: 10.1093/jamiaopen/ooad093

Thera-Py 将药物和其他生物医学治疗药物的文本名称和参考规范化为稳定、无歧义的概念标识符,以支持基因组知识协调。


实时OpenAPI服务


安装

PyPI安装

python3 -m pip install thera-py

用法

本地部署DynamoDB

我们使用Amazon DynamoDB进行数据存储。要在本地部署,请遵循这些说明

设置环境变量

RxNorm需要UMLS许可证,您可以在这里注册一个。您必须设置UMLS_API_KEY环境变量为您自己的API密钥。在登录后,您可以在UTS '我的配置文件'区域找到它。

export UMLS_API_KEY=12345-6789-abcdefg-hijklmnop  # make sure to replace with your key!

HemOnc.org数据需要一个哈佛Dataverse API令牌。您必须在哈佛Dataverse网站上创建用户账户,您可以按照这些说明创建账户并生成API令牌。一旦您有了API令牌,请设置以下环境变量

export HARVARD_DATAVERSE_API_KEY=12345-6789-abcdefgh-hijklmnop  # make sure to replace with your key!

更新源

Therapy Normalizer目前从以下源聚合治疗数据:

要更新源,只需将--sources设置为要更新的源,并用空格分隔。例如,以下命令更新ChEMBL和Wikidata

python3 -m therapy.cli --sources="chembl wikidata"

您可以使用--update_all标志一次性更新所有源

python3 -m therapy.cli --update_all

Thera-Py可以使用wags-tails库自行检索所有所需数据。默认情况下,数据将存储在~/.local/share/wags_tails/下,格式如下

~/.local/share/wags_tails
├── chembl
│   └── chembl_27.db
├── chemidplus
│   └── chemidplus_20200327.xml
├── drugbank
│   └── drugbank_5.1.8.csv
├── guidetopharmacology
│   ├── guidetopharmacology_ligand_id_mapping_2021.3.tsv
│   └── guidetopharmacology_ligands_2021.3.tsv
├── hemonc
│   ├── hemonc_concepts_20210225.csv
│   ├── hemonc_rels_20210225.csv
│   └── hemonc_synonyms_20210225.csv
├── ncit
│   └── ncit_20.09d.owl
├── rxnorm
│   ├── rxnorm_drug_forms_20210104.yaml
│   └── rxnorm_20210104.RRF
└── wikidata
    └── wikidata_20210425.json

HemOnc源更新依赖于疾病标准化服务。如果疾病标准化数据库看起来是空的或不完整的,HemOnc的更新也将触发疾病标准化数据库的刷新。请参阅其README以获取额外的数据要求。

创建合并概念组

/normalize端点依赖于合并概念组。--update_merged标志生成这些组

python3 -m therapy.cli --update_merged

指定数据库URL端点

默认URL端点是http://localhost:8000。有两种不同的方式来指定数据库URL端点。

第一种方式是将--db_url标志设置为URL端点。

python3 -m therapy.cli --update_all --db_url="http://localhost:8001"

第二种方式是将环境变量THERAPY_NORM_DB_URL设置为URL端点。

export THERAPY_NORM_DB_URL="http://localhost:8001"
python3 -m therapy.cli --update_all

启动治疗标准化服务

从项目根目录运行以下命令

uvicorn therapy.main:app --reload

接下来,在本地计算机上查看OpenAPI文档

http://127.0.0.1:8000/therapy

常见问题解答

数据导入方法引发了SourceFormatError实例。我该如何处理?

TheraPy将自动尝试获取每个源的最新数据版本,但有时,源会更改其数据的结构(例如,添加或删除CSV列)。如果在导入数据时遇到SourceFormatException,请通过创建新的问题(如果尚未创建)来通知我们,我们将尝试解决它。

同时,您可以强制TheraPy使用较旧的数据版本,方法是从源数据文件夹中删除不兼容的版本,手动下载并替换为按上述结构描述的较旧版本的数据,并使用带有--use_existing参数的CLI调用。

引用

如果您在科学工作中使用Thera-Py,请引用以下文章

Matthew Cannon,James Stevenson,Kori Kuzma,Susanna Kiwala,Jeremy L Warner,Obi L Griffith,Malachi Griffith,Alex H Wagner,使用Thera-Py对药物和治疗概念进行标准化,JAMIA Open,第6卷,第4期,2023年12月,ooad093,https://doi.org/10.1093/jamiaopen/ooad093

开发

克隆存储库并创建虚拟环境

git clone https://github.com/cancervariants/therapy-normalization
cd therapy-normalization
python3 -m virtualenv venv
source venv/bin/activate

安装开发依赖项和pre-commit

python3 -m pip install -e '.[dev,test]'
pre-commit install

使用ruff检查样式

python3 -m ruff format . && python3 -m ruff check --fix .

使用 pytest 运行测试

pipenv run pytest

默认情况下,测试将使用现有的 DynamoDB 数据库。对于无法使用该数据库的测试环境(例如在 CI 中),可以在执行测试之前设置 THERAPY_TEST 环境变量来初始化一个包含输入数据文件微型版本的本地 DynamoDB 实例。

export THERAPY_TEST=true

有时,源数据会更新,我们的测试固定和数据将变得不正确。《code>tests/scripts/ 子目录包含用于重建数据文件的脚本,尽管大多数固定值需要手动更新。

项目详情


下载文件

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

源分布

thera_py-0.6.0.tar.gz (615.2 kB 查看哈希值)

上传时间

构建分布

thera_py-0.6.0-py3-none-any.whl (66.4 kB 查看哈希值)

上传时间 Python 3

支持者:

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