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).