orthonym.validation.spelling.checks_assembly#

Note

Internal API. Names and behaviour may change between releases.

Spelling check: a molecule that holds a ring assembly is named as one (registered with orthonym.validation.pin_spelling.register()).

### **** DEFINITIONS (the Blue Book),:15542: “Two or more cyclic systems (single rings or fused systems, alicyclic von Baeyer systems, spiro systems, phane systems, fullerenes) that are directly joined to each other by single or double bonds are called ‘ring assemblies’ when the number of such direct ring junctions is one less than the number of cyclic systems involved.”; ## **** (:24070) ### **** (:24072) “Preferred IUPAC names for assemblies of two or more identical cyclic systems joined by a single bond are formed using the names of parent hydrides rather than the names of substituent groups”; ## **** (:24151),:24159 ‘1,2,3,4,5,6-hexahydro-2,2’-bipyridine (PIN)’ (not ‘2-(piperidin-2-yl)pyridine’); ### **** Ring assemblies composed of monocyclic components (:17077),:17083 ‘2,3-dihydro-1,1’-biphenyl (PIN)’ (not ‘(cyclohexa-1,3-dien-1-yl)benzene’); ### **** (:16107):16118 ‘[1,1’-biphenyl]-4-yl (preferred prefix)’.

A round trip proves the molecule, never that the name takes the assembly as one parent: a substitutive producer that takes two identical ring systems apart (‘5-(benzyloxy)-2-(pyridin-2-yl) pyridine’ for 5-(benzyloxy)-2,2’-bipyridine) round-trips exactly and ships pin_verified. Seven producers do this, and every one of them passes the call site of the spelling checks, so one check there decides the class.

Structure side (RDKit only, and a reader of its own: the checks import no naming or rules code, see test_the_checks_import_no_naming_code_and_no_opsin): the ring systems (rings that share an atom are one system) and the groups of two or more systems with the same skeleton joined by a bond. Identity is that of the skeleton, so the mancude and the saturated forms of one ring are one group

:24153 “When assemblies of otherwise identical rings contain both mancude and saturated

rings, the use of hydro prefixes is preferred, except in the case of a two ring assembly consisting of one benzene ring and a cyclohexane ring”), a ring-nitrogen or a double-bond junction counts:15593, ‘1,1’-bipyrrole (PIN)’:15603), and that one benzene + cyclohexane assembly is no group (‘cyclohexylbenzene (PIN)’:24157). The reader agrees with orthonym.rules.ring_assembly_screen._assemblies that the drug-lane producers consult (test_leads_l2_assembly_label.py compares the two over the eval molecules).

Name side: a lexical count of the assembly texts, a primed (or composite) junction locant set directly before bi, ter, quater, quinque, sexi or septi. No naming code, no OPSIN, so the check cannot inherit a defect of the code that built the name.

Verdict: the molecule holds at least one group and the name cites no assembly text. The check abstains (returns None) for the names and structures the rule does not decide: a linear phane name

:23901;:24088 “Phane names are preferred IUPAC names rather than ring

assembly names when seven or more rings or ring systems are present”) and a group of seven or more ring systems (the phane parent hydride is the PIN there, checks_phane).

orthonym.validation.spelling.checks_assembly.ASSEMBLY_HEAD = "(?<![\\w'^])\\d[\\d,:'^a-zλ]*(?:'|:)[\\d,:'^a-zλ]*-(?:bi(?!s[(\\[{])|ter(?!t-|ephth)|quater|quinque|sexi|septi|octi|novi|deci)"#

‘ separates the junction pairs, ‘^’ the superscript of a composite locant) junction locant set directly before the multiplying prefix of an assembly: ‘2,2’-bipyridine’, ‘1,1’:4’,1’’-terphenyl’, ‘1^1,2^1:2^2,3^1-tercyclopropane’. ‘bis’ before an enclosing mark (a multiplied substituent: ‘3,3’-bis(…)’), ‘tert-’ and ‘terephth…’ are not assemblies; ‘bi’ before a ring name that starts with ‘s’ is one (‘1,1’-bistibinane’,; the Blue Book).

Type:

a primed (two rings) or composite (three or more rings; ‘

orthonym.validation.spelling.checks_assembly.count_assembly_texts(name)#

How many ring assembly descriptors the name cites (see _ASSEMBLY_TEXT).

orthonym.validation.spelling.checks_assembly.ring_assembly_groups(mol)#

The ring assemblies of mol: each a list of two or more ring systems (atom sets) with the same skeleton, joined by bonds. The two-ring assembly of one benzene ring and one cyclohexane ring:24153) is no group.

orthonym.validation.spelling.checks_assembly.ring_assembly_named_as_such_check(mol, name)#

(:15542) with (:24072), (:24159) and (:17083): a molecule whose ring systems form a ring assembly is named with an assembly parent hydride (or an assembly prefix,:16118); a name that cites no assembly takes the assembly apart into a parent ring and a ring substituent, and is not the PIN.