DeepChem 是一个用于将机器学习应用于化学、材料科学和生物学的综合性 Python 库,支持分子性质预测、药物发现、材料设计和生物分子分析。
用途
该技能适用于以下场景:加载和处理分子数据(SMILES 字符串、SDF 文件、蛋白质序列);预测分子性质(溶解度、毒性、结合亲和力、ADMET 性质);在化学/生物数据集上训练模型;使用 MoleculeNet 基准数据集(Tox21、BBBP、Delaney 等);将分子转换为机器学习就绪的特征(指纹、图表示、描述符);实现分子图神经网络(GCN、GAT、MPNN、AttentiveFP);使用预训练模型(ChemBERTa、GROVER、MolFormer)进行迁移学习;预测晶体/材料性质(带隙、形成能);分析蛋白质或 DNA 序列。
主要能力
核心能力分为八个方面:分子数据加载与处理(加载器、NumpyDataset / DiskDataset);分子特征化(环形指纹、图卷积、描述符);数据划分(随机、骨架、分层、Butina 划分,其中骨架划分是分子的诚实默认选择);模型选择与训练;MoleculeNet 基准(加载标准数据集及其已发布划分);迁移学习(预训练与微调);模型评估(适用于回归和分类任务的指标);进行预测(将训练好的模型应用于新分子)。
使用方式
安装核心包(数据加载器、特征化器、MoleculeNet、scikit-learn 封装): uv pip install deepchem
根据模型后端添加对应扩展(GPU 构建需先安装 PyTorch/TensorFlow/JAX): uv pip install 'deepchem[torch]' # GNN、TorchModel、HuggingFaceModel、GroverModel uv pip install 'deepchem[tensorflow]' # Keras/TensorFlow 模型 uv pip install 'deepchem[jax]' # JAX/Haiku 模型 uv pip install 'deepchem[dqc]' # 可微分量子化学(torch + xitorch)
每日构建:uv pip install --pre deepchem(同样适用 --pre 扩展)。
该技能包含三个生产就绪脚本:predict_solubility.py(训练和评估溶解度预测模型,支持 Delaney 基准或自定义 CSV 数据)、graph_neural_network.py(在分子数据上训练各种图神经网络架构)、transfer_learning.py(在分子性质预测任务上微调预训练模型 ChemBERTa、GROVER、MolFormer)。
常见模式与最佳实践包括:始终对分子使用骨架划分以防止数据泄漏;归一化特征和目标;从简单模型开始再扩展(随机森林 + 环形指纹作为快速基线,样本超过 5K 考虑深度学习,超过 10K 考虑 GNN,小数据集或新骨架使用迁移学习);处理不平衡数据(平衡转换器或平衡指标);避免内存问题(大数据集使用 DiskDataset,减小批次大小)。
适用场景与限制
版本说明:示例针对 deepchem 2.8.0(PyPI 稳定版,2024 年 4 月)。要求 Python 3.7–3.11(PyPI 上 <3.12)。核心工具(加载器、特征化器、MoleculeNet)无需深度学习后端即可工作;GNN 和 Transformer 模型需要匹配的扩展(torch、tensorflow 或 jax)。使用 GPU 构建时先安装后端框架。
常见陷阱包括:药物发现中的数据泄漏(应使用 ScaffoldSplitter);GNN 表现不如指纹(需确保数据集足够大、增加训练轮数、尝试不同架构或使用预训练模型);小数据集过拟合(使用更强正则化、更简单模型、迁移学习或收集更多数据);导入错误(DeepChem 延迟加载,需安装匹配模型的后端并添加对应扩展)。Conda + PyTorch 用户若遇到 undefined symbol: iJIT_NotifyEvent,可将 MKL 固定在 2025 以下(conda install "mkl<2025")。
参考文档包括 references/api_reference.md(完整 API 文档,含所有数据加载器、数据集类、特征化器目录、50+ 模型目录、MoleculeNet 数据集描述、指标与评估函数、常见代码模式)和 references/workflows.md(八个详细端到端工作流:从 SMILES 预测分子性质、使用 MoleculeNet 基准、超参数优化、迁移学习、使用 GAN 进行分子生成、材料性质预测、蛋白质序列分析、自定义模型集成)。
官方文档:https://deepchem.readthedocs.io/ ;GitHub 仓库:https://github.com/deepchem/deepchem ;教程:https://deepchem.readthedocs.io/en/latest/get_started/tutorials.html ;论文:"MoleculeNet: A Benchmark for Molecular Machine Learning"。
操作程序要求:检查环境并确认工具包版本和输入格式,计算前对分子进行净化;从数据或用户处确认格式、标识符和参数,不猜测任何影响结果的值;先运行小版本(处理几个分子或一个目标)并检查输出;使用上述说明和参考执行完整任务;验证结果(检查无效结构、单位一致性、预测模型的适用域);报告运行内容(版本、命令、参数)、已检查内容和仍不确定的内容。若分子解析或净化失败,报告并说明原因跳过,绝不静默丢弃或更改结构;若安装版本中缺少某函数、标志或端点,查阅已安装版本自身的文档并告知用户,绝不虚构 API;若必需输入、标识符或参数不明确,询问用户或在运行前明确说明假设。完整性规则:绝不捏造结果、参数、标识符、引用或统计数据;计算预测是假设而非实验结果,应如此标注;版本特定细节可能已过时,请对照已安装版本的官方文档确认;在涉及花钱、消耗共享 GPU 或云配额、触及个人或患者数据或不可撤销的操作前先询问。