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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb72cc081d88bb43c4945f1ed0fc2bf13044851aa8c9018645ed67427a99b1de
|
|
| MD5 |
35d73452bdef4fbd265cb4a5439c5b9e
|
|
| BLAKE2b-256 |
8a0bed79daf1728db466f60d9bb9e5682ae01758b67bd4b95f4f532c391bef4e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
724c05984251017088d7d2ccda62bb0524485aed08aa9f0dc595818b6ea52674
|
|
| MD5 |
054bf9544606ff9b92b623b76bad4ae0
|
|
| BLAKE2b-256 |
73f389a2a3df6682237c1ea34659d0a0678e114998bc41f35afb0584669f6fe9
|