orthonym.rules.ring_cation_hydro#

Note

Internal API. Names and behaviour may change between releases.

One numbering for a ring cation whose neutral ring is a hydro derivative of a mancude heteromonocycle (‘2-methyl-3,4,5,6-tetrahydropyrimidin-1-ium’).

rules.ions._emit_ring_cumulative_suffix names the neutral ring (its own numbering: hydro locants lowest, ‘2-methyl-1,4,5,6-tetrahydropyrimidine’) and cites the ‘-ium’ from the numbering of the charged ring (‘-1-ium’, or ‘-3-ium’ once the read-back has moved it): two numberings in one name. For a ring whose parent has no indicated hydrogen they disagree, and the name is either another species or withdrawn by the check of the default tier (“suffix/free valence [3] > [1]”).

The numbering is one authority here, the one that names the neutral hydro ring (heterocycles._mancude_hydro_select) with the ring atom of the ‘-ium’ as the suffix position.

“General rule for systematically naming cationic centers in parent hydrides”

(the Blue Book),:41368: a cation “derived formally by adding one or more hydrons to any position of a neutral parent hydride… or whose degree of hydrogenation has been modified (see

is named by replacing the final letter ‘e’ of the parent hydride name, if any, by the suffix

‘ium’”. The ‘-ium’ is a suffix of the name, so “NUMBERING” (:3219) ranks its locant by (c) “principal characteristic groups and free valences (suffixes)” (:3256), after (b) “indicated hydrogen for unsubstituted compounds” (:3246) and before (e) “(i) low locants are given to hydro/dehydro prefixes” (:3288-:3289) and (f) “detachable alphabetized prefixes, all considered together” (:3301). A hydro prefix is detachable but not alphabetized and stands directly before the parent hydride (e),:3288): ‘2,2-dimethyl-1,3-dioxo-2,3-dihydro-1H-isoindol-2-ium (PIN)’ ,:41447).

A zwitterion whose cationic ring atom and carboxylate share that ring (ectoine) is named by the same numbering with the anionic suffix added, hydro_ring_zwitterion_name. “Zwitterionic compounds with at least one ionic center on a characteristic group” (the Blue Book),:42447: “Zwitterionic compounds with at least one ionic center on a characteristic group may be named by adding the appropriate ionic suffix to the name of the ionic parent hydride. In names, cationic suffixes are cited before anionic suffixes. For assignment of lower locants, ionic centers on skeletal atoms of the parent hydride are preferred to the locants for positions of attachment of characteristic groups denoted by ionic suffixes”; the example is ‘1-methyl-4,6-diphenylpyridin-1-ium-2-carboxylate (PIN)’ (:42456). The ‘ium’ and the ‘carboxylate’ are suffixes of one name, so (c) numbers them together, the ‘ium’ first, before the hydro prefixes (e). A ring nitrogen that holds no hydron to remove (N+(CH3)=C) is the parent’s atom plus a hydron, then substituted above, example ‘1-methylpyridin-1-ium (PIN)’,:41394): its substituent is a prefix at the locant of the ‘ium’ (hydron_site_parent). The descriptors of a ring name that carries its own numbering are cited by the ring’s producer (ring_stereo_prefix).

