orthonym.rules.porphyrin#

Note

Internal API. Names and behaviour may change between releases.

Substituted free-base porphyrins named on the retained parent porphyrin.

porphyrin is the semisystematic parent name of Blue Book (Table 10.1 “Names of fundamental stereoparent structures (nonlimiting)”, (d) Miscellanous). Its numbering and its implied indicated hydrogen come from the tetrapyrrole recommendations that cites (reference 17, <https://iupac.qmul.ac.uk/tetrapyrrole/TP1.html>):

*.1 “… the name “porhyrin” [sic] implies that the saturated nitrogen atoms are at positions 21

and 23 unless specifically indicated otherwise.”;

*.2 “The 1-24 numbering system… is adopted for the porphyrin nucleus”: ring A is N21 with C1-C4,

C5 is a meso carbon, ring B is N22 with C6-C9, C10 meso, ring C is N23 with C11-C14, C15 meso, ring D is N24 with C16-C19, C20 meso;

*.7 “Systematic Names for Substituted Porphyrins”: when there is a choice, the lowest locants go to

(a) indicated hydrogen, (b) principal groups named as suffix, (c) substituents named as prefixes and hydro prefixes, all considered together, (d) the substituent named as a prefix that is cited first. Its examples are spelled without indicated hydrogen: 2,7,12,17-tetraethyl-3,8,13,18-tetramethylporphyrin.

The name is built the way the other retained fused parents are built (rules/purine.py): an atom-mapped skeleton query whose map numbers ARE the locants, and the shared fused-parent assembler (rules/fused_rings.py) for multipliers, enclosing marks, alphanumerical order and substituent prefixes. The producer returns None (the cascade goes on with today’s names) for every molecule that is not a free-base, prefix-only, mancude porphyrin; decline_reason names the class.

LABEL: Blue Book INTRODUCTION says “Preferred IUPAC names (PINs) are not identified for the compounds in this Chapter” (Chapter, which holds. The default tier labels the names of this module pin_verified because the natural-product route that calls it does so (the route policy of routing/dispatch_table.py::_handle_natural_product), exactly as for the bare porphyrin and the steroid names. That label is the route’s policy, not a Blue Book PIN ruling, and the.. systematic name of a substituted porphyrin is not derived here.

ANION: name_porphyrin_dianion names the dianion that a metal ion leaves behind, the free base minus the two hydrons of its implied N-H (.1: N21 and N23). Anions derived from parent hydrides and their derivatives: “An anion derived formally by the removal of one or more hydrons from any position of a neutral parent hydride is preferably named by using the suffix ‘-ide’… Numerical prefixes ‘di’, ‘tri’, etc. are used to denote multiplicity; locants identify positions of the negative charges.” The parent hydride is porphyrin (21H,23H), the hydrons come from 21 and 23, so the parent of the anion is porphyrin-21,23-diide and the substituent prefixes are cited before it, as before a parent with a suffix. The anion has no PIN: the compounds of carry no PIN label

INTRODUCTION, quoted above), so the caller labels the name a verified systematic name.

orthonym.rules.porphyrin.ANION_PARENT_NAME = 'porphyrin-21,23-diide'#

the parent of the anion that loses the two hydrons of the implied N-H (N21 and N23)

orthonym.rules.porphyrin.core_numberings(mol)#

The numberings of the molecule’s porphyrin core that are names of it: the graph matches whose drawn N-H sit on N21 and N23 (.1). A trans drawing has 4 of them, a cis drawing none.

orthonym.rules.porphyrin.decline_reason(mol, *, bare_ok=False)#

None when the molecule is a free-base, prefix-only, mancude porphyrin this module names; otherwise the reason code of the first guard that declines it. Pure: no naming. The order is the order of the guards, so a molecule with several reasons reports the first (the free-ion and N-metal rows keep fragments and n_substituted before the broad metal guard). bare_ok lets the bare 24-atom parent pass: the exact lookup owns the free base, the anion has no entry of its own.

orthonym.rules.porphyrin.name_substituted_porphyrin(mol)#

5,10,15,20-tetraphenylporphyrin for a substituted free-base porphyrin, else None.

orthonym.rules.porphyrin.name_porphyrin_dianion(mol)#

5,10,15,20-tetraphenylporphyrin-21,23-diide for the dianion of a prefix-only free-base porphyrin, quoted in the module docstring), else None.

The anion is named as its free base is, on the parent porphyrin-21,23-diide: the hydrons that leave are the two of the implied N-H (N21 and N23,.1), so the locants of the diide are the same for every numbering and the numbering is the free base’s. A dianion whose negative nitrogens are neighbours (the free base would carry its N-H on N21 and N22) has no numbering that puts the drawn N-H on N21 and N23 and is declined; so is every ion with another net charge, a metal, a suffix group or a stereo descriptor, as for the free base.