Molecular Processing Made Easy.
See the code
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.
rdkit.Chem.Mol objects.fsspec to read and write multiple formats (sdf, xlsx, csv, etc).Visit https://docs.datamol.io.
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.
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.
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")
Please cite Datamol if you use it in your research: .
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] |
The CI runs tests and performs code quality checks for the following combinations:
Under the Apache-2.0 license. See LICENSE.
886 followers · starred Oct 2022
261 followers · starred Sep 2022
80 followers · starred Jun 2024
42 followers · starred Apr 2021
Molecular Processing Made Easy.
See the code
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.
rdkit.Chem.Mol objects.fsspec to read and write multiple formats (sdf, xlsx, csv, etc).Visit https://docs.datamol.io.
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.
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.
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")
Please cite Datamol if you use it in your research: .
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] |
The CI runs tests and performs code quality checks for the following combinations:
Under the Apache-2.0 license. See LICENSE.
886 followers · starred Oct 2022
261 followers · starred Sep 2022
80 followers · starred Jun 2024
42 followers · starred Apr 2021