Skip to main content

cuik-molmaker

cuik-molmaker is a specialized package designed for molecular featurization, converting chemical structures into formats that can be effectively used as inputs for deep learning models, particularly graph neural networks (GNNs).

cuik-molmaker is built as a hybrid package, leveraging both C++ and Python to deliver high performance and ease of use. The core featurization logic is implemented in C++ for maximum speed and efficiency, while the Python interface provides a user-friendly API that integrates seamlessly with modern GNN training and inference workflows. This design combines the computational power of C++ with the flexibility and accessibility of Python, making cuik-molmaker both fast and intuitive for researchers and developers. As cuik-molmaker interfaces with the C++ API of rdkit, the produced features are expected to be identical to those produced by rdkit.

Quick start

Conda installation

conda install -c conda-forge cuik_molmaker

Pip installation

python -m pip install cuik-molmaker-pin==<RDKit version>

Pip installation from NVIDIA PyPI

python -m pip install cuik-molmaker --extra-index-url https://pypi.nvidia.com/rdkit-2026.03.4/

For more information on the available versions of cuik-molmaker compatible with different versions of rdkit, refer to the COMPATIBILITY.md.

Usage: Computing atom and bond features

import cuik_molmaker
import numpy as np

# List all available atom onehot features
print(cuik_molmaker.list_all_atom_onehot_features())

# Compute atom (atomic number, number of hydrogen, chirality) and bond (bond type) features for acetic acid
acetic_acid_smiles = "CC(=O)O"

# Get atom onehot feature names as NumPy array
atom_onehot_feature_array = cuik_molmaker.atom_onehot_feature_names_to_array(['atomic-number', 'num-hydrogens', 'chirality'])

# Get bond feature names as NumPy array
bond_feature_array = cuik_molmaker.bond_feature_names_to_array(['bond-type-onehot'])

# Set parameters for featurization
explicit_h, offset_carbon, duplicate_edges, add_self_loop = False, False, True, False

# Featurize
all_features =cuik_molmaker.mol_featurizer(acetic_acid_smiles, atom_onehot_feature_array, np.array([]), bond_feature_array, explicit_h, offset_carbon, duplicate_edges, add_self_loop)

# This returns a list of NumPy arrays.
# First index contains atom features
print(all_features[0].shape)

# Second index contains bond features
print(all_features[1].shape)

# Third index contains edge indices in COO format
print(all_features[2].shape)

Usage: Computing molecular descriptors

from cuik_molmaker.mol_features import MoleculeFeaturizer

featurizer = MoleculeFeaturizer(molecular_descriptor_type="rdkit2D", rdkit2D_normalization_type="fast")

smiles_list = ["CC(=O)OC1=CC=CC=C1C(=O)O", # aspirin
               "CN(C)CCOC(C1=CC=CC=C1)C1=CC=CC=C1", # diphenhydramine
]
rdkit2D_descriptors = featurizer.featurize(smiles_list)

# Print the shape of the descriptors
print(rdkit2D_descriptors.shape)

Source of acceleration

The hybrid C++/Python design of cuik-molmaker allows for the core featurization logic to be implemented in C++ and reduces the python overhead. Another source of acceleration is the creation of features for the entire minibatch of SMILES at once, which saves the overhead of creating memory allocation and concatenation.

Additional Documentation

File Description
USAGE.md Examples and instructions for using cuik-molmaker to featurize molecules including batching.
FEATURES.md Detailed list and explanation of all atom and bond features available for featurization.
BUILD.md Step-by-step instructions for building cuik-molmaker from source, including prerequisites and troubleshooting.
TESTING.md Guidelines and commands for running the test suite to verify installation and functionality.
COMPATIBILITY.md Published package builds by release channel, OS, and Python version.

Hardware Requirements

cuik-molmaker is designed to run on any CPU-based system.

Adoption

cuik-molmaker has currently been integrated into the following projects:

  • Chemprop: cuik-molmaker is available as a featurization method in Chemprop. It can be enabled by setting --use-cuikmolmaker-featurization flag in the command line with all use cases: training, prediction, fingerprinting, and hyperparameter optimization.
  • KERMT: cuik-molmaker is available for featurizing atoms, bonds, and molecules in KERMT. Atom and bond featurization can be enabled by setting --use_cuikmolmaker_featurization flag and molecule featurization can be enabled by setting --features_generator=rdkit_2d_normalized_cuik_molmaker.

Metadata

Release files for cuik-molmaker-pin 2026.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cuik-molmaker-pin 2026.3.6
File
cuik_molmaker_pin-2026.3.6-py314-none-win_amd64.whl Python 3.14 none Windows x86-64 Details
cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_x86_64.whl Python 3.14 none Linux glibc 2.24+ x86-64 Details
cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_aarch64.whl Python 3.14 none Linux glibc 2.24+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py314-none-macosx_11_0_arm64.whl Python 3.14 none macOS 11.0+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py313-none-win_amd64.whl Python 3.13 none Windows x86-64 Details
cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_x86_64.whl Python 3.13 none Linux glibc 2.24+ x86-64 Details
cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_aarch64.whl Python 3.13 none Linux glibc 2.24+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py313-none-macosx_11_0_arm64.whl Python 3.13 none macOS 11.0+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py312-none-win_amd64.whl Python 3.12 none Windows x86-64 Details
cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_x86_64.whl Python 3.12 none Linux glibc 2.24+ x86-64 Details
cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_aarch64.whl Python 3.12 none Linux glibc 2.24+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py312-none-macosx_11_0_arm64.whl Python 3.12 none macOS 11.0+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py311-none-win_amd64.whl Python 3.11 none Windows x86-64 Details
cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_x86_64.whl Python 3.11 none Linux glibc 2.24+ x86-64 Details
cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_aarch64.whl Python 3.11 none Linux glibc 2.24+ ARM64 Details
cuik_molmaker_pin-2026.3.6-py311-none-macosx_11_0_arm64.whl Python 3.11 none macOS 11.0+ ARM64 Details

Total release size: 4.8 MB

Release files / cuik_molmaker_pin-2026.3.6-py314-none-win_amd64.whl

Download URL cuik_molmaker_pin-2026.3.6-py314-none-win_amd64.whl
Size 259.0 kB
Tags Python 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b6654f2d65a0cd63affb3fb5a92feeb221e0c8fbd9b2bdbe8a7029381faf4b37
BLAKE2b-256 checksum
How to use checksums
4b8c85750652f597b42f0ceaf7a4f627b9c8cf633843128bfd6cc94ed67c111f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_x86_64.whl

Download URL cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_x86_64.whl
Size 330.0 kB
Tags Linux glibc 2.24+ x86-64 Python 3.14
SHA-256 checksum
How to use checksums
e9e3b68843e94dd1620e4dcc50d413c9f070a46d1885965379048d31238fdc1c
BLAKE2b-256 checksum
How to use checksums
84745a8dbd9b02553a023b5fb3e9aa188beb0333fd124bbd618851ee041f0306
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_aarch64.whl

Download URL cuik_molmaker_pin-2026.3.6-py314-none-manylinux_2_24_aarch64.whl
Size 319.1 kB
Tags Linux glibc 2.24+ ARM64 Python 3.14
SHA-256 checksum
How to use checksums
5034b5258e599d1960dc4248328dc228c5d076b9e1959259d142069ee6c2c752
BLAKE2b-256 checksum
How to use checksums
fc532faae481406b05319b4e16e0fb6391905ae8e560c808fc68ce01f310e819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py314-none-macosx_11_0_arm64.whl

Download URL cuik_molmaker_pin-2026.3.6-py314-none-macosx_11_0_arm64.whl
Size 286.5 kB
Tags Python 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
93a1b0b9431393e20edeb86b8902278763cb861d144249f7c8ca268ce5a420be
BLAKE2b-256 checksum
How to use checksums
e97bfb43f80ea06896de4a1f9efda5adbde41330cabb51c38aca049477189915
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py313-none-win_amd64.whl

Download URL cuik_molmaker_pin-2026.3.6-py313-none-win_amd64.whl
Size 258.9 kB
Tags Python 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2489421bcb1656668b454756c8918a9ce9d59067aafc3906a7cfb5cda77ee7e9
BLAKE2b-256 checksum
How to use checksums
50bb15333cb39c27c3ee98603ededcea42a794f4f0a3a5e6f0bde03574b49080
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_x86_64.whl

Download URL cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_x86_64.whl
Size 330.0 kB
Tags Linux glibc 2.24+ x86-64 Python 3.13
SHA-256 checksum
How to use checksums
e18a13211ccf180f7d77f268975ffc4d055d44d61e650c34604c9bfac881059e
BLAKE2b-256 checksum
How to use checksums
db73fc285ee7423cc85ba02d71d153b3a6559f34efaa67658654ff2109aa9810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_aarch64.whl

