iscn-authenticator
ISCN 2024 karyotype validation — parser, rule engine, and AST types. Pure Python, zero runtime dependencies, supports Python 3.10–3.13.
Validates karyotype strings against the 2024 International System for Human Cytogenomic Nomenclature (ISCN) and returns a structured AST alongside any rule violations.
Install
pip install iscn-authenticator
Quick start
from iscn_authenticator import is_valid_karyotype, validate_karyotype
is_valid_karyotype("46,XX") # True
is_valid_karyotype("47,XY,+21") # True
is_valid_karyotype("46,XX,t(9;22)(q34;q11.2)") # True
is_valid_karyotype("47,XY,+21[8]/46,XY[12]") # True (mosaic)
is_valid_karyotype("garbage") # False
result = validate_karyotype("46,XX,del(5)(q13q33)")
# result.valid -> True
# result.errors -> []
# result.parsed -> KaryotypeAST(...)
API surface
validate_karyotype(s: str) -> ValidationResult— full validation, returns{valid, errors, parsed}.is_valid_karyotype(s: str) -> bool— boolean convenience wrapper.KaryotypeAST,Abnormality,Breakpoint,CellLine— dataclasses describing the parsed structure.ParseError— raised by the parser on malformed syntax;validate_karyotypecatches it and surfaces it througherrors.
Supported nomenclature
ISCN 2024 grammar covered:
- Numerical aberrations:
+21,-X, ... - Structural rearrangements:
del,dup,inv,t(translocation),ins(insertion). - Specialized rearrangements:
i(isochromosome),idic(isodicentric),der(derivative),dic(dicentric),r(ring),rob(Robertsonian),trp(triplication). - Marker chromosomes:
mar. - Uncertainty (
?), inheritance suffixes (mat,pat,dn), mosaicism (cell lines split on/).
ISCN 2024 reference
Implementation tracks the 2024 edition of the International System for Human Cytogenomic Nomenclature. See the ISCN publication.
Cross-implementation parity
A TypeScript port (@iscn/core) lives in the iscn-authenticator monorepo under packages/core/, and consumes the same fixture corpus shipped in this repo at fixtures/validity.json. Parity is enforced via CI in both repos.
Contributing
git clone https://github.com/nuin/iscn-authenticator-py.git
cd iscn-authenticator-py
pip install pre-commit ruff
pre-commit install
python3 -m unittest discover tests
License
MIT — see LICENSE.
Metadata
Release files for iscn-authenticator 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| iscn_authenticator-0.2.1.tar.gz | 27.0 kB | With provenance | Details for iscn_authenticator-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| iscn_authenticator-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for iscn_authenticator-0.2.1-py3-none-any.whl |
Total release size: 46.5 kB
Release files / iscn_authenticator-0.2.1.tar.gz
| Download URL | iscn_authenticator-0.2.1.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
604c2a8182fc1b32787cc19e68db352a9eea8f29f6a762c9d13df2aca7952142
|
|
BLAKE2b-256 checksum How to use checksums |
824fc874937d5ac58e66b33824b97398e6316bf98c9e46eb37c2c30a7924241b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 2, 2026.
Transparency logRelease files / iscn_authenticator-0.2.1-py3-none-any.whl
| Download URL | iscn_authenticator-0.2.1-py3-none-any.whl |
|---|---|
| Size | 19.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a09039427dbce4c3f6319913a3627814b80778c1c085e155d43ae4f20372473
|
|
BLAKE2b-256 checksum How to use checksums |
20def7c23d5d36eb4ec7356d3c58f31143c14824e965992ebf315effc4b9cf00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 2, 2026.
Transparency logSecurity for iscn-authenticator 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for iscn_authenticator-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.