跳转到主要内容

HGVS解析器、格式化器、映射器、验证器

项目描述

重要: biocommons 包需要 Python 3.6+。 更多信息

hgvs 包提供了一个 Python 库,用于根据变异命名法(也称为人类基因组变异学会)的建议来解析、格式化、验证、归一化和映射序列变异。

具体来说,hgvs 包专注于 HGVS 建议的一个子集,该子集精确地描述了与高通量测序在临床诊断中应用相关的序列水平变异。该包不试图涵盖 HGVS 建议的全部范围。请参阅问题以了解限制。

信息

rtd changelog getting_help
GitHub license binder

最新版本

GitHub tag pypi_rel nightly test of ability to pip install, import, and parse a variant

开发(主分支)|

status_rel coveralls
issues GitHub Open Pull Requests GitHub license
GitHub stars GitHub forks

功能

  • 解析基于正式语法。

  • 一个易于使用的对象模型,表示大多数变异类型(SNVs、indels、dups、inverstions 等)和概念(内含子偏移量、不确定位置、区间)

  • 一个变异归一化器,将变异重写为规范形式,并用参考序列替换(如果参考序列和转录序列不同)

  • 格式化器,可以从内部表示生成 HGVS 字符串

  • 工具,用于在基因组、转录和蛋白质序列之间映射变异

  • 可靠地处理基因组-转录差异区域

  • 可插拔的数据提供程序支持转录映射数据的替代来源

  • 广泛的自动化测试,包括所有变异类型和“问题”转录本的测试

  • 使用远程数据源轻松安装。使用本地数据源安装简单且完全无需网络访问

重要注意事项

  • 鼓励您 浏览问题。所有已知问题都列在那里。请报告您发现的所有问题。

  • 使用 pip 包规范保持次要版本。 例如,hgvs>=1.5,<1.6hgvs 使用 语义版本控制

示例

安装

默认情况下,hgvs 使用远程数据源,这使得安装变得容易。

$ mkvirtualenv hgvs-test
(hgvs-test)$ pip install --upgrade setuptools
(hgvs-test)$ pip install hgvs
(hgvs-test)$ python

请参阅安装说明以获取详细信息,包括安装通用转录本存档(UTA)SeqRepo的说明。

配置

hgvs 将使用公开可用的数据源,除非通过环境变量指定其他方式,如下所示

# N.B. These are examples. The correct values will depend on your installation
$ export UTA_DB_URL=postgresql://anonymous:anonymous@localhost:5432/uta/uta_20210129
$ export HGVS_SEQREPO_DIR=/usr/local/share/seqrepo/latest

或者,如果您无法通过 UTA_DB_URL 环境变量传递 postgresql 密码(即生成身份验证令牌),则可以将 UTA_DB_URL 设置为 postgresql://<user>@<host>/<db>/<schema> 并设置 PGPASSWORD。例如

$ export UTA_DB_URL=postgresql://anonymous@localhost:5432/uta/uta_20210129 PGPASSWORD=anonymous

请参阅安装说明以获取详细信息。

解析和格式化

hgvs 将 HGVS 变异(作为字符串)解析到对象模型中,并可以将对象模型格式化为 HGVS 字符串。

>>> import hgvs.parser

# start with these variants as strings
>>> hgvs_g = 'NC_000007.13:g.36561662C>T'
>>> hgvs_c = 'NM_001637.3:c.1582G>A'

# parse the genomic variant into a Python structure
>>> hp = hgvs.parser.Parser()
>>> var_g = hp.parse_hgvs_variant(hgvs_g)
>>> var_g
SequenceVariant(ac=NC_000007.13, type=g, posedit=36561662C>T, gene=None)

# SequenceVariants are composed of structured objects, e.g.,
>>> var_g.posedit.pos.start
SimplePosition(base=36561662, uncertain=False)

# format by stringification
>>> str(var_g)
'NC_000007.13:g.36561662C>T'

在定位基因组转录本序列之间投射(映射)变异

hgvs 提供了在基因组、转录和蛋白质序列之间投射变异的工具。支持非编码和内含子变异。对齐数据来自通用转录本存档(UTA)

>>> import hgvs.dataproviders.uta
>>> import hgvs.assemblymapper

# initialize the mapper for GRCh37 with splign-based alignments
>>> hdp = hgvs.dataproviders.uta.connect()
>>> am = hgvs.assemblymapper.AssemblyMapper(hdp,
...          assembly_name='GRCh37', alt_aln_method='splign',
...          replace_reference=True)

