Skip to content

About

Web app for the Orthonym engine: draw or paste a structure, get its IUPAC name. OPSIN reads every name back, and each name shows the tier it earned: PIN, fallback, best effort, or no name.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Orthonym Web. Verified IUPAC names for chemical structures. Deterministic, rule-based, every name read back by OPSIN.

Try Orthonym  Run it yourself


A chemical structure goes in. An IUPAC name comes out, with the confidence it has actually earned.

Paper Licence: MIT Release CI DOI

How it works  ·  The tools  ·  Run it  ·  The paper  ·  Cite

How every name is checked

The round trip for caffeine. Your structure goes to the Orthonym engine, which writes the name 1,3,7-trimethyl-3,7-dihydro-1H-purine-2,6-dione. OPSIN reads that name back into a structure. The InChIKey of your structure and the InChIKey of what OPSIN read are both RYYVLZVUVIJVGH-UHFFFAOYSA-N, so the name is shown as a verified Preferred IUPAC Name. Below, the five tiers every verdict can land on: PIN, fallback, best effort, no name, error.

Deterministic. Orthonym names structures with the Orthonym engine, which is rule-based: no neural network, no sampling. The same structure always gets the same name.

Checked. Every name is handed to OPSIN, which never saw your structure, and parsed back. The two structures are compared by full InChIKey, and the result is shown next to the name.

Honest. The verdict lands on one of five tiers, drawn as a mark under the name wherever it appears. The shape of the mark carries the tier and the colour only agrees, so the five stay five in greyscale and for every common colour deficiency.

Six tools, one engine

Six tools, each shown on a real molecule. Explain: in caffeine's name, 1,3,7-trimethyl-3,7-dihydro-1H-purine-2,6-dione, the part 2,6-dione is pointed at and its two C=O groups light up in the structure. Check: the SMILES of L-alanine with the name D-alanine gives the verdict Same skeleton; stereo or isotopes differ, because the two InChIKeys differ only in their stereo block. Compare: propan-1-ol against propan-2-ol, with the locants 1 and 2 marked as the parts the other name does not have. Classroom mode: caffeine's name with the first five of fifteen parts shown and the rest hidden. Name to structure: 2-(acetyloxy)benzoic acid parsed by OPSIN into aspirin. Batch jobs: .sdf, .mol, .csv or SMILES in, CSV or SDF out, every row on one of five tiers.

Translate  ·  Name → Structure  ·  Explain  ·  Check  ·  Compare  ·  About

Translate names up to ten molecules at once, from SMILES, a drawing in Ketcher or an .sdf, .mol or .csv file; more run as a job with progress, a tally by tier and a CSV or SDF download. An opt-in switch strips salts, names the largest organic fragment and says what it removed. Check never calls a name correct: its verdict is about structure only, and it sits beside the name Orthonym would give. About has a live board of the service's health and the citation for the engine version the site runs.

Built on the Orthonym engine · OPSIN (a pinned main-branch commit, see INSTALL.md) · RDKit · CDK 2.12 · Ketcher · FastAPI · Celery · Redis · React 19

See it working

Six molecules on the Translate page, one per state: ethanol, a Preferred IUPAC Name; a fused polycyclic, a verified fallback; retinol, a best-effort name from the general engine; sphingosine, a name not checked here because no round-trip result came back; uranium trioxide, not named; and an unreadable SMILES, an error.

Real results from the Translate page: one molecule for every state a result can be in.

When it cannot name a molecule

A result card for uranium trioxide: Could not confidently name this, the formula O3U, and a Report SMILES on GitHub button

It says so, and declines rather than guess. The card then offers Report SMILES on GitHub, which opens a new issue here with the SMILES, the engine's reason and the settings already filled in. The label names what leaves the page, and the privacy policy says exactly what the link carries.

Run it yourself

docker compose up -d --build        # redis, backend, two workers, frontend
open http://localhost:8080

Wait for a worker to report a live JVM. Until one does, Orthonym refuses to name anything, on purpose: a name it cannot check is a name it will not serve.

curl -s http://127.0.0.1:8000/api/health
# {"status":"OK","opsin":"available"}

Deployment, sizing profiles and the batch-job API are in INSTALL.md.

The paper

The paper: Orthonym: verified IUPAC names for chemical structures in the wild. Kohulan Rajan, Achim Zielesny, Christoph Steinbeck. ChemRxiv preprint, October 2026, doi 10.26434/chemrxiv.15009769/v1. Read the paper.

How to cite

If you use Orthonym, please cite the paper:

Rajan, K., Zielesny, A., & Steinbeck, C. (2026, October). Orthonym: verified IUPAC names for chemical structures in the wild. ChemRxiv. https://doi.org/10.26434/chemrxiv.15009769/v1

@article{rajan2026orthonym,
  author  = {Rajan, Kohulan and Zielesny, Achim and Steinbeck, Christoph},
  title   = {Orthonym: verified IUPAC names for chemical structures in the wild},
  journal = {ChemRxiv},
  year    = {2026},
  month   = {10},
  note    = {Preprint},
  doi     = {10.26434/chemrxiv.15009769/v1},
  url     = {https://doi.org/10.26434/chemrxiv.15009769/v1}
}
Citing the software: the Orthonym engine and this web app each have a Zenodo DOI

The engine. Cite 10.5281/zenodo.23044199 and give the version you ran. The About page of the running site gives this entry with its engine version and commit filled in.

@software{orthonym,
  author  = {Rajan, Kohulan and Zielesny, Achim and Steinbeck, Christoph},
  title   = {Orthonym},
  doi     = {10.5281/zenodo.23044199},
  url     = {https://github.com/Steinbeck-Lab/Orthonym},
  license = {MIT}
}

This web app. Cite 10.5281/zenodo.23036568. That DOI covers every release and resolves to the latest; each release also has its own DOI, listed on the Zenodo record.

Rajan, K., Zielesny, A., & Steinbeck, C. Orthonym-Web [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.23036568

@software{orthonym_web,
  author    = {Rajan, Kohulan and Zielesny, Achim and Steinbeck, Christoph},
  title     = {Orthonym-Web},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.23036568},
  url       = {https://doi.org/10.5281/zenodo.23036568}
}

GitHub's Cite this repository button, built from CITATION.cff, gives the paper in APA and BibTeX, and lists the software and the Orthonym engine it builds on.

The engine

This repository, Orthonym-Web, is the web app. Its naming engine, the Orthonym engine, lives in its own repository, Steinbeck-Lab/Orthonym, and the backend installs it from that repository's main branch. See the Orthonym engine dependency.

It is not STOUT-V2 in a browser: that neural model is a separate, unrelated project. Nothing here samples, and nothing here is a language model.

Licence

MIT, see LICENSE. Bundled third-party components keep their own licences, two of them under copyleft terms; the running site lists all of them on its Terms page, and backend/vendor/cdk/NOTICE records CDK's provenance and checksum.


Made with coffee by Kohulan Rajan at

Beilstein-Institut and Steinbeck Lab, Friedrich Schiller University Jena

An official collaboration for open science

About

Web app for the Orthonym engine: draw or paste a structure, get its IUPAC name. OPSIN reads every name back, and each name shows the tier it earned: PIN, fallback, best effort, or no name.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages