datamol - molecular processing made easy
Datamol is a python library to work with molecules. It's a layer built on top of RDKit and aims to be as light as possible.
- 🐍 Simple pythonic API
- ⚗️ RDKit first: all you manipulate are
rdkit.Chem.Molobjects. - ✅ Manipulating molecules often relies on many options; Datamol provides good defaults by design.
- 🧠 Performance matters: built-in efficient parallelization when possible with an optional progress bar.
- 🕹️ Modern IO: out-of-the-box support for remote paths using
fsspecto read and write multiple formats (sdf, xlsx, csv, etc).
Try Online
Documentation
Visit https://docs.datamol.io.
Updates
Datamol 0.13.0 modernizes the supported scientific Python stack while keeping the library focused on reliable molecular processing. It adds RDKit binary and property-dictionary interchange, enforces conformer RMS cutoffs with symmetry-aware alignment, fixes reported RDKit compatibility issues, and separates optional I/O and visualization dependencies from the core installation.
See the complete changelog for all notable changes and the 0.13.0 upgrade guide for compatibility and transition details.
Installation
Add Datamol to a uv-managed project:
uv add datamol
Pip and conda-forge remain supported:
python -m pip install datamol
mamba install -c conda-forge datamol
Datamol 0.13.0 requires Python 3.11 or newer and RDKit 2024.09 or newer. Cloud I/O (S3, Google Cloud), Excel/Parquet, visualization and SELFIES support are all included by default — there are no feature extras to install.
Quick API Tour
import datamol as dm
# Common functions
mol = dm.to_mol("O=C(C)Oc1ccccc1C(=O)O", sanitize=True)
fp = dm.to_fp(mol)
selfies = dm.to_selfies(mol)
inchi = dm.to_inchi(mol)
# Standardize and sanitize
mol = dm.to_mol("O=C(C)Oc1ccccc1C(=O)O")
mol = dm.fix_mol(mol)
mol = dm.sanitize_mol(mol)
mol = dm.standardize_mol(mol)
# Dataframe manipulation
df = dm.data.freesolv()
mols = dm.from_df(df)
# 2D viz
legends = [dm.to_smiles(mol) for mol in mols[:10]]
dm.viz.to_image(mols[:10], legends=legends)
# Generate conformers
smiles = "O=C(C)Oc1ccccc1C(=O)O"
mol = dm.to_mol(smiles)
mol_with_conformers = dm.conformers.generate(mol)
# 3D viz (using nglview)
dm.viz.conformers(mol, n_confs=10)
# Compute SASA from conformers
sasa = dm.conformers.sasa(mol_with_conformers)
# Easy IO
mols = dm.read_sdf("s3://my-awesome-data-lake/smiles.sdf", as_df=False)
dm.to_sdf(mols, "gs://data-bucket/smiles.sdf")
How to cite
Please cite Datamol if you use it in your research: .
Compatibilities
Version compatibilities are an essential topic for production-software stacks. We are cautious about documenting compatibility between datamol, python and rdkit.
See below the associated versions of Python and RDKit, for which a minor version of Datamol has been tested during its whole lifecycle. It does not mean other combinations does not work but that those are not tested.
datamol |
python |
rdkit |
|---|---|---|
0.13.x |
[3.11, 3.12, 3.13, 3.14] |
[2024.09, 2025.03, 2025.09, 2026.03] |
0.12.x |
[3.10, 3.11] |
[2023.03, 2023.09] |
0.11.x |
[3.9, 3.10, 3.11] |
[2022.09, 2023.03] |
0.10.x |
[3.9, 3.10, 3.11] |
[2022.03, 2022.09] |
0.9.x |
[3.9, 3.10, 3.11] |
[2022.03, 2022.09] |
0.8.x |
[3.8, 3.9, 3.10] |
[2021.09, 2022.03, 2022.09] |
0.7.x |
[3.8, 3.9] |
[2021.09, 2022.03] |
0.6.x |
[3.8, 3.9] |
[2021.09] |
0.5.x |
[3.8, 3.9] |
[2021.03, 2021.09] |
0.4.x |
[3.8, 3.9] |
[2020.09, 2021.03] |
0.3.x |
[3.8, 3.9] |
[2020.09, 2021.03] |
CI Status
The CI runs tests and performs code quality checks for the following combinations:
- Linux x86-64, Windows x86-64, macOS Apple Silicon and macOS Intel.
- Python 3.11 through 3.14 on Linux.
- The supported RDKit release series from 2024.09 through 2026.03.
- The latest supported stack on every operating-system and architecture lane.
main |
|
|---|---|
| Lib build & Testing | |
| Code Sanity (formatting and linting) | |
| Documentation Build |
License
Under the Apache-2.0 license. See LICENSE.
Metadata
Release files for datamol 0.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| datamol-0.13.0.tar.gz | 3.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| datamol-0.13.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.4 MB
Release files / datamol-0.13.0.tar.gz
| Download URL | datamol-0.13.0.tar.gz |
|---|---|
| Size | 3.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f226040eff6cd1ac6c8e48e1297b2c10a505ee4808ec926aa73ae9bde68df9b
|
|
BLAKE2b-256 checksum How to use checksums |
2ce168636e590674a437aa975d59f465bafe0f06c0e890f70daa8c2fb71409d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency logRelease files / datamol-0.13.0-py3-none-any.whl
| Download URL | datamol-0.13.0-py3-none-any.whl |
|---|---|
| Size | 497.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
76ad6405aeabd698bd0d8e65d00bab03f751900e13eed38f836d1ab95583a958
|
|
BLAKE2b-256 checksum How to use checksums |
3f4e6efcc76899d21149287749395ced6edc52b27b4399bcb6ecbb417a652143
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency log