Skip to main content

SMILES to IUPAC naming tool optimized by OPSIN roundtrip benchmarks.

Project description

NISPO

NISPO is an open-source, RDKit-based Python package for generating IUPAC names of molecules. Generated names are designed to pass an OPSIN round-trip test, in which OPSIN parses the name back to the same molecular structure. The entire NISPO codebase was generated by OpenAI Codex using GPT-5.5.

Installation

pip install nispo

NISPO requires Python 3.10 or newer.

Quick start

Use smiles_to_iupac to convert a single SMILES string, or smiles_to_iupac_batch to convert multiple SMILES strings at once:

from nispo import smiles_to_iupac, smiles_to_iupac_batch

smiles_to_iupac("CCO")
# 'ethanol'

smiles_to_iupac_batch(["CCO", "not-a-smiles"])
# ['ethanol', '']

Unsuccessful conversions return an empty string (""). Batch conversion preserves the number and order of the inputs.

Performance

NISPO achieved 98.1% OPSIN round-trip accuracy on a held-out benchmark of 103 million PubChem compounds. It is optimized for OPSIN round-trip validity rather than preferred IUPAC nomenclature, so generated names may differ from names listed in databases.

Citation

If you use NISPO in your work, please cite:

@article{runcie2026nispo,
  title   = {NISPO: Open-source IUPAC name generation tool},
  author  = {Runcie, Nicholas T. and Imrie, Fergus and Deane, Charlotte M.},
  journal = {},
  year    = {},
  doi     = {}
}

OPSIN is described in Lowe, D. M.; Corbett, P. T.; Murray-Rust, P.; Glen, R. C. Chemical Name to Structure: OPSIN, an Open Source Solution. Journal of Chemical Information and Modeling 2011, 51 (3), 739–753. https://doi.org/10.1021/ci100384d.

License

NISPO is released under the BSD 3-Clause License. See LICENSE.

AI disclosure

This repository was developed using OpenAI Codex. The codebase is AI-generated and was created through an autonomous self-iteration process: Codex repeatedly ran the benchmark, inspected failures, updated the implementation, and reran the benchmark until high OPSIN round-trip accuracy was achieved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nispo-0.1.6.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nispo-0.1.6-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file nispo-0.1.6.tar.gz.

File metadata

  • Download URL: nispo-0.1.6.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for nispo-0.1.6.tar.gz
Algorithm Hash digest
SHA256 eb72cc081d88bb43c4945f1ed0fc2bf13044851aa8c9018645ed67427a99b1de
MD5 35d73452bdef4fbd265cb4a5439c5b9e
BLAKE2b-256 8a0bed79daf1728db466f60d9bb9e5682ae01758b67bd4b95f4f532c391bef4e

See more details on using hashes here.

File details

Details for the file nispo-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: nispo-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for nispo-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 724c05984251017088d7d2ccda62bb0524485aed08aa9f0dc595818b6ea52674
MD5 054bf9544606ff9b92b623b76bad4ae0
BLAKE2b-256 73f389a2a3df6682237c1ea34659d0a0678e114998bc41f35afb0584669f6fe9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page