从需要复现的实验入手

先定义科学实验,再选择软件包。记录目标标签、单位、分子表示形式以及预测的预期用途。分子图上的性质回归实验,不等同于依赖几何结构的势能或蛋白质—配体工作流程;不要仅凭软件包对化学领域的整体关注,就推断它支持这些任务。

安装任何软件之前,先写一份简短的实验说明:

  • 哪些观测数据可以合法使用?每个标签测量的是什么?
  • 预测新样本时,哪些信息可以获得?
  • 评估应模拟新的化学家族、较晚进行的测量,还是其他部署场景?
  • 怎样的预测误差或覆盖率才会让结果具有实际用途?

以下比较流程是建议的评估计划,不是科学测试报告,也不代表任何一个软件包更优。

比较有文档依据的适用范围,而非软件包声誉

Chemprop 文档介绍了一个基于 PyTorch、用于训练和评估分子性质预测消息传递神经网络的框架。它提供命令行训练与预测教程,以及用于数据处理、图特征化和模型构建的 Python 模块。文档列出的示例包括分类、多组分回归、反应回归和多任务模型。其他有文档说明的工作流程还涉及原子和键预测、学习得到的指纹、不确定性及解释。

DeepChem 仓库介绍了一套范围更广的科学机器学习工具链,涵盖药物发现、材料科学、量子化学和生物学。它说明支持 TensorFlow、PyTorch 和 JAX,并分别指定各自的依赖项,同时提供按顺序编排的教程和其他示例。这种广泛覆盖并不能证明每个模型都能与每种后端或表示形式配合使用。

对于分子性质 MPNN 实验,Chemprop 是值得考察的专门候选方案。对于需要考虑多种科学模型家族或表示形式的项目,DeepChem 是一个覆盖面更广的探索起点。无论选择哪个,都应先找到与实验相匹配且有文档说明的示例,再比较接口。适用范围本身既不能说明准确性,也不能说明易用性。

定义输入与输出约定

先制定独立于软件包的数据规范,再根据所选教程的实际模式进行适配。提供的来源摘录并未说明每种工作流程确切接受哪些文件格式或采用何种输出布局。

拟定的输入约定应明确稳定的样本 ID、分子表示形式、目标、单位、缺失标签处理规则以及任何附加特征。将原始观测与转换后的模型输入分开保存。记录解析失败、重复项处理、排除规则和相互冲突测量值的处理方式。

同时定义预期的输出约定:样本 ID、预测值、目标单位、模型标识符,以及对不支持或处理失败的输入给出的明确状态。如果需要不确定性,应说明需要的量以及评估方式;文档中介绍了不确定性工作流程,并不等于其在你的数据上能够提供经过校准的不确定性。

RDKit 文档可作为分子处理以及描述符或指纹生成的相关参考,如RDKit 资源介绍所述。DeepChem 也将 RDKit 列为依赖项。此处建议采用共享的 RDKit 预处理或基线流程,但这不是经过测试的 Chemprop–DeepChem 集成方案。共享分子数据并不意味着特征或检查点可以互换。

建立统一的评估方案

对两个候选方案使用相同的合格观测数据和目标定义。在包默认设置之外确定数据划分成员关系,确保两项实验回答的是同一个问题。根据科学设计的需要,将重复记录或相关记录放在同一分区,并且只在训练分区上拟合学习型预处理步骤。

随后按固定顺序进行:

  1. 从每个软件包中选定一条有文档说明的模型路径,并记录其所需的表示形式和依赖项。
  2. 在较小的开发子集上验证数据加载和预测,包括缺失或无效输入。
  3. 在相同的数据划分和指标定义下评估一个简单基线。
  4. 设定可比的调参预算,并避免将测试分区用于模型选择。
  5. 保存带有样本 ID 的预测结果,并使用共享的评估代码进行评估。

除了预测指标,也要报告数据覆盖率。如果某个候选方案拒绝的输入更多,应展示两个方案共同可评估子集上的结果,并单独说明其在全部合格数据集上的覆盖率。不要悄悄把排除样本转化成表面上的准确率优势。

规划示例:假设的溶解度比较

假设某团队拥有 2,000 条分子记录,含有 SMILES 表示形式和定义一致的 log-solubility 标签。这只是一个假设的规划示例;记录数量不是基准测试结果,也不是观测结果。

团队首先确认测量条件,将重复分子记录分组,并创建固定的训练、验证和测试分区,旨在评估对陌生化学家族的表现。拟定的输入表包含 sample_id、smiles 和 log_solubility;这些是规划字段,不是所声称的软件包特定列要求。

Chemprop 候选方案采用有文档说明的分子性质回归路径。DeepChem 候选方案暂不指定,直到团队找到一个接受所选表示形式的回归示例,并验证其依赖项。团队还单独计划采用基于描述符或指纹的基线,并记录其构建方式。

训练前,团队选定目标对数单位下的平均绝对误差作为主要指标,记录统一的调参预算,并计划使用已保存的随机种子进行多次运行。每个候选方案都应输出与测试样本 ID 对应的预测值及失败记录。最终比较应包含误差、覆盖率、实测资源使用情况和未解决的集成问题,而不是根据一次有利的运行结果选出赢家。

检查局限和运行适配性

选择与具体发布版本对应的文档,并记录软件包版本、特征化设置、数据划分成员关系、随机种子、搜索预算和环境详情。Chemprop 文档指出,v2 进行了大幅重写并更改了默认设置,因此需要谨慎解读较早的示例。DeepChem 资源介绍指出,不同来源对 Python 兼容性的声明并不一致;应核实所选发布版本,而不要把某一个兼容范围视为定论。

将运行层面的问题与科学问题分开考虑:能否复现环境?保存的模型能否重新加载?推理能否满足经过实测的约束?谁来维护可选依赖项?应分别审查代码、权重和数据集的条款,不要假设一个许可证涵盖所有制品。

提供的来源均未证明这些方案在你的目标任务上的预测准确性、吞吐量或泛化能力。成功运行示例只能说明在该环境中的实现可行性,不代表科学有效性或已具备部署条件。做出部署决策前,请参阅评估分子性质模型。

可执行清单

  • 定义目标、单位、表示形式和预期决策。
  • 为每个候选方案选择匹配且有文档说明的工作流程。
  • 固定合格记录、预处理规则和数据划分成员关系。
  • 规定预测输出、失败情况和不确定性要求。
  • 使用共享评估代码比较基线和两个候选方案。
  • 记录覆盖率、版本、预算和运行测量结果。
  • 明确列出尚未解决的兼容性和科学问题。