Skip to main content

A lightweight generative model that extends SMILES fragments into syntactically valid molecules

Project description

Chempleter

Demo Gif

Molecular autocomplete

PyPI - Status PyPI - Version Python Version from PEP 621 TOML PyPI - License GitHub last commit GitHub Actions Workflow Status GitHub Actions Workflow Status

Chempleter is a lightweight generative sequence model based on a multi-layer gated recurrent units (GRU) to predict syntactically valid extensions of a provided molecular fragment or bridge two molecules/molecular fragments. It operates on SELFIES token sequences, ensuring syntactically valid molecular generation and accepts SMILES notation as input. Due to its simple recurrent architecture and small vocabulary, the model runs efficiently on both CPUs and GPUs.

Demo Gif
  • What can Chempleter do?

    • Currently, Chempleter accepts an intial molecule/molecular fragment in SMILES format and generates a larger molecule with that intial structure included, while respecting chemical syntax. It also shows some interesting descriptors.

    • It can be used to generate a wide range of structural analogs which the share same core structure (by changing the sampling temperature) or decorate a core scaffold iteratively (by increasing generated token lengths)

    • It can be used to bridge two molecules/molecular fragments to explore linker chemistry.

    • In the future, it might be adapated to predict structures with a specific chemical property using a regressor to rank predictions and transition towards more "goal-directed" predictions.

See chempleter in action.

Prerequisites

  • Python ">=3.12"
  • uv (optional but recommended)

Installation

See detailed installation instructions.

Getting started

Visit Chempleter's docs.

Quick start

These commands are valid for running Chempleter on CPU. For GPU, see installation instructions.

  • Run the GUI directly without installing (via uv):

    • On windows:

      uvx --from "chempleter[cpu]" chempleter-gui.exe

    • On linux/MacOS:

      uvx --from "chempleter[cpu]" chempleter-gui

    • The very first start of the GUI on your device might be a bit slow. To know more about using the GUI and various options, see here.

    Or

  • Install using uv

    uv pip install "chempleter[cpu]"

  • Run GUI after installation

    uv run chempleter-gui

  • Use the GUI

    • Type in the SMILES notation for the starting structure or leave it empty to generate random molecules. Click on GENERATE button to generate a molecule.

    • To know more about using the GUI and various other options, see here.

  • Use as a python library

    • To use Chempleter as a python library:

      from chempleter.inference import extend
      generated_mol, generated_smiles, generated_selfies = extend(smiles="c1ccccc1")
      print(generated_smiles)
      >> C1=CC=CC=C1C2=CC=C(CN3C=NC4=CC=CC=C4C3=O)O2
      

      To draw the generated molecule :

      from rdkit import Chem
      Chem.Draw.MolToImage(generated_mol)
      
    • For details on available paramenters and inference functions, see generating molecules.

Model history and validation

See model validation reports.

Project structure

  • src/chempleter: Contains python modules relating to different functions.
  • src/chempleter/processor.py: Contains fucntions for processing csv files containing SMILES data and generating training-related files.
  • src/chempleter/dataset.py: ChempleterDataset class
  • src/chempleter/model.py: ChempleterModel class
  • src/chempleter/inference.py: Contains functions for inference
  • src/chempleter/train.py: Contains functions for training
  • src/chempleter/gui.py: Chempleter GUI built using NiceGUI
  • src/chempleter/data : Contains trained model, vocabulary files

License

MIT License

Copyright (c) 2025-2026 Davis Thomas Daniel

Contributing

Any contribution, improvements, feature ideas or bug fixes are always welcome.

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

chempleter-0.1.0b9.tar.gz (21.9 MB view details)

Uploaded Source

Built Distribution

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

chempleter-0.1.0b9-py3-none-any.whl (21.9 MB view details)

Uploaded Python 3

File details

Details for the file chempleter-0.1.0b9.tar.gz.

File metadata

  • Download URL: chempleter-0.1.0b9.tar.gz
  • Upload date:
  • Size: 21.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chempleter-0.1.0b9.tar.gz
Algorithm Hash digest
SHA256 2d72ade5b0416cd62e2b93f5d3a06d557e4a5d8cf29f13ef401b94978c16feaa
MD5 9c682e4bd23c6c9e0482026b88388638
BLAKE2b-256 8b9fc210ef3981ba093eaf60d96b265333737cbbe06989a1a3f95dfe80eb6335

See more details on using hashes here.

File details

Details for the file chempleter-0.1.0b9-py3-none-any.whl.

File metadata

  • Download URL: chempleter-0.1.0b9-py3-none-any.whl
  • Upload date:
  • Size: 21.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chempleter-0.1.0b9-py3-none-any.whl
Algorithm Hash digest
SHA256 86dbc2ba119f0a235682288310f54a2fcd7d084fd20ca74dc9a7cf69a0f1dab3
MD5 6ab66e0d45f206e1a00afa96e8dc40a4
BLAKE2b-256 ace7686c3f3dec431c14cda6bce58cd52d3103ffb9ae311c7239e89ace38300d

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