HGVS解析器、格式化器、映射器、验证器
项目描述
重要: biocommons 包需要 Python 3.6+。 更多信息
hgvs 包提供了一个 Python 库,用于根据变异命名法(也称为人类基因组变异学会)的建议来解析、格式化、验证、归一化和映射序列变异。
具体来说,hgvs 包专注于 HGVS 建议的一个子集,该子集精确地描述了与高通量测序在临床诊断中应用相关的序列水平变异。该包不试图涵盖 HGVS 建议的全部范围。请参阅问题以了解限制。
信息 |
|
最新版本 |
|
开发(主分支)| |
功能
解析基于正式语法。
一个易于使用的对象模型,表示大多数变异类型(SNVs、indels、dups、inverstions 等)和概念(内含子偏移量、不确定位置、区间)
一个变异归一化器,将变异重写为规范形式,并用参考序列替换(如果参考序列和转录序列不同)
格式化器,可以从内部表示生成 HGVS 字符串
工具,用于在基因组、转录和蛋白质序列之间映射变异
可靠地处理基因组-转录差异区域
可插拔的数据提供程序支持转录映射数据的替代来源
广泛的自动化测试,包括所有变异类型和“问题”转录本的测试
使用远程数据源轻松安装。使用本地数据源安装简单且完全无需网络访问
重要注意事项
示例
安装
默认情况下,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变异的包
项目详情
下载文件
下载适用于您平台的电影。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
hgvs-1.5.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 06abb6363bb0c8ef9f3f8f9dc333d3a346ab5f9ebcb20a5bb56c69256262559f |
|
MD5 | 9e5fb1a56334792abae168ec5352aac2 |
|
BLAKE2b-256 | f93515d86f2e862a697626fdfc7c91d6ccf862bdbb7a7c595b428bf9dddb6c3c |
hgvs-1.5.4-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 598640bae0de34ff29c58440904fc9156d7a1bc750ddef5894edd415c772b957 |
|
MD5 | 16cdaa06110fcd3f0d9bc73943906e3f |
|
BLAKE2b-256 | c8b78950a1ce90093f2f1342cb745d50028553a587f6d0973e1e7a97e364b348 |