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.

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 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.

Fallback 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 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.

No name 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.