# identify transcripts that overlap this genomic variant
>>> transcripts = am.relevant_transcripts(var_g)
>>> sorted(transcripts)
['NM_001177506.1', 'NM_001177507.1', 'NM_001637.3']

# map genomic variant to one of these transcripts
>>> var_c = am.g_to_c(var_g, 'NM_001637.3')
>>> var_c
SequenceVariant(ac=NM_001637.3, type=c, posedit=1582G>A, gene=None)
>>> str(var_c)
'NM_001637.3:c.1582G>A'

# CDS coordinates use BaseOffsetPosition to support intronic offsets
>>> var_c.posedit.pos.start
BaseOffsetPosition(base=1582, offset=0, datum=Datum.CDS_START, uncertain=False)

将编码变异转换为蛋白质序列

编码变异可以转换为它们的蛋白质后果。HGVS 使用与 NCBI 和 Ensembl 中看到的相同的转录本和蛋白质访问对。

# translate var_c to its protein consequence
# The object structure of protein variants is nearly identical to
# that of nucleic acid variants and is converted to a string form
# by stringification. Per HGVS recommendations, inferred consequences
# must have parentheses to indicate uncertainty.
>>> var_p = am.c_to_p(var_c)
>>> var_p
SequenceVariant(ac=NP_001628.1, type=p, posedit=(Gly528Arg), gene=None)
>>> str(var_p)
'NP_001628.1:p.(Gly528Arg)'

# setting uncertain to False removes the parentheses on the
# stringified form
>>> var_p.posedit.uncertain = False
>>> str(var_p)
'NP_001628.1:p.Gly528Arg'

# formatting can be customized, e.g., use 1 letter amino acids to
# format a specific variant
# (configuration may also be set globally)
>>> var_p.format(conf={"p_3_letter": False})
'NP_001628.1:p.G528R'

归一化变异

由于固有的生物学歧义(例如,在多聚 G 运行中插入一个 G)或由于对 HGVS 建议的误解,一些变异有多种表示形式。归一化将某些变异重写为单个表示形式。

# rewrite ins as dup (depends on sequence context)
>>> import hgvs.normalizer
>>> hn = hgvs.normalizer.Normalizer(hdp)
>>> hn.normalize(hp.parse_hgvs_variant('NM_001166478.1:c.35_36insT'))
SequenceVariant(ac=NM_001166478.1, type=c, posedit=35dup, gene=None)

# during mapping, variants are normalized (by default)
>>> c1 = hp.parse_hgvs_variant('NM_001166478.1:c.31del')
>>> c1
SequenceVariant(ac=NM_001166478.1, type=c, posedit=31del, gene=None)
>>> c1n = hn.normalize(c1)
>>> c1n
SequenceVariant(ac=NM_001166478.1, type=c, posedit=35del, gene=None)
>>> g = am.c_to_g(c1)
>>> g
SequenceVariant(ac=NC_000006.11, type=g, posedit=49917127del, gene=None)
>>> c2 = am.g_to_c(g, c1.ac)
>>> c2
SequenceVariant(ac=NM_001166478.1, type=c, posedit=35del, gene=None)

在文档中还有更多示例

引用 hgvs(该包)

hgvs:使用HGVS命名法操作序列变异的Python包:2018更新。
王M,凯勒伯格KM,达尔格林R,费多索夫A,福克斯N,弗里曼PJ,雅各布斯KB,凯莱塔P,麦克马瑞AJ,普里奇A,拉贾拉曼V,哈特RK
人类突变。2018 PubMed | 开放获取PDF
一个Python包,用于使用HGVS命名法解析、验证、映射和格式化序列变异。
哈特RK,里科R,哈雷E,加西亚J,韦斯特布鲁克J,富萨罗VA。
生物信息学。2014年9月30日。PubMed | 开放获取PDF

贡献

hgvs包旨在成为一个社区项目。请参阅贡献以开始提交源代码、测试或文档。感谢您的参与!

另请参阅

其他操作HGVS变异的包

项目详情


发布历史 发布通知 | RSS源

下载文件

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

源分布

hgvs-1.5.4.tar.gz (2.2 MB 查看散列)

上传时间

构建分布

hgvs-1.5.4-py2.py3-none-any.whl (107.3 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

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