orthonym.rules.nucleosides#
Note
Internal API. Names and behaviour may change between releases.
Nucleoside / nucleotide decoration engine (Blue Book /.
a phase. Bare nucleosides (adenosine, guanosine, inosine, xanthosine,
cytidine, thymidine, uridine + the 2’-deoxy series) are named by exact-SMILES
retained-name lookup (data/retained_names.py). This module handles the
decorated species that those exact keys cannot reach:
nucleoside 5’-phosphates / di- / tri-phosphates —
adenosine 5'-(tetrahydrogen triphosphate)(ATP),adenosine 5'-(trihydrogen diphosphate)(ADP),2'-deoxyadenosine 5'-(dihydrogen phosphate)(dAMP); /.2)O-acyl esters on the sugar —
adenosine 2',3',5'-triacetate.
The engine is strip-and-recognise: it perceives the nucleoside core (a furanose N-glycosidically bonded to a nucleobase), strips the recognised sugar decorations back to the free hydroxyls, canonicalises the bare nucleoside and looks it up in the retained-name catalog. Anything it cannot account for — a modified base, a phosphate at a non-5’ ring position it cannot number, a cyclic phosphate, a mixed decoration set it has no grammar for — makes it return ``None`` (fail-closed), so the molecule falls through to the general pipeline (and, ultimately, the self-consistency gate).
Validation is OPSIN round-trip: every name this module emits parses back to the
input skeleton (verified in tests/unit/rules/test_phase14_nucleosides.py).
- orthonym.rules.nucleosides.name_nucleoside(mol)#
Name a decorated nucleoside / nucleotide, or return
None(fail-closed).