tinyhgvs

tinyhgvs is a lightweight HGVS parsing Python library backed by a core parser and
structured data and error model implemented in Rust.
Installation
tinyhgvs can be installed directly from PyPI:
pip install tinyhgvs
Quick start
- A splicing-site substitution crossing an exon/intron boundary:
from tinyhgvs import parse_hgvs
variant = parse_hgvs("NM_004006.2:c.357+1G>A")
print(variant.reference.primary.id)
print(variant.coordinate_system.value)
print(variant.description.location.start.coordinate)
print(variant.description.location.start.offset)
- An exact repeat is parsed into a structured repeat edit:
from tinyhgvs import parse_hgvs
variant = parse_hgvs("NC_000014.8:g.123CAG[23]")
print(variant.description.location.start.coordinate)
print(variant.description.edit.blocks[0].unit)
print(variant.description.edit.blocks[0].count)
- A protein frameshift variant:
from tinyhgvs import parse_hgvs
variant = parse_hgvs("NP_0123456.1:p.Arg97ProfsTer23")
print(variant.description.effect.edit.to_residue)
print(variant.description.effect.edit.stop.ordinal)
- Known but unsupported HGVS syntax raises
TinyHGVSError with a diagnostic code:
from tinyhgvs import TinyHGVSError, parse_hgvs
try:
parse_hgvs("NP_003997.1:p.Val7=/del")
except TinyHGVSError as error:
print(error.code)
Documentation
Please refer to official documents for details about both Python and Rust APIs:
Citation
If you use tinyhgvs in your project, please kindly cite the github repository.
License
tinyhgvs is licensed under the MIT license.