orthonym.rules.inositols#
Note
Internal API. Names and behaviour may change between releases.
Inositol (cyclitol) retained names —.
a phase follow-on (Blue Book audit unit p104-106, finding F1).
The nine stereoisomers of cyclohexane-1,2,3,4,5,6-hexol each have a retained
italic-prefix name (myo-, scyllo-, cis-, epi-, neo-,
allo-, muco-, D-chiro-, L-chiro-) that is the PREFERRED IUPAC
name.
These names are OPSIN-unparseable (verified: OpsinOracle.name_to_smiles
returns None for every <prefix>-inositol), so there is NO round-trip
oracle for them — this is a NAME-EXACT recogniser (the oracle-blind / name-exact
validation tier).
Correctness is grounded two ways so the absence of an RT oracle is not a hole:
Structures are RDKit-enumerated —
EnumerateStereoisomerson the flat hexol yields EXACTLY nine distinct stereoisomers (the nine inositols), so the table is provably complete and every key is a real, canonical structure.InChIKey -> name labels are cross-verified against authoritative sources: NIST WebBook (myo / scyllo / muco / epi / allo / chiro by InChIKey search), Wikidata + the chemical literature for the D/L-chiro assignment, cis / neo (the two highest-symmetry meso isomers: cis is all-cis, the only all-carbons- equivalent isomer besides all-trans scyllo). myo-inositol’s key
an InChIKeymatches NIST CAS 87-89-8.
Fail-closed: name_inositol returns None for anything that is not
EXACTLY one of the nine fully-stereodefined cyclohexanehexols. An undefined- or
partial-stereo hexol (flat InChIKey an InChIKey) is not in
the table, so it keeps the systematic cyclohexane-1,2,3,4,5,6-hexol name; a
substituted/deoxy/larger ring never reaches the table.
- orthonym.rules.inositols.is_inositol_skeleton(mol)#
True iff
molis exactly cyclohexane-1,2,3,4,5,6-hexol.Requires: C6H12O6 with a SINGLE all-carbon six-membered ring, each ring carbon bearing exactly one hydroxyl (a degree-1 O with one H) and one H, and no other heavy atoms. This hard gate keeps the InChIKey lookup off every non-cyclitol molecule and fail-closes on deoxy / O-substituted / phosphate / larger-ring relatives.
- orthonym.rules.inositols.name_inositol(mol)#
Return the retained inositol PIN for a fully-stereodefined cyclohexanehexol matching one of the seven deterministically-perceived meso inositols, else
None.Fail-closed: a non-cyclitol, the chiral chiro pair (see
is_chiral_inositol), or a cyclohexanehexol whose stereochemistry is undefined/partial (standard InChIKey carries no stereo layer) is not in the table and returnsNone(the undefined-stereo hexol then keeps its systematic name).
- orthonym.rules.inositols.is_chiral_inositol(mol)#
True iff
molis a fully-stereodefined cyclohexanehexol that is NOT one of the seven catalogued meso inositols — i.e. the chiral D-/L-chiro-inositol pair.RDKit perceives this pseudo-C2-symmetric CHIRAL pair NON-DETERMINISTICALLY: the standard InChIKey flips D<->L by SMILES atom order (verified), so the molecule cannot be named (or systematically CIP-labelled) reproducibly. Naming must therefore REFUSE it (a deterministic ‘unknown’) rather than ship a flipping wrong-enantiomer name. The test is order-stable even though the InChIKey is not:
is_inositol_skeletonis stereo-independent, and “has a stereo layer but is not a catalogued meso inositol” is true for BOTH chiro enantiomers regardless of which way RDKit flipped this evaluation.The flat / undefined-stereo hexol (InChIKey stereo block
UHFFFAOYSA) is NOT a chiral inositol and returnsFalseso it keeps the systematic name.