Skip to content

Repeat Models

Quantity module-attribute

Tagged union for supported repeat quantity models:

RepeatUnit module-attribute

RepeatUnit: TypeAlias = KnownRepeatUnit | UnknownRepeatUnit

Tagged union for supported repeat unit models:

KnownQuantity dataclass

KnownQuantity(count: int)

Known repeat quantity.

Examples:

>>> from tinyhgvs import KnownQuantity, parse_hgvs
>>> variant = parse_hgvs("NC_000014.8:g.123CAG[23]")
>>> quantity = variant.description.sequence[0].quantity
>>> isinstance(quantity, KnownQuantity)
True
>>> quantity.count
23

UncertainQuantity dataclass

UncertainQuantity(lo: int | None, hi: int | None)

Uncertain repeat quantity range.

Examples:

>>> from tinyhgvs import UncertainQuantity, parse_hgvs
>>> variant = parse_hgvs("NC_000003.12:g.63912687AGC[(19_23)]")
>>> quantity = variant.description.sequence[0].quantity
>>> isinstance(quantity, UncertainQuantity)
True
>>> quantity.lo, quantity.hi
(19, 23)

UnknownQuantity dataclass

UnknownQuantity()

Unknown repeat quantity written as [?].

Examples:

>>> from tinyhgvs import UnknownQuantity, parse_hgvs
>>> variant = parse_hgvs("NC_000003.12:g.63912687AGC[?]")
>>> quantity = variant.description.sequence[0].quantity
>>> isinstance(quantity, UnknownQuantity)
True

KnownRepeatUnit dataclass

KnownRepeatUnit(value: str)

Known repeated sequence unit.

Examples:

>>> from tinyhgvs import KnownRepeatUnit, parse_hgvs
>>> variant = parse_hgvs("NC_000014.8:g.123CAG[23]")
>>> unit = variant.description.sequence[0].unit
>>> isinstance(unit, KnownRepeatUnit)
True
>>> unit.value
'CAG'

UnknownRepeatUnit dataclass

UnknownRepeatUnit()

Unknown repeated sequence unit.

Examples:

>>> from tinyhgvs import UnknownRepeatUnit, parse_hgvs
>>> variant = parse_hgvs("NC_000023.10:g.32717298_32717299insN[100]")
>>> unit = variant.description.sequence[0].unit
>>> isinstance(unit, UnknownRepeatUnit)
True

Repeat dataclass

Repeat(unit: RepeatUnit | None, quantity: Quantity)

Repeat unit and quantity used by nucleotide and protein repeat syntax.

A repeat unit can be known, unknown, or omitted when the unit is implied by the surrounding location.

Examples:

A literal nucleotide repeat unit:

>>> from tinyhgvs import parse_hgvs
>>> variant = parse_hgvs("NC_000014.8:g.123CAG[23]")
>>> repeat = variant.description.sequence[0]
>>> repeat.unit.value
'CAG'
>>> repeat.quantity.count
23
>>> repeat.is_unit_known
True

A repeat count can be unknown:

>>> variant = parse_hgvs("NC_000003.12:g.63912687AGC[?]")
>>> repeat = variant.description.sequence[0]
>>> repeat.is_quantity_unknown
True

A repeat count can be uncertain:

>>> variant = parse_hgvs("NC_000003.12:g.63912687AGC[(19_23)]")
>>> repeat = variant.description.sequence[0]
>>> repeat.is_quantity_uncertain
True

Protein repeats use the same repeat model:

>>> variant = parse_hgvs("NP_0123456.1:p.Arg65_Ser67[12]")
>>> variant.description.edit.repeat.quantity.count
12