orthonym.rules.sulfur_oxoacid#
Note
Internal API. Names and behaviour may change between releases.
: sulfur-oxoacid acyl-oxy / -amino substituent prefixes.
When a sulfur oxoacid group is attached BY OXYGEN (chalcogen) OR NITROGEN to a
compound that also carries a characteristic group senior to the sulfur acid for
citation as principal group (e.g. a carboxylic acid), the sulfur group is cited
as a substituent PREFIX, not as the parent
, the Blue Book Blue Book):
3-(sulfooxy)propanoic acid (PIN):36488 3-[(methoxysulfinyl)oxy]propanoic acid (PIN):36490 3-[(chlorosulfonyl)oxy]propanoic acid (PIN):36492 3-(sulfamoyloxy)propanoic acid (PIN):36494 3-[(aminosulfinyl)oxy]propanoic acid (PIN):36500 (NOT sulfinamoyloxy) 3-[(methoxysulfonyl)amino]propanoic acid (PIN):36502
The generic path names this tail by skeletal (“a”) replacement
(…-1,3-dioxa-2λ6-thiapropyl) — a valid, round-tripping, but NON-PIN form.
The S-oxoacid acyl group is {X}sulfonyl (n S=O double bonds = 2) or
{X}sulfinyl (n = 1), where X is the single S ligand that is neither the
linking O/N nor an oxo. Two Blue Book contractions apply / the
substituent-prefix tables at:56857,:56859): hydroxysulfonyl -> sulfo
and aminosulfonyl -> sulfamoyl. aminosulfinyl is NOT contracted
(explicitly [not …sulfinamoyloxy…] at:36500).
Every function fails closed (returns None) on any S outside the neutral
mono/di-oxo acyl class (charged/radical S, ring S, an unexpected ligand set,
a carbon-R sulfonyl, a plain thioether); the top-level /OPSIN round-trip
gate keeps 0-wrong on whatever is emitted.
- orthonym.rules.sulfur_oxoacid.name_sulfur_oxoacid_oxy_substituent(mol, o_idx, from_idx)#
O-linked
-O-S(oxoacid)as an oxy substituent prefix.o_idxis the ester/bridging oxygen (the fragment attach atom);from_idxis its parent-side neighbour. Returnssulfooxy/sulfamoyloxy(single compound tokens, or(chlorosulfonyl)oxy/(aminosulfinyl)oxy/(methoxysulfinyl)oxy(an internal paren the caller’s enclosure escalates to brackets), orNone(fail closed).
- orthonym.rules.sulfur_oxoacid.name_sulfate_ester(mol, sulfur_idx)#
Functional-class name for a neutral ester of sulfuric acid.
Sulfuric acid H2SO4 is a dibasic mononuclear noncarbon oxoacid; its esters are named like esters of organic acids,
the Blue Book Blue Book): the organyl group(s) are cited as separate words, in alphanumerical order when more than one, followed by the anion name of the acid (‘sulfate’); a partial (mono) ester of the dibasic acid inserts the word ‘hydrogen’ (or ‘dihydrogen’) for a remaining acidic -OH. The governing PIN example isCH3-O-SO2-OH methyl hydrogen sulfate (PIN)(:35968).(RO)2SO2 -> ‘dialkyl sulfate’ (di-ester, 0 free -OH) RO-SO2-OH -> ‘alkyl hydrogen sulfate’ (mono-ester, 1 free -OH)
This is the SULFUR analogue of:func:rules.phosphorus.name_phosphate_ester and reuses its owner/multiplier/hydrogen-word helpers. It is distinct from a sulfonate ester (R-SO2-O-R’, an S-C bond, already handled by ‘sulfonic_ester’ ->
rules.esters.name_noncarbon_ester): a sulfate ester has NO S-C bond.Requires a neutral, acyclic S(VI) with EXACTLY two terminal =O, at least one -O-C ester owner, and NO S-C bond. Fails closed (
None) off that shape, or if any organyl owner is unspellable, or the name would not cover every atom; the top-level /OPSIN validity gate is the 0-wrong backstop on whatever is emitted.
- orthonym.rules.sulfur_oxoacid.name_sulfur_oxoacid_acyl_for_amino(mol, s_idx, frag_atoms)#
N-linked
-NH-S(oxoacid): the acyl prefix for the amino wrapper.Reached when the S-oxoacid attaches through an amine N (the amino-branch caller has already split off the N as the linker and recursed into the S fragment, so
s_idxis the fragment attach atom whose single EXTERNAL neighbour, outsidefrag_atoms, is that N). Returns e.g.methoxysulfonylfor the caller to wrap as(methoxysulfonyl)amino, orNone(fail closed) if the external linker is not a neutral N or the S is out of class.