Download URL cuik_molmaker_pin-2026.3.6-py313-none-manylinux_2_24_aarch64.whl
Size 319.0 kB
Tags Linux glibc 2.24+ ARM64 Python 3.13
SHA-256 checksum
How to use checksums
f7eb2d804f009737c3c9fdbbae837ca30ca6c4a81dc6b00c27fce391b43b9e02
BLAKE2b-256 checksum
How to use checksums
71d91d0495b21ce96c431836c37ad7a90236e6f88a2f5fd30d0084239d67b7ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py313-none-macosx_11_0_arm64.whl

Download URL cuik_molmaker_pin-2026.3.6-py313-none-macosx_11_0_arm64.whl
Size 286.5 kB
Tags Python 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f1fce7833c91ba845593c2a76901179990771dcbd3cbde101fe89c471f976b68
BLAKE2b-256 checksum
How to use checksums
71f601c5e8479633e83c41f87bcc94ed1a62c41d9c7964e67df1c38447184210
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py312-none-win_amd64.whl

Download URL cuik_molmaker_pin-2026.3.6-py312-none-win_amd64.whl
Size 258.8 kB
Tags Python 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
1b2fcb9e262855672495b3b20bee294ac31d6dcd6255c4e406f8cf969fdeb98f
BLAKE2b-256 checksum
How to use checksums
463a258b8b150683c90719716b24a7be17e82d30a9e9691d22391a8d2afcd358
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_x86_64.whl

Download URL cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_x86_64.whl
Size 328.0 kB
Tags Linux glibc 2.24+ x86-64 Python 3.12
SHA-256 checksum
How to use checksums
36c53c6c1bd45bf301650634fba479addc7bb1c54435054a0d341abba5f5d85b
BLAKE2b-256 checksum
How to use checksums
660907227e64cc9a15253e3b9dbe07df200271d63f54480c633f5c8d355e2640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_aarch64.whl

Download URL cuik_molmaker_pin-2026.3.6-py312-none-manylinux_2_24_aarch64.whl
Size 318.3 kB
Tags Linux glibc 2.24+ ARM64 Python 3.12
SHA-256 checksum
How to use checksums
226d04da65c2c23d5d6aad70591a196ffbedfc8ba2268d9be0d7795d37386e48
BLAKE2b-256 checksum
How to use checksums
958fa1a51bc5d37eab1c1c20db67ad68a13f08bb41089be29e61e5900f1e8662
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py312-none-macosx_11_0_arm64.whl

Download URL cuik_molmaker_pin-2026.3.6-py312-none-macosx_11_0_arm64.whl
Size 286.1 kB
Tags Python 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5ecc2f15bb7e676f7199a9dff9b4ca7c2a33718becca4a562b9a3c7dfa972fb7
BLAKE2b-256 checksum
How to use checksums
172c140be7aa9e610b03b83a81c13f887e8bee9f5f1bb663f3f2fcf28f5388a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py311-none-win_amd64.whl

Download URL cuik_molmaker_pin-2026.3.6-py311-none-win_amd64.whl
Size 257.8 kB
Tags Python 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5553af83437d3af3c9a70af009473f6de71c140410624827c571f18b463f2562
BLAKE2b-256 checksum
How to use checksums
711993d069cd402bbbffed5a7d7dcd17ae5c4e48d4ea46347ad5c7236913d109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_x86_64.whl

Download URL cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_x86_64.whl
Size 329.0 kB
Tags Linux glibc 2.24+ x86-64 Python 3.11
SHA-256 checksum
How to use checksums
d333eca7e280b928ed26284c57c5b4bd2d30d29e1a6c57b2f552fef33126c990
BLAKE2b-256 checksum
How to use checksums
046a965b3f4356bcfc2fda0b57e558c2b332e076a16e0b890465cf3ebf051c80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_aarch64.whl

Download URL cuik_molmaker_pin-2026.3.6-py311-none-manylinux_2_24_aarch64.whl
Size 318.9 kB
Tags Linux glibc 2.24+ ARM64 Python 3.11
SHA-256 checksum
How to use checksums
6cefab9909a5207262da2852652e5ac97b5ccc31c96395f3a620cb6f91fdcef7
BLAKE2b-256 checksum
How to use checksums
2c0021a9dda622443a767dab9e857a328d0a8c2d0219434cc6ccb7d74a060e2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / cuik_molmaker_pin-2026.3.6-py311-none-macosx_11_0_arm64.whl

Download URL cuik_molmaker_pin-2026.3.6-py311-none-macosx_11_0_arm64.whl
Size 286.8 kB
Tags Python 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b59a60cfee9dfe2dba0e0a9fe907cafc774643ed7e31678eddade3b5a73aa887
BLAKE2b-256 checksum
How to use checksums
b6bc11e4a7468bab93512e650111ae444dc9b059a32929424f60b9c22193d4b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page