治疗药物用的VICC规范化程序
项目描述
Thera-Py
Thera-Py
将药物和其他生物医学治疗药物的文本名称和参考规范化为稳定、无歧义的概念标识符,以支持基因组知识协调。
安装
从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目前从以下源聚合治疗数据:
- ChEMBL
- ChemIDPlus
- DrugBank(仅使用CC0数据)
- Drugs@FDA
- IUPHAR/BPS药理学指南
- HemOnc.org(仅使用CC-BY数据)。
- 国家癌症研究所术语表
- RxNorm
- Wikidata
要更新源,只需将--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文档
常见问题解答
数据导入方法引发了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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 52ab9892e50dedefe7315c9a4d00d6134a340d9486debd2aac30a438a1d21f89 |
|
MD5 | 1a2b9c48deaa4e81ca37c3d09d6d084d |
|
BLAKE2b-256 | 0aa0caa02295397fd1cf6fe15742971fa3071484c05eb22627276bf06a845cff |
thera_py-0.6.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a18ab261b1410944664b23b4af4863cddf6e7085a91075bdd2039577c8bc1c6 |
|
MD5 | 2828f4c5875e983a8dc7e74cc03dcef3 |
|
BLAKE2b-256 | 9b9bed4fe0160d789cedcb9a05c11a876d796ce573cd4972d0c3e5134bb0ebe0 |