跳转到主要内容

变异的VICC归一化例程

项目描述

变异归一化

image image image Actions statusDOI

变异正常化器可以将基因组变异的文本描述解析并翻译成符合变异表示规范(VRS)的可计算对象,从而实现基因组知识资源多样性中的变异和谐化,保证一致性和准确性。


实时OpenAPI端点


安装

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数据库。

以下命令可能需要根据安装环境进行修改。

  1. 安装PostgreSQL

  2. 创建用户和数据库。

    createuser -U postgres uta_admin
    createuser -U postgres anonymous
    createdb -U postgres -O uta_admin uta
    
  3. 要本地安装,从变异/数据目录开始

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/

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源分布

variation_normalizer-0.10.0.tar.gz (121.1 kB 查看哈希值)

上传时间

构建分布

variation_normalizer-0.10.0-py3-none-any.whl (153.9 kB 查看哈希值)

上传时间 Python 3

支持者: