Skip to main content

SmileSherlock

SmileSherlock logo

A high-performance, production-grade tool for SMILES validation, PubChem lookup, and chemical structure retrieval.

PyPI Python 3.10+ License: MIT

Features

  • SMILES Validation & Canonicalization - Validate and standardize SMILES strings using RDKit
  • Multi-format Input - Support for CSV, TSV, XLSX, SMI, SDF, and TXT files
  • Smart Auto-detection - Automatically identify SMILES columns
  • PubChem Lookup - Search by SMILES, CID, Name, InChI, and InChIKey
  • Rich Metadata - Retrieve IUPAC name, molecular formula, mass, descriptors
  • Structure Downloads - Get 2D/3D SDF, MOL, PDB, and PNG formats
  • Batch Processing - Process hundreds of compounds with progress tracking
  • Async/Multithreading - Fast parallel downloads with retry logic
  • Caching - SQLite database for storing results locally
  • Multiple Exports - Save results as CSV, Excel, or JSON
  • Python API - Use directly in your scripts via smilesherlock module
  • CLI Tool - Full-featured command-line interface with smilesherlock command

Installation

From PyPI

pip install smilesherlock

Development Installation

Clone the repository and install in editable mode:

git clone https://github.com/AtharvaTilewale/SmileSherlock.git
cd SmileSherlock
pip install -e ".[dev]"

Quick Start

CLI Usage

# Show configuration and status
smilesherlock status

# Initialize directories and database
smilesherlock init

# Lookup a single compound
smilesherlock lookup "c1ccccc1"  # Benzene
smilesherlock lookup 5282253 --cid

# Batch process a file
smilesherlock batch compounds.csv --output results.xlsx --format xlsx

# Download structure
smilesherlock download 5282253 --format sdf --3d

Python API

from smilesherlock import lookup, lookup_file, download_structure

# Lookup single compound
result = lookup("c1ccccc1")
print(result.cid, result.iupac_name)

# Process file
results = lookup_file("compounds.csv", output_format="xlsx")

# Download structure
download_structure(5282253, format="sdf", dimension="3d")

For more detailed API documentation, see the API Reference page.

Documentation

For complete tutorials and advanced usage examples, see the Practical Guide or visit the official documentation on Read the Docs.

Requirements

  • Python 3.10+
  • RDKit (cheminformatics library)
  • pandas (data handling)
  • requests/aiohttp (HTTP)
  • typer (CLI framework)
  • rich/tqdm (UI/progress)

Configuration

For configuration and architecture details, see the Configuration & Architecture page.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

For more details, see the Contributing Guide.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use SmileSherlock in your research, please cite:

@software{smilesherlock2026,
  author={Atharva Tilewale},
  title={SmileSherlock: High-performance SMILES validation and PubChem lookup},
  version={1.1.0},
  year={2026},
  url={https://github.com/AtharvaTilewale/SmileSherlock}
}

Support

Changelog

See CHANGELOG.md for version history.


Made with ❤️ for the cheminformatics community

Download files

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

Source Distribution

smilesherlock-1.1.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

smilesherlock-1.1.0-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file smilesherlock-1.1.0.tar.gz.

File metadata

  • Download URL: smilesherlock-1.1.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for smilesherlock-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c6bc9cf3e9f774186970c1a072919b7bfe6bd4fb707846cf870cf6852c237f2c
MD5 e9ddd63bc7726c475f27445d94c07359
BLAKE2b-256 f03c05beefe188502ae1fb83dcb13f0fc0aaac4764c54e772adbbe36da5d6ee8

See more details on using hashes here.

Provenance

The following attestation bundles were made for smilesherlock-1.1.0.tar.gz:

Publisher: publish.yml on AtharvaTilewale/SmileSherlock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smilesherlock-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: smilesherlock-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for smilesherlock-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2d0f4f79d1d0e60514778ace2fc34a91ac3b013b583a56565610d072a956ed3
MD5 74fcc35e4bee6af27ad90780220f69b4
BLAKE2b-256 0fb2064d332c698d96dd0cf06418db627ec55576691ed9f9a33cc964842365a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for smilesherlock-1.1.0-py3-none-any.whl:

Publisher: publish.yml on AtharvaTilewale/SmileSherlock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

This release

1.1.0 This release

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page