Skip to content

Releases: NVIDIA-BioNeMo/cuik-molmaker

v0.3.1

Choose a tag to compare

@sveccham sveccham released this 11 Aug 21:43

cuik-molmaker v0.3.1

Maintenance release adding Linux aarch64 (ARM64) support and fixing macOS
dynamic-library loading, plus documentation updates.

New platform support

  • Linux aarch64 / ARM64. The compiled extension is now located using the
    interpreter's actual architecture (platform.machine()) instead of a
    hard-coded x86_64 suffix, so cuik_molmaker builds and imports correctly on
    aarch64 in addition to x86_64.

Bug fixes

  • macOS runtime library resolution. The cuik_molmaker_core library now uses
    the correct @loader_path RPATH token on macOS instead of the ELF-only
    $ORIGIN token (which dyld does not understand). This is fixed for both the
    conda build and the pip/PyPI (CUIKMOLMAKER_BUILD_AGAINST_PIP_RDKIT) build
    paths, resolving dynamic-linker/overlinking failures when loading RDKit, Boost,
    and libc++ dependencies on macOS (x86_64 and arm64).

Documentation

  • Added a platform / Python / RDKit build-compatibility matrix in
    docs/COMPATIBILITY.md.
  • Updated README.md and docs/TESTING.md.

Housekeeping

  • Removed the obsolete scripts/check_and_install_cuik_molmaker.py helper.

Full changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@sveccham sveccham released this 21 Jul 17:02

v0.3.0

Highlights

This release adds Condensed Graph of Reaction (CGR) featurization for chemical reactions — a native C++ path to accelerate Chemprop-style reaction property prediction (~9x faster than the Python implementation).

New Features

  • batch_reaction_featurizer — Featurize a batch of atom-mapped reactions into CGR atom and bond features. Returns 5 NumPy arrays:
    1. CGR atom features (total_num_atoms, cgr_atom_feature_dim) — feature dim doubled (reactant + product)
    2. CGR bond features (total_num_directed_edges, cgr_bond_feature_dim)
    3. Edge index in COO format (2, total_num_directed_edges)
    4. Reverse edge index (total_num_directed_edges,)
    5. Associate node index mapping each node to its reaction (total_num_atoms,)
  • All 6 reaction modes supported: REAC_DIFF (default), REAC_PROD, PROD_DIFF, and their _BALANCE variants.
  • reaction_mode_to_int(name) — Convert a reaction mode name (e.g. "REAC_DIFF") to its integer enum value; raises on an unknown name.
  • keep_h / add_h support for reactions, mirroring the molecule featurizers.

Documentation

  • New docs/USAGE.md section covering CGR reaction featurization, including atom-mapping requirements, mode selection, and keep_h/add_h semantics.
  • Documented return arrays and usage for batch_reaction_featurizer.
  • Attributed RDB7 reaction test data (CC BY 4.0) and third-party licenses.

Testing

  • Added regression tests for batch_reaction_featurizer (tests/python/test_reaction_features.py).
  • Reaction goldens are generated from Chemprop (not cuik-molmaker) to validate correctness against the reference implementation.
  • RDB7 sample (sample_rxns_100.csv) is reproducible from Zenodo; goldens cover all mode × feature-set combinations (ORGANIC / RIGR / V1 / V2).

Improvements & Refactors

  • Use std::span for single-bond and num-only feature buffers.
  • Use flat vectors with a sentinel for reactant↔product (r2p/p2r) atom maps (perf).
  • Designated initializers and an explicit ring-info guard in CGR parsing.
  • Hardened mode handling: invalid/UNKNOWN mode ints are rejected so a typo can't silently produce bad features.

Build / Chore

  • Added .bumpversion.cfg for version management; bumped to 0.3.0.
  • Updated CMakeLists.txt, setup.py, and .gitignore.

Notes / Caveats

  • Reactant and product SMILES must be atom-mapped (matching :N map numbers on both sides). Providing a correct, unique mapping is the caller's responsibility — duplicate map numbers on a side are not validated.
  • add_h adds unmapped hydrogens via RDKit AddHs, which become reactant-/product-only phantom atoms in a CGR and are usually not desired.

Full changelog: v0.2.1...v0.3.0

v0.3.0rc1

v0.3.0rc1 Pre-release
Pre-release

Choose a tag to compare

@sveccham sveccham released this 20 Jul 22:04

v0.3.0rc1

Highlights

This release adds Condensed Graph of Reaction (CGR) featurization for chemical reactions — a native C++ path to accelerate Chemprop-style reaction property prediction (~9x faster than the Python implementation).

New Features

  • batch_reaction_featurizer — Featurize a batch of atom-mapped reactions into CGR atom and bond features. Returns 5 NumPy arrays:
    1. CGR atom features (total_num_atoms, cgr_atom_feature_dim) — feature dim doubled (reactant + product)
    2. CGR bond features (total_num_directed_edges, cgr_bond_feature_dim)
    3. Edge index in COO format (2, total_num_directed_edges)
    4. Reverse edge index (total_num_directed_edges,)
    5. Associate node index mapping each node to its reaction (total_num_atoms,)
  • All 6 reaction modes supported: REAC_DIFF (default), REAC_PROD, PROD_DIFF, and their _BALANCE variants.
  • reaction_mode_to_int(name) — Convert a reaction mode name (e.g. "REAC_DIFF") to its integer enum value; raises on an unknown name.
  • keep_h / add_h support for reactions, mirroring the molecule featurizers.

Documentation

  • New docs/USAGE.md section covering CGR reaction featurization, including atom-mapping requirements, mode selection, and keep_h/add_h semantics.
  • Documented return arrays and usage for batch_reaction_featurizer.
  • Attributed RDB7 reaction test data (CC BY 4.0) and third-party licenses.

Testing

  • Added regression tests for batch_reaction_featurizer (tests/python/test_reaction_features.py).
  • Reaction goldens are generated from Chemprop (not cuik-molmaker) to validate correctness against the reference implementation.
  • RDB7 sample (sample_rxns_100.csv) is reproducible from Zenodo; goldens cover all mode × feature-set combinations (ORGANIC / RIGR / V1 / V2).

Build / Chore

  • Added .bumpversion.cfg for version management; bumped to 0.3.0rc1.
  • Updated CMakeLists.txt, setup.py, and .gitignore.

Notes / Caveats

  • Reactant and product SMILES must be atom-mapped (matching :N map numbers on both sides). Providing a correct, unique mapping is the caller's responsibility — duplicate map numbers on a side are not validated.
  • add_h adds unmapped hydrogens via RDKit AddHs, which become reactant-/product-only phantom atoms in a CGR and are usually not desired.

Full changelog: v0.2.1...v0.3.0rc1

v0.2.1

Choose a tag to compare

@sveccham sveccham released this 11 Jun 23:23

v0.2.1 release

v0.2

Choose a tag to compare

@sveccham sveccham released this 05 Nov 00:27

Release version 0.2. Major feature updates:

  • Enabled building cuik-molmaker against RDKit from PyPI
  • Removed dependency on PyTorch and simplified support matrix
  • Enabled Multi-OS support: Windows, MacOS, and Linux
  • Enabled conda-forge support

v0.1

Choose a tag to compare

@sveccham sveccham released this 09 Oct 21:26

cuik-molmaker release v0.1
This is the first release of cuik-molmaker. This release include the following features:

  1. Atom features and bond features in implemented in C++
  2. Single and batched featurization of SMILES strings
  3. Ability to control how SMILES is parsed and how features are rendered