IUPACNames

API Endpoint
Leaderboard
Loading leaderboard...
README

IUPACNames

OpenReward Environment

Description

IUPACNames is an environment for evaluating bidirectional chemistry nomenclature and structure representation tasks. It contains 2,400 compounds with tasks for converting between IUPAC chemical names and SMILES (Simplified Molecular Input Line Entry System) representations, sourced from PubChem.

Capabilities

  • IUPAC nomenclature to SMILES conversion
  • SMILES to IUPAC nomenclature conversion
  • Chemical structure understanding
  • Equivalent representation recognition

Compute Requirements

Agents are given a standard environment with no sandbox or file system access.

License

MIT.

Tasks

There are four splits in this environment:

  • iupac2smiles_train: 1,000 tasks
  • iupac2smiles_test: 200 tasks
  • smiles2iupac_train: 1,000 tasks
  • smiles2iupac_test: 200 tasks

All compounds are sourced from PubChem with non-overlapping CIDs across task types.

Reward Structure

This is a single-turn environment with two validation strategies:

SMILES Validation (Deterministic): Uses RDKit for canonicalization, handling equivalent representations (e.g., c1ccccc1 equals C1=CC=CC=C1 for benzene).

IUPAC Validation (Structure Match): The predicted name is parsed to a structure with OPSIN and compared with the reference by RDKit canonical SMILES, ignoring stereochemistry. Charges and tautomers are compared as written, as in SMILES validation. Any systematic name for the right structure is accepted (e.g., "propan-1-ol" equals "1-propanol"; von Baeyer and fused-ring names of the same ring system are equal).

Two rules apply before the structure match, and a name that breaks one scores 0.0:

  • Locants: if the reference name contains a digit (a locant) and the predicted name does not, the answer is incorrect. This rejects trivial names such as "caffeine" and o/m/p locants.
  • Trivial names: the name is parsed a second time with OPSIN's trivial-name dictionary entries removed (natural products, drugs, amino acids, carbohydrates, nucleosides and other common names, e.g. "5-fluorouracil", "2'-deoxyadenosine", "androst-4-ene-3,17-dione"). A name that only parses with those entries is incorrect. Parent names that the IUPAC 2013 recommendations retain for general nomenclature (benzene, pyridine, indole, quinoline, acetic acid, benzoic acid, aniline, ...) stay allowed. The list is trivial_name_tokens.tsv, generated by build_trivial_name_tokens.py, which records the decision and the IUPAC 2013 section for every token.

Names OPSIN cannot parse are judged by a gpt-5-mini grader, as are non-matching names on the few tasks whose reference name OPSIN reads as a different structure. If the grader reaches no verdict (a second, low-effort attempt included), the name is not graded: it returns reward 0.0 and the episode stays open so the agent can resubmit.

Reward is binary: 1.0 if correct, 0.0 if incorrect. For iupac2smiles, a SMILES that is empty or cannot be parsed or canonicalized is not graded: it returns reward 0.0 and the episode stays open so the agent can resubmit.

Data

Data consists of JSON files containing compounds sourced from PubChem via their PUG-REST API. Each task includes a question, compound identifier, and answer data. Data is stored on the OpenReward platform.

Tools

ToolDescription
submit_answerSubmit SMILES string or IUPAC name. Ends the episode once an answer is graded.

Time Horizon

Single-turn. The agent reads the chemistry question and submits one answer.

Environment Difficulty

[Put environment difficulty here]

Other Environment Requirements

Java (for OPSIN; installed in the Docker image). OpenAI API key required for IUPAC name grading of names OPSIN cannot parse. Pass via secrets={"openai_api_key": "..."}.

Safety

Agents in IUPACNames convert between chemical representations in a standard environment. The environment does not present direct safety risks.

Citation

@software{iupacnames2025,
  title={IUPACNames: Chemistry Nomenclature Environment for OpenReward},
  author={{General Reasoning Inc. Team}},
  year={2025},
  url={https://www.openreward.ai/GeneralReasoning/IUPACNames}
}
GeneralReasoning/IUPACNames | OpenReward