变异的VICC归一化例程
项目描述
变异归一化
变异正常化器可以将基因组变异的文本描述解析并翻译成符合变异表示规范(VRS)的可计算对象,从而实现基因组知识资源多样性中的变异和谐化,保证一致性和准确性。
安装
从PyPI安装
python3 -m pip install variation-normalizer
规范化
变异规范化通过以下四个主要步骤工作:分词、分类、验证和翻译。在分词过程中,我们将字符串根据空白分隔并解析以确定标记的类型。在分类过程中,我们指定分类可以有的标记顺序。然后进行验证检查,例如确保核苷酸或氨基酸的参考与预期值匹配,并验证给定转录本上是否存在位置。在翻译过程中,我们返回一个VRS等位基因对象。
变异规范化限于以下类型的变异
- HGVS表达式和文本表示(例如:
BRAF V600E
)- 蛋白质(p.):替换、删除、插入、删除-插入
- 编码DNA(c.):替换、删除、插入、删除-插入
- 基因组(g.):替换、删除、模糊删除、插入、删除-插入、重复
- gnomAD风格的VCF(chr-pos-ref-alt,例如:
7-140753336-A-T
)- 基因组(g.):替换、删除、插入
变异正常化器接受来自GRCh37或GRCh8组装的输入。
我们正在努力添加更多类型的变异、坐标和表示。
VRS版本控制
变异正常化仓库依赖于VRS模型,因此PyPI上的每个变异正常化器包都使用VRS的特定版本。包之间的对应关系可以总结如下
变异正常化分支 | 变异正常化器版本 | 基因正常化器版本 | VRS版本 |
---|---|---|---|
主要 | 0.6.X | 0.1.X | 1.X.X |
预发布 | >=0.8.X | >=0.3.X | 2.0-alpha |
可用端点
/to_vrs
返回一个验证后的VRS 变异列表。
/normalize
返回一个与优先转录本对齐的VRS变异。变异正常化器依赖于Common Operations On Lots-of Sequences Tool (cool-seq-tool)检索优先转录本数据。有关转录本选择算法的更多信息,请参阅此处。
如果基因组变异查询提供了基因(例如:BRAF g.140753336A>T
),将返回相关的cDNA表示。这是因为基因提供了额外的链上下文。如果没有提供基因的基因组变异查询,将返回GRCh38表示。
开发
克隆仓库
git clone https://github.com/cancervariants/variation-normalization.git
cd variation-normalization
对于开发安装,我们建议使用Pipenv。有关在您的计算环境中安装pipenv的说明,请参阅pipenv文档。
安装完成后,从项目根目录运行
pipenv shell
pipenv update && pipenv install --dev
所需资源
变异规范化依赖于一些本地数据缓存,您需要设置这些缓存。它使用pipenv管理其环境,您也需要安装它。
基因正常化器
变异规范化依赖于来自基因正常化的数据。您必须加载所有来源和合并的概念。
您还必须在另一个终端中运行Gene Normalization的DynamoDB,以便应用程序能够工作。
有关基因正常化器以及如何加载数据库的更多信息,请访问README。
SeqRepo
变异规范化依赖于seqrepo,您必须自行下载。
变异正常化器使用seqrepo在转录本上给定位置检索序列。
从根目录开始
pip install seqrepo
sudo mkdir /usr/local/share/seqrepo
sudo chown $USER /usr/local/share/seqrepo
seqrepo pull -i 2024-02-20/ # Replace with latest version using `seqrepo list-remote-instances` if outdated
如果您遇到以下类似错误
PermissionError: [Error 13] Permission denied: '/usr/local/share/seqrepo/2024-02-20/._fkuefgd' -> '/usr/local/share/seqrepo/2024-02-20/'
您需要执行以下操作
(可能不是 ._fkuefgd,请替换为您的错误消息路径)
sudo mv /usr/local/share/seqrepo/2024-02-20._fkuefgd /usr/local/share/seqrepo/2024-02-20
exit
使用环境变量SEQREPO_ROOT_DIR
来设置已存在的SeqRepo目录的路径。默认为/usr/local/share/seqrepo/latest
。
UTA
变异归一化器还使用Common Operations On Lots-of Sequences Tool (cool-seq-tool),它使用UTA作为底层的PostgreSQL数据库。
以下命令可能需要根据安装环境进行修改。
-
创建用户和数据库。
createuser -U postgres uta_admin createuser -U postgres anonymous createdb -U postgres -O uta_admin uta
-
要本地安装,从变异/数据目录开始
export UTA_VERSION=uta_20210129.pgd.gz
curl -O http://dl.biocommons.org/uta/$UTA_VERSION
gzip -cdq ${UTA_VERSION} | grep -v "^REFRESH MATERIALIZED VIEW" | psql -h localhost -U uta_admin --echo-errors --single-transaction -v ON_ERROR_STOP=1 -d uta -p 5433
UTA安装问题
如果您在安装UTA时遇到问题,可以访问这两个README。
连接到UTA数据库
要连接到UTA数据库,您可以使用默认URL(postgresql://uta_admin@localhost:5433/uta/uta_20210129
)。如果您不想使用默认设置,您必须设置环境变量UTA_DB_URL
,其格式为driver://user:pass@host:port/database/schema
。
本地启动变异归一化服务
gene-normalizer
的dynamodb和uta
数据库必须运行。
要启动服务,请运行以下命令
uvicorn variation.main:app --reload
接下来,在您的本地机器上查看OpenAPI文档:http://127.0.0.1:8000/variation
代码质量保证
代码风格由Ruff管理,并在提交前进行检查。
要执行格式化和检查风格
python3 -m ruff format . && python3 -m ruff check --fix .
我们使用pre-commit运行符合性测试。
这确保了
- 风格正确性
- 没有大文件
- AWS凭证存在
- 私钥存在
在您的第一次提交之前必须安装pre-commit。使用以下命令
pre-commit install
测试
从存储库的根目录
pytest tests/
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
Hashes for variation_normalizer-0.10.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 111ef9f5c1f6ea048455183c6941796ba1ce30772df6336f16f2698be379818f |
|
MD5 | 9353be52ff3eff2cef8e2b1abed37381 |
|
BLAKE2b-256 | 7e276dfd6cd4f6c4af9c7bd7d0fde9e179468a11c475617da9c1ab665e1614d9 |