orthonym.rules.bridged_fused_pin.hydro#

Note

Internal API. Names and behaviour may change between releases.

Hydrogenation state of a bridged fused ring system: mancude parent, indicated hydrogen, hydro prefixes.

(the Blue Book): “The maximum number of noncumulative double bonds is

assigned to the fused ring system after the insertion of the bridge.” (:14583): “In bridged fused systems, the distribution of noncumulative double bonds in the parent fused ring system is accomplished after allowance has been made for the bonds existing between the bridge(s) and the fused ring system.” So the mancude parent is a maximum matching over the parent atoms that keep a free valence after the bridge bonds (a fusion atom that carries a bridge has four ring bonds and no double bond, as 4a and 8a of 4a,8a-ethanonaphthalene); the atoms the matching leaves out carry indicated hydrogen, “cited in front of the completed bridged fused ring name” (:14245;:14642 “All indicated hydrogen atoms are indicated at the front of the complete name”).

(:16880): hydro prefixes come in pairs, “Indicated hydrogen atoms have priority

over ‘hydro’ prefixes for low locants. If indicated hydrogen atoms are present in a name, the ‘hydro’ prefixes precede them.” (:17026): “Total hydrogenation is indicated by the appropriate multiplicative prefixes indicating the total number of hydrogen atoms attached, but locants are omitted”.

Suffixes that need hydrogen the mancude parent does not have (slice S3, accommodate):

(:24766) “Indicated hydrogen is cited at any position of a ring system in order

to accommodate principal characteristic groups or free valences expressed as suffixes, provided that there are an equal or greater number of indicated hydrogen atoms available”;

(:24768), (:24794), (:24806) (1)-(4); the groups

left over take ‘added indicated hydrogen’:24693, lowest locants:24695), except a pair that “simply removes a double bond (directly or after rearrangement of double bonds)”:24721).

orthonym.rules.bridged_fused_pin.hydro.MAX_INDICATED_H = 3#

‘5,6-dihydro-1H,3H,4H-3a,6a- methanocyclopenta[c]furan-1,3-dione (PIN)’, the Blue Book)

Type:

at most this many indicated-hydrogen positions (three

class orthonym.rules.bridged_fused_pin.hydro.HydroState(eligible: FrozenSet[int], saturated: FrozenSet[int], n_double: int, mancude_double: int, ih_sets: Tuple[FrozenSet[int], ...], adj: Dict[int, FrozenSet[int]] = <factory>, free: Dict[int, int] = <factory>, fusion: FrozenSet[int] = <factory>)#

Bases: object

eligible: FrozenSet[int]#
saturated: FrozenSet[int]#
n_double: int#
mancude_double: int#
ih_sets: Tuple[FrozenSet[int], ...]#
adj: Dict[int, FrozenSet[int]]#
free: Dict[int, int]#
fusion: FrozenSet[int]#
orthonym.rules.bridged_fused_pin.hydro.hydro_state(mol, split)#
orthonym.rules.bridged_fused_pin.hydro.choose_indicated_hydrogen(state, atom_to_locant)#

(indicated-hydrogen atoms, hydro atoms) under this numbering. (the Blue Book): indicated hydrogen is cited “if posible, at the lowest nonfusion peripheral atom”, also when hydro prefixes are present (:24685 ‘3a,5-dihydro-4H-indene (PIN) (not 4,5-dihydro-3aH-indene)’); among the allowed sets, the fewest fusion atoms, then the lowest locants:16880).

orthonym.rules.bridged_fused_pin.hydro.MAX_ADDED_H = 4#

at most this many ‘added indicated hydrogen’ atoms (the book’s largest is three, ‘…-1,5,11,28,29(4H,6H,31H)-pentone (PIN)’, the Blue Book)

orthonym.rules.bridged_fused_pin.hydro.lacks_hydrogen(state, atom, n_h)#

True when parent atom atom has fewer than n_h hydrogen atoms in the mancude parent unless it carries indicated hydrogen: an eligible atom keeps one double bond there, so it has (free valence - 1) hydrogen atoms. (:28386-:28388): a ketone needs a >CH2 group, “Compounds not having suitably located indicated hydrogen atoms or composed only of =CH- groups, must be hydrogenated”; a monovalent suffix or free valence needs one hydrogen atom (b):3246 ‘1H-phenalen-4-ol (PIN)’: none is needed on a =CH- atom;:24717 ‘1,3,4,5-tetrahydronaphthalene-4a(2H)-carboxylic acid (PIN)’: a fusion atom has none). A bridge atom is not a parent atom (a saturated bridge carbon is a >CH2 group, slice S1.8b).

orthonym.rules.bridged_fused_pin.hydro.accommodate(state, atom_to_locant, need)#

(indicated-hydrogen atoms, added-hydrogen atoms, hydro atoms) under this numbering, for suffix atoms need that lack hydrogen in the mancude parent (lacks_hydrogen), or None. (:24768): with enough indicated hydrogen atoms they “are placed at peripheral atoms that will accommodate these principal characteristic groups” (‘1,2,3,7, 8,8a-hexahydro-4H-3a,7-methanoazulene-4,9-dione (PIN)’:24792); (:24794) the others go “to the lowest nonfusion peripheral atom” (‘5,6-dihydro-1H,3H,4H-3a,6a- methanocyclopenta[c]furan-1,3-dione (PIN)’:24800). When they cannot accommodate every group, (:24806) and (:24841): “(1) at least one of the indicated hydrogen atoms is assigned to a nonfusion peripheral atom having the lowest locants consistent with the mancude system”, “(2) other indicated hydrogen atoms are assigned to other positions that accommodate characteristic groups”, “(3)… ‘added indicated hydrogen atoms’”, “(4) indicated hydrogen atoms that cannot be used to accommodate… has seniority over ‘added indicated hydrogen’ for lower locants” (‘1H-cyclopenta[a]- naphthalene-1,2(3H)-dione (PIN) (not 3H-cyclopenta[a]naphthalene-1,2-dione)’:24822, ‘hexahydro-1H-isoindole-1,3(2H)-dione (PIN)’:33849).

orthonym.rules.bridged_fused_pin.hydro.hydro_text(state, hydro_atoms, atom_to_locant, ih=frozenset({}), need=frozenset({}))#

‘’ (mancude), ‘1,2,3,4-tetrahydro’, or ‘decahydro’ for total hydrogenation. Total hydrogenation keeps its locants when the indicated hydrogen atoms accommodate suffix groups and one of them accommodates none: the book prints ‘5,6-dihydro- 1H,3H,4H-3a,6a-methanocyclopenta[c]furan-1,3-dione (PIN)’ (:24800) but ‘hexahydro-1H- isoindole-1,3(2H)-dione (PIN)’ (:33849), ‘tetrahydro-4,8-ethanopyrano[4,3-c]pyran-1,3,5,7- tetrone (PIN)’ (:32535), ‘hexadecahydro-1H-8,12-methanobenzo[13]annulene (PIN)’ (:23875).

orthonym.rules.bridged_fused_pin.hydro.ih_text(ih_atoms, atom_to_locant)#

‘’ or ‘1H’ or ‘2H,7H’; also the ‘added indicated hydrogen’ list (‘2H’, ‘1H,5H’).