orthonym.validation.phane_read_back#

Note

Internal API. Names and behaviour may change between releases.

A phane name read back by building the structure it states, apart from the producer.

OPSIN 2.9.0 has no phane grammar at all (neither ‘1,4(1,4)-dibenzenacyclohexaphane’ nor the bracket form ‘[2.2]paracyclophane’ parses), so a phane name has no read-back and used to ship on its construction alone (the phane grammar-gap carve-out). 40 of the 66 names the default tier gave a sample of PubChem cyclophanes were the name of another molecule: the producer named a bridge that holds a double or a triple bond as if it were saturated (the CO audit, 2026-10-17).

This module reads a name of the class the producer builds, the monocycle of benzene amplificants and bridge atoms of with the endings of, as the structure it states and compares that structure with the input by the FULL InChIKey. It shares no code with rules.phane: the name is parsed here (its own numeral words, its own reading of the locants and of the endings), the atoms and bonds are built here, and what is compared is the key of the built molecule against the key of the input.

  • (the Blue Book): the simplified skeleton has one node per superatom (an amplificant) and one per bridge atom, named ‘cyclo’ + the multiplying affix of the number of nodes + ‘phane’.

*, (:14935,:14939): the superatom locants come first, the attachment locants of each

amplificant in parentheses, ‘dibenzena’ is two benzene amplificants; identical attachment locants are cited once,:14947). The first attachment locant is the one adjacent to the lower skeleton locant,:14957); a benzene ring is symmetric, so the structure does not depend on which of the two bridge neighbours it faces.

  • (:16793): ‘ene’ and ‘yne’ replace the final ‘e’ of ‘phane’; (:16489) the locant is the lower one of the two consecutive primary locants of the multiple bond (bridge atoms are the only ones with a multiple bond here), ‘ene’ before ‘yne’, the ‘e’ of ‘ene’ dropped before ‘yne’; the ‘e’ of ‘phane’ dropped before a vowel only, ‘phan-2-ene’, ‘phane-2,5-diene’.

  • (:49686): “for up to seven nodes, no descriptor is necessary. When more than seven nodes are present, all descriptors are must be cited”: up to seven nodes an uncited double bond is the cis one the ring allows, so it is read as ‘Z’ or as open, and an input that defines it ‘E’ does not read.

The check proves the structure and never the spelling: the producer owns the spelling, and a name this module cannot read (any other amplificant, a substituent, a heteroatom bridge) is not read back.

orthonym.validation.phane_read_back.PHANE_READ_BACK_RULE = 'phane_build'#

the rule id of the read-back outcome

orthonym.validation.phane_read_back.phane_name_shape(name)#

Whether name has the shape of a simplified-skeletal phane name: superatom locants, attachment locants in parentheses, an amplification prefix, ‘phane’ or its ‘ene’/’yne’ ending, and optionally the stereodescriptors in front. It is the shape the validity gate sends to the read-back.

orthonym.validation.phane_read_back.phane_read_back(name, smiles)#

True when the structure name states has the FULL InChIKey of smiles.

A double bond that a name of up to seven nodes does not cite is read as open and as ‘Z’, each of the double bonds on its own: the name states the cis configuration the ring allows, and an input that leaves the bond open is no other molecule than the one the name has named. A name of more than seven nodes cites every double bond it states, and a double bond it does not cite is open.