Skip to content

Upgrading to Datamol 0.13.0

Datamol 0.13.0 refreshes the supported scientific Python stack without adding new feature domains. The goal is to preserve Datamol's public behaviour while removing compatibility code for dependency versions that are no longer maintained and integrating existing community contributions.

Supported runtime

  • Python 3.11 or newer is required.
  • RDKit 2024.09 or newer is required.
  • NumPy 1.26, pandas 2.2 and scikit-learn 1.4 are the minimum supported series.

Install Datamol with python -m pip install datamol. The single package bundles everything needed at runtime — cloud/Excel/Parquet I/O, visualization and SELFIES conversion — so there are no feature extras to select.

Dependency-driven output changes

Recent RDKit releases may choose a different, but chemically equivalent, canonical SMILES or CXSMILES representation. Conformer embedding and clustering can also retain a different number of conformers between RDKit releases. Code should compare chemical structure and conformer invariants rather than version-specific strings, energies or cluster counts.

pandas 3 removed the verbose argument from pandas.read_csv. For compatibility, datamol.open_df(..., verbose=...) accepts and ignores that argument with a deprecation warning when the installed pandas version no longer supports it. Other unknown reader arguments continue to raise an error.

fold_count_fp now accepts both sparse and explicit RDKit bit vectors, as its public type contract already indicated. Datamol remains the canonical home for general fingerprint folding and conformer alignment; downstream packages such as Molfeat reuse these primitives rather than maintaining divergent copies.

template_align(..., auto_select_coord_gen=True) now scopes RDKit's CoordGen preference to the alignment call. It no longer changes the process-wide RDKit depiction preference for subsequent calls.

Conformer RMS calculations and pruning now use RDKit's optimal, symmetry-aware pairwise alignment. This fixes cases where the returned conformers violated the requested RMS cutoff. Existing code that deliberately pre-aligns conformers can keep the faster common-frame calculation with cluster(..., already_aligned=True).

The default descriptor keys n_aliphatic_heterocyles, n_aromatic_heterocyles, and n_saturated_heterocyles are corrected to use heterocycles. The misspelled function names remain as deprecated aliases for the 1.x transition.

Molecules can now be exchanged using RDKit binary and property-dictionary representations through to_binary, to_dict, and from_dict (PR #238).

Development and releases

Create the development environment with uv sync --all-extras; env.yml remains a supported Conda alternative. The CI uses the same uv-based install path and tests the supported Python and RDKit series on Linux x86-64, Windows x86-64, macOS Apple Silicon and macOS Intel. Tutorial notebooks, documentation, formatting and package distributions run separately. Publication remains a manual action using PyPI Trusted Publishing, with full release validation and isolated distribution tests. See the release guide, including the separate conda-forge recipe updates.