Molecular ML with diverse featurizers and pre-built datasets. Use for property prediction (ADMET, toxicity) with traditional ML or GNNs when you want extensive featurization options and MoleculeNet benchmarks. Best for quick experiments with pre-trained models, diverse molecular representations. For graph-first PyTorch workflows use torchdrug; for benchmark datasets use pytdc.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/deepchem/SKILL.mdDeepChem is a comprehensive Python library for applying machine learning to chemistry, materials science, and biology. Enable molecular property prediction, drug discovery, materials design, and biomolecule analysis through specialized neural networks, molecular featurization methods, and pretrained models.
Version note: Examples target deepchem 2.8.0 (PyPI stable, Apr 2024). Requires Python 3.7–3.11 (<3.12 on PyPI). Core utilities (loaders, featurizers, MoleculeNet) work without a DL backend; GNN and transformer models need the matching extra (torch, tensorflow, or jax). Install the backend framework first when using GPU builds.
This skill should be used when:
Eight capability areas, each with worked code, are in references/core_capabilities.md:
NumpyDataset / DiskDataset.Three end-to-end workflows are in references/typical_workflows.md.
This skill includes three production-ready scripts in the scripts/ directory:
predict_solubility.pyTrain and evaluate solubility prediction models. Works with Delaney benchmark or custom CSV data.
# Use Delaney benchmark
python scripts/predict_solubility.py
# Use custom data
python scripts/predict_solubility.py \
--data my_data.csv \
--smiles-col smiles \
--target-col solubility \
--predict "CCO" "c1ccccc1"graph_neural_network.pyTrain various graph neural network architectures on molecular data.
# Train GCN on Tox21
python scripts/graph_neural_network.py --model gcn --dataset tox21
# Train AttentiveFP on custom data
python scripts/graph_neural_network.py \
--model attentivefp \
--data molecules.csv \
--task-type regression \
--targets activity \
--epochs 100transfer_learning.pyFine-tune pretrained models (ChemBERTa, GROVER, MolFormer) on molecular property prediction tasks.
# Fine-tune ChemBERTa on BBBP
python scripts/transfer_learning.py --model chemberta --dataset bbbp
# Fine-tune GROVER on custom data
python scripts/transfer_learning.py \
--model grover \
--data small_dataset.csv \
--target activity \
--task-type classification \
--epochs 20# GOOD: Prevents data leakage
splitter = dc.splits.ScaffoldSplitter()
train, test = splitter.train_test_split(dataset)
# BAD: Similar molecules in train and test
splitter = dc.splits.RandomSplitter()
train, test = splitter.train_test_split(dataset)transformers = [
dc.trans.NormalizationTransformer(
transform_y=True, # Also normalize target values
dataset=train
)
]
for transformer in transformers:
train = transformer.transform(train)
test = transformer.transform(test)# Option 1: Balancing transformer
transformer = dc.trans.BalancingTransformer(dataset=train)
train = transformer.transform(train)
# Option 2: Use balanced metrics
metric = dc.metrics.Metric(dc.metrics.balanced_accuracy_score)# Use DiskDataset for large datasets
dataset = dc.data.DiskDataset.from_numpy(X, y, w, ids)
# Use smaller batch sizes
model = dc.models.GCNModel(batch_size=32) # Instead of 128Problem: Using random splitting allows similar molecules in train/test sets.
Solution: Always use ScaffoldSplitter for molecular datasets.
Problem: Graph neural networks perform worse than simple fingerprints. Solutions:
Problem: Model memorizes training data. Solutions:
Problem: No module named 'torch' / No module named 'tensorflow' warnings, or model classes fail to import.
Solution: DeepChem loads lazily — install the backend that matches your model, then add the matching extra:
uv pip install deepchem # loaders, featurizers, MoleculeNet only
uv pip install 'deepchem[torch]' # GCN, GAT, AttentiveFP, HuggingFaceModel, GroverModel
uv pip install 'deepchem[tensorflow]' # legacy Keras models
uv pip install 'deepchem[jax]' # Haiku/JAX modelsInstall PyTorch or TensorFlow with the correct CUDA build before the extra when using GPUs. Quote extras in zsh: 'deepchem[torch]'.
Conda + PyTorch users: If import deepchem fails with undefined symbol: iJIT_NotifyEvent, pin MKL below 2025 (conda install "mkl<2025") — PyTorch wheels may be incompatible with MKL 2025.0.0.
This skill includes comprehensive reference documentation:
references/api_reference.mdComplete API documentation including:
When to reference: Search this file when you need specific API details, parameter names, or want to explore available options.
references/workflows.mdEight detailed end-to-end workflows:
When to reference: Use these workflows as templates for implementing complete solutions.
Core package (data loaders, featurizers, MoleculeNet, scikit-learn wrappers):
uv pip install deepchemAdd the extra that matches your model backend (install PyTorch/TensorFlow/JAX first for GPU builds):
uv pip install 'deepchem[torch]' # GNNs, TorchModel, HuggingFaceModel, GroverModel
uv pip install 'deepchem[tensorflow]' # Keras/TensorFlow models
uv pip install 'deepchem[jax]' # JAX/Haiku models
uv pip install 'deepchem[dqc]' # Differentiable quantum chemistry (torch + xitorch)Nightly builds: uv pip install --pre deepchem (same extras apply with --pre).
See installation guide and soft requirements for optional dependencies per model class.
b2a92ba
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.