← Về thư mục
📄 / / profiles / r-and-d / raw_evidence / scientific-agent-skills / skills / deepchem / references / api_reference.md

DeepChem API Reference

This document provides a comprehensive reference for DeepChem's core APIs, organized by functionality.

Data Handling

Data Loaders

File Format Loaders

Biological Data Loaders

Specialized Loaders

Dataset Classes

Data Splitters

General Splitters

Molecule-Specific Splitters

Best Practice: For drug discovery tasks, use ScaffoldSplitter to prevent overfitting on similar molecular structures.

Transformers

Normalization

Task-Specific

Molecular Featurizers

Graph-Based Featurizers

Use these with graph neural networks (GCNs, MPNNs, etc.):

Fingerprint-Based Featurizers

Use these with traditional ML (Random Forest, SVM, XGBoost):

Descriptor Featurizers

Calculate molecular properties directly:

Sequence-Based Featurizers

For recurrent networks and transformers:

Selection Guide

Use Case Recommended Featurizer Model Type
Graph neural networks ConvMolFeaturizer, MolGraphConvFeaturizer GCN, MPNN, GAT
Traditional ML CircularFingerprint, RDKitDescriptors Random Forest, XGBoost, SVM
Deep learning (non-graph) CircularFingerprint, Mol2VecFingerprint Dense networks, CNN
Sequence models SmilesToSeq LSTM, GRU, Transformer
3D molecular structures CoulombMatrix Specialized 3D models
Quick baseline RDKitDescriptors Linear, Ridge, Lasso

Models

Install note (2.8.0): PyPI extras are torch, tensorflow, jax, and dqc — there is no [all] extra. Install PyTorch/TensorFlow/JAX before the matching uv pip install 'deepchem[torch]' (quote brackets in zsh).

Scikit-Learn Integration

Gradient Boosting

PyTorch Models

Molecular Property Prediction

Materials Science

Generative Models

Physics-Informed Models

Computer Vision

Hugging Face Models

Model Selection Guide

Task Recommended Model Featurizer
Small dataset (<1000 samples) SklearnModel (Random Forest) CircularFingerprint
Medium dataset (1K-100K) GBDTModel or MultitaskRegressor CircularFingerprint or ConvMolFeaturizer
Large dataset (>100K) GCNModel, AttentiveFPModel, or DMPNN MolGraphConvFeaturizer
Transfer learning GroverModel, Chemberta, MoLFormer Model-specific
Materials properties CGCNNModel, MEGNetModel Structure-based
Molecule generation BasicMolGANModel, LSTMGenerator SmilesToSeq
Protein sequences ProtBERT Sequence-based

MoleculeNet Datasets

Quick access to 30+ benchmark datasets via dc.molnet.load_*() functions.

Classification Datasets

Regression Datasets

Protein-Ligand Binding

Materials Science

Chemical Reactions

Usage Pattern

tasks, datasets, transformers = dc.molnet.load_bbbp(
    featurizer='GraphConv',  # or 'ECFP', 'GraphConv', 'Weave', etc.
    splitter='scaffold',      # or 'random', 'stratified', etc.
    reload=False              # set True to skip caching
)
train, valid, test = datasets

Metrics

Common evaluation metrics available in dc.metrics:

Classification Metrics

Regression Metrics

Multi-Task Metrics

Most metrics support multi-task evaluation by averaging over tasks.

Training Pattern

Standard DeepChem workflow:

# 1. Load data
loader = dc.data.CSVLoader(tasks=['task1'], feature_field='smiles',
                           featurizer=dc.feat.CircularFingerprint())
dataset = loader.create_dataset('data.csv')

# 2. Split data
splitter = dc.splits.ScaffoldSplitter()
train, valid, test = splitter.train_valid_test_split(dataset)

# 3. Transform data (optional)
transformers = [dc.trans.NormalizationTransformer(dataset=train)]
for transformer in transformers:
    train = transformer.transform(train)
    valid = transformer.transform(valid)
    test = transformer.transform(test)

# 4. Create and train model
model = dc.models.MultitaskRegressor(n_tasks=1, n_features=2048, layer_sizes=[1000])
model.fit(train, nb_epoch=50)

# 5. Evaluate
metric = dc.metrics.Metric(dc.metrics.r2_score)
train_score = model.evaluate(train, [metric])
test_score = model.evaluate(test, [metric])

Common Patterns

Pattern 1: Quick Baseline with MoleculeNet

tasks, datasets, transformers = dc.molnet.load_tox21(featurizer='ECFP')
train, valid, test = datasets
model = dc.models.MultitaskClassifier(n_tasks=len(tasks), n_features=1024)
model.fit(train)

Pattern 2: Custom Data with Graph Networks

featurizer = dc.feat.MolGraphConvFeaturizer()
loader = dc.data.CSVLoader(tasks=['activity'], feature_field='smiles',
                           featurizer=featurizer)
dataset = loader.create_dataset('my_data.csv')
train, test = dc.splits.RandomSplitter().train_test_split(dataset)
model = dc.models.GCNModel(mode='classification', n_tasks=1)
model.fit(train)

Pattern 3: Transfer Learning with Pretrained Models

model = dc.models.GroverModel(task='classification', n_tasks=1)
model.fit(train_dataset)
predictions = model.predict(test_dataset)