DeepChem 示例套件(Example Suite)完全指南:从 API 示例、案例研究到教程 Notebook 的实战路径
DeepChem 示例套件Example Suite完全指南从 API 示例、案例研究到教程 Notebook 的实战路径【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem本指南围绕 DeepChem 仓库中 examples/README.md 所定义的示例套件展开系统梳理仓库中全部示例资源的三大分类API 示例、案例研究示例、教程 Notebook并结合源码与脚本说明每一类示例的用途、运行方式与底层实现。读完本文你将掌握如何借助示例套件快速上手 DeepChem、如何基于现成案例改造出适用于自己研究问题的模型流程以及如何用官方基准测试脚本横向比较不同模型在 MoleculeNet 数据集上的表现。示例套件概览三类资源如何分工DeepChem 的示例套件位于仓库根目录的 examples 下规模庞大且覆盖面广。官方在 examples/README.md 中将全部示例划分为三大类API 示例API Examples演示 DeepChem API 中你可能没想到还能这么用的小技巧聚焦于数据加载、特征化、数据集切分、编码器等细粒度能力案例研究示例Case Study Examples面向真实数据集如 Tox21、HIV、Delaney、MUV 等的端到端分析流程每个目录通常包含数据加载脚本、模型训练脚本与 README 说明教程 NotebookTutorial Notebooks以 IPython Notebook 形式提供的逐步走查覆盖分子机器学习、量子化学、生物信息学、材料科学等众多领域官方建议按教程 README 中排列的学习顺序从入门到熟练推进。三类示例互相配合API 示例解决某个组件怎么用的问题案例研究解决整个任务怎么跑的问题教程 Notebook 则解决整个领域怎么入门的问题。API 示例细粒度掌握 DeepChem 组件API 示例散落在 examples 下的多个目录中每个目录解决一个具体的 API 使用场景代码量小、可独立运行适合作为查阅组件用法的速查手册。数据加载CSV 与 SDF 的两种姿势examples/data_loading 目录集中展示了数据加载的多种方式pandas_csv.py 演示了不使用CSVLoader、直接以 pandas 方式加载数据的路径先用pd.read_csv(example.csv)读取原始表格再用dc.feat.CircularFingerprint(size16)对smiles列特征化最后组装成dc.data.NumpyDataset(Xfeatures, ydf[log-solubility], idsdf[Compound ID])。脚本还展示了反向转换——通过dataset.to_dataframe()把 DeepChem 数据集重新变回 DataFrame方便在两种数据结构之间自由切换。这种做法的价值在于当你的数据预处理逻辑需要 pandas 的灵活性如自定义过滤、合并多表时可以绕过DataLoader的手工流程。sdf_load.py 演示了从 SDF 分子结构文件加载数据使用dc.data.SDFLoader([LogP(RRCK)], featurizerfeaturizer, sanitizeTrue)读取 membrane_permeability.sdf其中第一个参数是 SDF 属性字段列表sanitizeTrue表示加载时对分子进行 RDKit 清洗。SDF 是药物发现中最常见的分子格式之一该示例是处理分子结构 属性标签类数据的直接入口。对应测试可在 deepchem/data/tests 中找到例如 test_csv_loader.py 与 test_sdf_loader.py它们验证了CSVLoader、SDFLoader在真实数据上的行为可作为深入理解加载器实现的起点。数据集切分掌握 DeepChem 的全套 Splitterexamples/splitters/README.md 是一份非常实用的 API 清单完整列出了当前可用的切分器Splitter及其导入路径。化学数据集的切分质量直接影响模型泛化评估的可信度DeepChem 提供了从随机切分到基于分子骨架、指纹聚类的多种策略from deepchem.splits.splitters import RandomGroupSplitter from deepchem.splits.splitters import RandomStratifiedSplitter from deepchem.splits.splitters import SingletaskStratifiedSplitter from deepchem.splits.splitters import MolecularWeightSplitter from deepchem.splits.splitters import MaxMinSplitter from deepchem.splits.splitters import RandomSplitter from deepchem.splits.splitters import IndexSplitter from deepchem.splits.splitters import IndiceSplitter from deepchem.splits.splitters import ClusterFps from deepchem.splits.splitters import ButinaSplitter from deepchem.splits.splitters import ScaffoldSplitter from deepchem.splits.splitters import FingerprintSplitter from deepchem.splits.splitters import SpecifiedSplitter from deepchem.splits.splitters import TimeSplitterPDBbind from deepchem.splits.task_splitter import TaskSplitter其中ScaffoldSplitter按分子骨架Bemis-Murcko scaffold划分能更好地模拟新骨架分子的分布外泛化场景ButinaSplitter与ClusterFps基于指纹相似性做聚类切分TimeSplitterPDBbind针对 PDBbind 数据集按时间顺序切分。完整的切分器实现位于 deepchem/splits/splitters.py对应测试位于 deepchem/splits/tests。配套的可运行示例包括 examples/splitters/random_split.py 与 examples/splitters/scaffold_split.py可直接在本地数据集上观察不同切分策略的效果。编码器示例分子编码与解码examples/encoders/encoder_example.py 演示了 DeepChem 自编码器组件的使用先用TensorflowMoleculeEncoder.zinc_encoder()获取基于 ZINC 字符集的编码器将 SMILES 经OneHotFeaturizer(zinc_charset)特征化后编码为潜在向量再用TensorflowMoleculeDecoder.zinc_decoder()解码回 one-hot 表示最后通过featurizer.untransform()还原为 SMILES 字符串。该示例对应的模型实现位于 contrib/autoencoder_models是理解分子生成与表示学习的入门素材。案例研究示例用真实数据集跑通端到端流程案例研究示例是示例套件的核心资产每个子目录聚焦一个公开数据集通常包含数据集加载脚本、模型脚本与 README形成数据 → 特征 → 切分 → 训练 → 评估的完整闭环。以下按代表性任务介绍。DelaneyESOL溶解度回归多模型横向对比的教科书examples/delaney/README.md 说明了该案例的研究对象Delaney 数据集包含 2874 条水溶性测量值来自 John S. Delaney 于 2004 年发表的 ESOL 论文。由于数据量小且是回归任务它常被用作各种技术对比的基准。该目录内置了五种模型的训练脚本可直接对比同一任务上的不同建模思路脚本模型特点delaney_DAG.pyDAGModel有向无环图模型README 明确提示训练与收敛非常慢delaney_MPNN.pyMPNNModel消息传递神经网络训练略慢但快于 DAGdelaney_weave.pyWeaveModelWeave 风格卷积融合原子与化学键特征delaney_chemception.pyChemCeption将分子渲染为图像用 Inception 变体做图像分类式训练delaney_textcnn.pyTextCNNModel把 SMILES 当作文本直接在字符串上训练卷积网络这种同一数据集、多种模型的组织方式让读者能直观体会不同分子表示图、文本、图像、指纹对结果的影响。特征化的底层支持可参考 deepchem/feat/molecule_featurizers 下的各类特征化器实现。生物活性与毒性任务从单任务到多任务案例研究示例覆盖了药物发现中最常见的几类生物活性预测任务examples/tox21Tox21 毒性数据12 个任务包含随机森林、逻辑回归、图卷积、Weave、DAG、IRV、Robust Multitask、PyTorch 等多种模型脚本如 tox21_torch.py、tox21_IRV.pyexamples/hivHIV 数据集内置 HIV.csv 与 IRV、TensorFlow 模型脚本examples/muv、examples/pcba大规模活性筛选数据集用于多任务学习与低数据量方法研究examples/clintox、examples/sider、examples/toxcast临床毒性与副作用预测examples/bace、examples/binding_pockets结合位点与 BACE 活性预测。以 examples/low_data 为例其中 datasets.py 展示了低数据量任务的加载方式例如load_tox21_ecfp用dc.feat.CircularFingerprint(size1024)特征化 datasets/tox21.csv.gz并用dc.trans.BalancingTransformer做类别平衡load_tox21_convmol则改用ConvMolFeaturizer生成图卷积所需的分子图表示。low_data 目录还配套了 one-shot 图卷积与随机森林的 K 折实验脚本muv_graph_conv_one_fold.py、tox_rf_K_fold.py展示少样本学习在活性预测中的应用。量子化学与材料/聚合物案例示例套件同样覆盖了量子化学领域examples/qm7、examples/qm8、examples/qm9 提供 DFT 能量与性质的回归案例内置 DTNN、MPNN、TensorFlow 与 sklearn 模型examples/hopv 聚焦有机光伏材料性质预测提供图卷积、Robust Multitask 等多种模型examples/membrane_permeability 则以 membrane_permeability.sdf 这类 SDF 数据为对象演示渗透性回归。聚合物方向的相关教程与实现见 examples/tutorials 中的 Polymers 分类及 deepchem/utils/poly_converters.py。官方基准测试一行命令横向比较模型与数据集案例研究示例之上仓库提供了两个面向整批数据集的基准测试脚本可直接生成可复现的对比结果。benchmark.py分类 回归全模型评测examples/benchmark.py 是官方基准入口内部通过dc.molnet.run_benchmark驱动 deepchem/molnet 的评测流水线。其命令行参数定义如下对应脚本中 argparse 部分-s切分方式可选index、random、scaffold、stratified-m模型分类侧支持tf、tf_robust、logreg、rf、irv、graphconv、xgb、dag、weave等回归侧支持tf_regression、tf_regression_ft、rf_regression、graphconvreg、xgb_regression、dtnn、dag_regression、weave_regression等-d数据集如bace_c、bace_r、bbbp、chembl、clearance、clintox、delaney、hiv、hopv、kaggle、lipo、muv、nci、pcba、pdbbind、ppb、qm7、qm7b、qm8、qm9、sampl、sider、tox21、toxcast-t是否在测试集上评估--seed随机种子默认 123。若不给任何参数脚本会使用内置默认组合切分默认[index, random, scaffold]模型默认涵盖tf、tf_robust、logreg、graphconv、irv、tf_regression、tf_regression_ft、graphconvreg、weave、weave_regression、dtnn数据集默认覆盖 19 个 MoleculeNet 数据集。执行逻辑为三层嵌套循环数据集 × 切分 × 模型每轮设置随机种子后调用dc.molnet.run_benchmark([dataset], model, splitsplit, testtest, seedseed)。典型用法# 在 tox21 上用随机切分评测图卷积模型 python examples/benchmark.py -d tox21 -s random -m graphconv # 在 delaney 上用 scaffold 切分评测回归模型并评估测试集 python examples/benchmark.py -d delaney -s scaffold -m tf_regression -tbenchmark_curve.py训练集规模对性能的影响examples/benchmark_curve.py 用于评估训练集比例变化对模型性能的影响默认按 0.1、0.2、…、0.9 的训练集占比将数据切分为训练集与验证集不使用测试集训练后在验证集上评估所有结果与训练集占比写入./results_frac_train_curve.csv。其命令行选项与benchmark.py一致内部复用了 deepchem/molnet/run_benchmark_models.py 的benchmark_classification/benchmark_regression、deepchem/molnet/run_benchmark.py 的load_dataset以及 deepchem/molnet/preset_hyper_parameters.py 的预设超参数hps。该脚本非常适合研究数据量增长曲线例如判断某个模型在小样本下是否值得使用。仓库还提供了完整的基准结果样例 examples/stable_results.csv可对照查看不同模型在多个数据集上的稳定指标作为自行实验的参考基线。教程 Notebook从入门到专业的系统学习路径教程是示例套件中信息密度最高、最适合新手上手的部分。examples/tutorials/README.md 说明了教程系列的设计初衷面向初学者、持续随新特性更新覆盖分子机器学习、量子化学、生物信息学、材料科学等广泛领域。教程按主题组织成多个学习序列DeepChem 入门序列共 20 讲从 The_Basic_Tools_of_the_Deep_Life_Sciences.ipynb 起步依次经过 Working_With_Datasets.ipynb、An_Introduction_To_MoleculeNet.ipynb、Molecular_Fingerprints.ipynb、Creating_Models_with_TensorFlow_and_PyTorch.ipynb、Introduction_to_Graph_Convolutions.ipynb、Working_With_Splitters.ipynb、Putting_Multitask_Learning_to_Work.ipynb 等最后以 PytorchLightning_Integration.ipynb 和 Compiling_DeepChem_Torch_Models.ipynb 收尾覆盖从数据、特征、切分到建模、训练、框架集成的完整链条分子机器学习含 Learning_Unsupervised_Embeddings_for_Molecules.ipynb、Transfer_Learning_With_ChemBERTa_Transformers.ipynb、Generating_molecules_with_MolGAN.ipynb、Introduction_to_GROVER.ipynb 等 14 讲蛋白质建模含 Protein_Deep_Learning.ipynb、Protein_Structure_Prediction_with_ESMFold.ipynb、Introduction_to_ProtBERT.ipynb 等蛋白质-配体相互作用含 Modeling_Protein_Ligand_Interactions.ipynb、Modeling_Protein_Ligand_Interactions_With_Atomic_Convolutions.ipynb、DeepChemXAlphafold.ipynb量子化学含 Exploring_Quantum_Chemistry_with_GDB1k.ipynb、DeepQMC_tutorial.ipynb、FermiNet_DeepChem_tutorial.ipynb生物信息学含 Introduction_to_Bioinformatics.ipynb、Scanpy.ipynb、Cell_Counting_Tutorial.ipynb 等材料科学 / 聚合物含 Introduction_To_Material_Science.ipynb 及 An_Introduction_to_the_Polymers_and_Their_Representation.ipynb、PolyBERT___Introduction_to_Chemical_Language_Models_for_Fingerprint_Generation.ipynb 等机器学习方法与前沿专题含强化学习Using_Reinforcement_Learning_to_Play_Pong.ipynb、模型可解释性、不确定性、深度微分方程PINN、Neural ODE、Hamiltonian NN、等变性、PROTACs、嗅觉描述符预测等专题。入门序列建议按编号顺序依次完成它会让读者从分子机器学习与计算生物学的初学者成长为能独立解决实际问题的使用者。教程中涉及的多任务模型实现可对照 deepchem/models/multitask.py图卷积相关实现可参考 deepchem/models/graph_models.py。另外examples/notebooks 目录存放了一批补充性 Notebook如 TensorGraph_Mechanics.ipynb、Using_Tensorboard.ipynb其中 tests.py 可对 Notebook 内的核心代码做轻量校验。运行示例的实用建议结合仓库结构运行示例时需要注意以下几点数据文件位置案例脚本普遍通过相对路径引用 datasets 目录下的数据文件如tox21.csv.gz、delaney-processed.csv、muv.csv.gz、pcba.csv.gz、pdbbind_core_5_df.pkl.gz建议在仓库根目录下运行脚本或按脚本中os.path.dirname(os.path.realpath(__file__))的拼接逻辑确认路径可达依赖与后端不同模型脚本依赖不同深度学习框架请按 README 中列出的要求安装对应环境若遇到ImportError: This class requires XXXX类错误通常意味着缺少某个软依赖soft requirement从改造开始官方在项目 README 中给出的建议是将 deepchem 应用到一个新问题时从现有示例或教程出发逐步修改以适配自己的用例——例如替换load_dataset的路径与任务列表、更换featurizer、调整切分器与模型参数这是上手 DeepChem 最有效率的方式验证与回归若修改了示例逻辑可借助 deepchem/models/tests、deepchem/data/tests 等测试目录中的用例如 test_csv_loader.py验证底层组件行为是否符合预期。综上examples 目录是 DeepChem 最富价值的活的文档API 示例给出组件级用法案例研究给出任务级闭环教程 Notebook 给出领域级学习路径而 benchmark.py 与 benchmark_curve.py 则把三者串联成可复现的实验体系。无论你是想快速验证一个想法、系统学习分子机器学习还是为论文复现基准结果这套示例套件都提供了现成且可扩展的起点。【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考