The same ring cation as the cationic PREFIX of a zwitterion (‘pyridin-1-ium-1-yl’, is ring_cation_prefix.

orthonym.rules.ring_cation_hydro.hydro_ring_cation_name(mol, ring_mol, ring_system, center_idx)#

The name of the ring cation of mol centred on center_idx, in one numbering, or ‘’ when the ring is not a partially saturated mancude heteromonocycle of this kind.

ring_mol is mol with the centre neutralized, index-preserving (the neutral ring the ‘-ium’ is added to). The numbering is that of the hydro name of ring_mol with the centre as the suffix atom: heteroatoms, indicated hydrogen (b), the ‘-ium’ (c), the hydro prefixes (e), the substituent prefixes (f). Declines (‘’) for a ring that is aromatic, saturated, fused, of a size the hydro namer does not number, a centre that is a carbon or is itself the indicated- hydrogen position (the parent’s own 1H is then consumed by the ‘-ium’, which the caller’s rule treats), a second charge, a guanidine carbon (three nitrogen neighbours) or a substituent that cannot be named; the caller’s producer then stands, as it did before this module.

orthonym.rules.ring_cation_hydro.hydro_ring_zwitterion_name(mol, ring_system, cation_idx, anion_idx, anchor)#

The name of the zwitterion mol whose ring cation (cation_idx) and carboxylate (anion_idx, its carboxyl carbon on a ring atom, anchor = (carboxyl carbon, ring atom it hangs on): rules.ions._carboxyl_ring_anchor) share one partially saturated mancude heteromonocycle, in one numbering: ‘-<locant>-ium-<locant>-carboxylate’ after the hydro prefixes (‘2-methyl-3,4,5,6-tetrahydropyrimidin-1-ium-4-carboxylate’). A cation that holds no hydron (a quaternary ring nitrogen, N+(CH3)=C) is the neutral parent plus a hydron, then substituted (hydron_site_parent): ‘1,2-dimethyl-3,4,5,6-tetrahydropyrimidin-1-ium-4- carboxylate’. ‘’ where:func:hydro_ring_cation_name declines; the caller’s producer then stands.

orthonym.rules.ring_cation_hydro.ring_stereo_prefix(mol, locants)#

The front block of descriptors of the ring atoms in locants (atom index -> locant of the name’s numbering): ‘(2S,4R)-’, or ‘’ for a ring that has none. “NAMING OF STEREOISOMERS” (the Blue Book),:44643: “They are placed at the front of the complete name when related to the parent structure”. A quaternary ring nitrogen (‘[N@+]’, no hydrogen) is a stereocentre of the name and is cited: ‘(1R,2S)-1-ethyl-1-methylpyrrolidin-1-ium-2-carboxylate’ is read back to the input by OPSIN. None where the stereogenic ring nitrogen carries a hydrogen (a specified ‘[N@H+]’): OPSIN reads no descriptor there (‘(1R,2R)-1-methylazetidin-1-ium-2-carboxylate’ does not parse), so the stereo-aware read-back that every name faces could not confirm it, and the caller declines.

orthonym.rules.ring_cation_hydro.ring_numbering_tie_key(mol, tokens_at)#

The key that orders two numberings of one ring name that tie on every earlier tier of the numbering cascade (heteroatoms, the ‘ium’, the suffix, the set of substituent locants), as key(locants).

“NUMBERING” (the Blue Book): (g) “lowest locants for the substituent cited first as a prefix

in the name” (:3307; ‘1-methyl-4-nitronaphthalene (PIN)’), then (j) “When there is a choice for lower locants related to the presence of stereogenic centers or stereoisomers, the lower locant is assigned to CIP stereodescriptors Z, R, M, and r… that are preferred to E, S, P, and s” (:3346; ‘(2R,4S)-2,4- difluoropentane (PIN)’,:3383): the descriptors of the ring, then those inside the prefixes at the locant of their attachment. tokens_at returns {prefix token: [ring atom,...]} (None: a prefix cannot be named, the key is then empty and the caller declines). Two numberings equal under this key give the same string, so the canonical-rank tie-break after it decides no name.

orthonym.rules.ring_cation_hydro.ring_cation_locants(mol, ring_system, centers, numbered=None, to_mol=None, subst_atoms=None)#

ions._charged_ring_locants for a ring cation whose substituents ions._p74_ring_substituent_prefix cites, with ring_numbering_tie_key after the criteria it ranks: a numbering that the heteroatoms, the cation and the locants of the prefixes leave open is decided by (g) and (j), not by the order of the atoms of the input. numbered is a bare copy of the ring that is numbered instead of mol and to_mol[k] the atom of mol that is atom k of it (the numbering of emit_ring_poly_cation_ium).

orthonym.rules.ring_cation_hydro.neutralized_cation(mol, cation_idx)#

mol with the cation at cation_idx neutral, index-preserving: the neutral ring that the ‘-ium’ is added to: the cation is the neutral parent plus a hydron). None for a cation with no hydrogen to remove (a quaternary ring nitrogen) or one that does not sanitize. The hydron is not an indicated hydrogen of the parent: a numbering that reads the protonated ring atom as the ‘pyrrole-type’ NH of the parent cites ‘1H-imidazol-1-ium’.

orthonym.rules.ring_cation_hydro.hydron_site_parent(mol, ring_system, cation_idx)#

The neutral parent of a ring cation that holds no hydron to remove, index-preserving: the parent hydride plus a hydron, which a substituent then replaces, the Blue Book: “a cation derived formally by adding one or more hydrons to any position of a neutral parent hydride”; ‘1-methylpyridin-1-ium (PIN)’,:41394: the quaternary ring nitrogen is the parent’s atom plus a hydron, then substituted). For CC1=[N+](C)CCC(C(=O)[O-])N1 the parent is the ring with the ring nitrogen N=C and no substituent, 3,4,5,6-tetrahydropyrimidine, and the methyl on the ‘-ium’ atom is a prefix at the locant of the ‘-ium’. Only the cation with one exocyclic single bond and no hydrogen is read so (a ring nitrogen N+(R)=C); the substituent is cut from the parent, not deleted, so the atom indices stay those of mol, and it is cited from mol. None for any other cation, or one whose parent does not sanitize.

orthonym.rules.ring_cation_hydro.ring_cation_prefix(mol, cation_idx, attach_idx)#

The prefix of a ring nitrogen cation that is bonded to the rest of the molecule at the cationic centre itself, as the cationic part of a zwitterion: ‘pyridin-1-ium-1-yl’, ‘1H-pyrrol-1-ium-1-ylidene’, ‘1,2-thiazol-2-ium-2-yl’. ‘’ where it is not built (no simple monocycle, a hydro or fused parent, an exocyclic double bond or a charge elsewhere on the ring side, a substituent with no name).

** “Anionic and cationic centers on different parent structures”** (the Blue Book): zwitterions “may be named by prefixing the name of the cationic center or the parts of the structure containing the cationic centers to the name of the anionic parent structure”. ** “CATIONIC PREFIX NAMES”** (:42290), method (1), “Method (1) leads to preferred IUPAC names”: “all prefix names are formed by adding the suffixes ‘yl’, ‘ylidene’, etc. to the cation name”, ‘pyridin-1-ium-1-yl (preferred prefix)’, ‘the suffix ‘yl’ being senior to ‘ylidene’’. The cation is the parent hydride plus a hydron,:41366): the ring is numbered once (the heteroatoms, the ‘ium’ and its free valence at one atom, the prefixes of the ring in

order) by the numbering of ions._charged_ring_locants. attach_idx is the anionic atom the free

valence goes to; the bond to it decides ‘yl’ (single) or ‘ylidene’ (double).