SMILES in.
A checked IUPAC name out.
Orthonym builds the name from the rules of the IUPAC 2013 recommendations, aiming at the Preferred IUPAC Name. Then OPSIN, which never saw your structure, reads the name back, and the two structures are compared by InChIKey. Every name carries its tier. When no name passes, you get the reason instead of a guess.
orthonym "CCO"ethanol
The first command, the five examples, and what --provenance prints.
Use it from code
from orthonym import name_compound
name_compound, its parameters and the provenance fields, on one page.
Install. Needs Python 3.10+ and a Java 11+ runtime.
pip install "git+https://github.com/Steinbeck-Lab/Orthonym.git"
orthonym --fetch-jars
No installing? Name a structure in the web app.
Examples of each tier
pin_verified
1,3,7-trimethyl-3,7-dihydro-1H-purine-2,6-dione
orthonym "Cn1cnc2c1c(=O)n(C)c(=O)n2C"caffeine
- InChIKey of your structure
RYYVLZVUVIJVGH-UHFFFAOYSA-N- InChIKey of what OPSIN read back
RYYVLZVUVIJVGH-UHFFFAOYSA-N
Same molecule: a verified Preferred IUPAC Name.
pin_unverified
(2S,3R,4E)-2-aminooctadec-4-ene-1,3-diol
orthonym --emit-tier valid "CCCCCCCCCCCCC/C=C/[C@H]([C@H](CO)N)O"sphingosine
Read back by OPSIN to the same molecule; its preferred status is not certified.
best_effort
cis-bicyclo[4.4.0]decane
orthonym --emit-tier best-effort "C1CC[C@H]2CCCC[C@H]2C1"cis-decalin
From a last-resort producer; OPSIN read it back to the same molecule.
abstain
inorganic compound (not supported)
orthonym "O=[U](=O)=O"uranium trioxide
Declined, with the reason code UNSUPPORTED_ELEMENT.
Every line is the engine's own output. What the tiers mean.
Find your way
A paper describing Orthonym is in preparation. Until it is published, please cite the software.