DeepChem 化学与材料机器学习
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cn-deepchem。
技能介绍
要解决什么问题
在药物发现、材料筛选或生物分子分析里,你往往要从 SMILES、晶体结构或蛋白质序列出发,预测溶解度、毒性、结合能等属性。通用 scikit-learn 流程缺少分子表示与切分约定,随机 train/test 切分还会让结构相似的分子同时出现在两侧,基准结果也难以复现。
技能如何组织工作流
本技能围绕 DeepChem 2.8.0(Python 3.7–3.11)梳理端到端用法,而不是替代官方文档:
- 特征化:从经典 ECFP、RDKit 描述符到图特征化器(
MolGraphConvFeaturizer、DMPNNFeaturizer),以及预训练路线上的GroverFeaturizer。 - 数据切分:药物相关任务强调用
ScaffoldSplitter按分子骨架切分,避免结构泄漏;另有ButinaSplitter、MaxMinSplitter等可选策略。 - 模型选择:小数据或指纹基线可走 Random Forest / XGBoost;样本量上来再试 GCN、AttentiveFP、DMPNN;小样本迁移可用 ChemBERTa、GROVER、MolFormer;材料侧常见 CGCNN、MEGNet,序列侧可用 ProtBERT。
- MoleculeNet:通过
load_tox21()、load_delaney()、load_qm9()等加载器快速接入 30+ 标准化基准及固定切分。
技能内 references/api_reference.md 覆盖加载器、特征化器与 50+ 模型目录;references/workflows.md 给出从 SMILES 预测、基准复现、超参搜索、迁移学习到材料/蛋白等八条完整工作流模板。
适用边界与常见坑
- 后端依赖:DeepChem 对 PyTorch / TensorFlow 等是惰性加载;用 GNN 或预训练模型前需安装匹配 extra(GPU 环境应先装对应 CUDA 版 PyTorch/TensorFlow)。
- GNN 不如指纹:常见于数据量不足(通常建议 >10K)、训练轮数过少或架构不合适;可加长训练、换 AttentiveFP/DMPNN,或改用 GROVER 等预训练特征。
- 小数据集:优先更强正则、更简单模型或迁移学习,而不是堆大网络。
- Conda + PyTorch:若出现
undefined symbol: iJIT_NotifyEvent,可能与 MKL 2025 不兼容,需按文档固定mkl<2025。
使用场景
- 用 `ScaffoldSplitter` 切分自研化合物库,训练溶解度或毒性回归模型,避免相似骨架同时进入训练集与测试集
- 在 MoleculeNet 上复现 BBBP、Tox21 等分类基准,对比 ECFP+Random Forest 与 AttentiveFP/DMPNN 图模型表现
- 自有活性数据仅数千条时,用 ChemBERTa 或 GROVER 预训练特征做迁移学习,替代从零训练大 GNN
- 针对 perovskite 或 bandgap 等材料任务,用 CGCNN/MEGNet 从晶体结构预测形成能或带隙等属性
适合人员
- 药物发现项目里负责 ADMET/活性建模的计算化学或 ML 工程师,需要可复现切分与公开基准对照
- 材料或催化方向的研究员,要把 DFT/实验性质数据接到 DeepChem 的结构模型工作流里
- 研究生或青年研究员撰写 MoleculeNet 相关论文,需要按文档跑通特征化、切分与指标评估全流程
- 平台团队维护化合物/材料预测服务,要在小数据与 GNN、迁移学习方案之间做模型选型