跳转到正文

SchNetPack

Kristof T. Schuett, Michael Gastegger, Stefaan Hessmann, Niklas Gebauer, Jonas Lederer

SchNetPack 是一个用于构建和训练原子尺度神经网络的 Python 工具包,提供 SchNet 和 PaiNN 表征、量子化学性质输出以及分子动力学组件。

条目更新 ·

概览

SchNetPack 支持开发和应用神经网络,用于分子与材料的势能面及其他量子化学性质。它是一个工具包,而非单一的预训练预测模型:研究人员可以组合原子表征、输出模块和训练配置,为选定任务构建模型。项目 README 将 SchNet 连续滤波网络和 PaiNN 等变消息传递列为可用表征。

其工作流程涵盖基准数据、模型配置、训练和日志记录。文档中的 QM9 示例会训练原子级性质模型;如果数据集尚不可用,还会下载该数据集。MD17 示例则使用选定分子的参考能量和力。配置用于指定表征、预测输出、损失和指标;势能模型可以生成能量及其对应导数,用于得到力和应力。其他输出模块还涵盖偶极矩、极化率和一般响应性质。

训练接口使用基于 PyTorch Lightning 的 Hydra 配置组,用户可以据此更改数据集、表征和单个参数。运行目录用于保存训练好的模型;受支持的日志选项包括 Tensorboard、CSV 和 Aim。除训练功能外,该工具包还包含静电和排斥模块、GPU 加速的分子动力学组件,以及文档说明的 LAMMPS 接口。

这些摘录说明了上述组件和示例工作流程,但未提供测得的准确度、运行时间结果或向新化学体系迁移的验证结果。所提供的项目元数据声明 Python >=3.12;这是依赖要求,并不能证明该版本经过兼容性测试。因此,将训练好的模型用于新数据集或模拟仍需进行评估。

主要功能

  • 用于分子和材料原子模型的 SchNet 连续滤波表征与 PaiNN 等变消息传递表征。
  • 提供偶极矩、极化率、应力和一般响应性质的性质输出模块,其中包括用于计算力和应力张量的能量导数。
  • 通过 spktrain 进行 Hydra 配置训练,提供有文档说明的 QM9 和 MD17 实验,并可配置性质损失权重。
  • 用于静电、Ewald 求和和 ZBL 排斥的物理相关模块。
  • GPU 加速的分子动力学组件涵盖路径积分 MD、恒温器和恒压器,并提供 LAMMPS 接口。
  • 通过 PyTorch Lightning 记录训练日志,默认使用 Tensorboard,并提供 CSV 和 Aim 配置。

使用场景

  • 建议评估:使用一致的数据划分和指标,在有文档说明的 QM9 性质预测工作流程中比较 SchNet 和 PaiNN 表征。
  • 建议评估:针对尿嘧啶训练 MD17 模型,并在改变有文档说明的损失权重时检查能量和力误差。
  • 建议评估:使用 SchNetPack 组件或其 LAMMPS 接口,评估训练好的势能模型能否用于分子动力学工作流程。
  • 建议评估:通过分层配置组合表征和输出模块,开发自定义原子级预测任务。

使用方式

  1. 查阅仓库 README和文档,选择 QM9 性质示例或 MD17 能量与力示例。准备环境前,请检查所提供的项目要求;项目声明需要 Python >=3.12,但此处未独立测试。
  2. 按照 README 中的 pip 或源码安装流程操作。根据入门工作流程的说明,为数据和训练运行准备工作目录。
  3. 选择有文档说明的实验配置:QM9 示例使用 qm9_atomwise;分子势能示例使用 md17,并将 data.molecule 设为 uracil。若 QM9 数据尚不存在,系统会自动下载。
  4. 查阅配置指南。选择 SchNet 或 PaiNN,检查输出定义,并在适用时设置合适的能量和力损失权重。
  5. 通过 spktrain 进行训练,并检查保存的模型和所选日志输出。作为预期的评估步骤,在将模型用于模拟前先评估预测误差;如需该集成,请参阅LAMMPS 指南。

相关资源

DimeNet

模型

DimeNet 提供 DimeNet 和 DimeNet++ 的参考实现,用于分子图上的方向性消息传递,并包含训练笔记本、测试集预测工作流和预训练模型。

Python

分子性质预测 · 量子化学

PhysNet

模型

PhysNet 是一个 TensorFlow 实现,用于预测分子能量、力、偶极矩和部分电荷,并提供可配置的训练工作流和示例数据集。

开源Python

分子性质预测 · 量子化学

QML

开源工具

QML 是一个已归档的 Python 量子机器学习工具包,包含由 Fortran 支持的表示、核函数和求解器模块。后续开发已转移至 qmllib。

开源Python

分子性质预测 · 量子化学

SpookyNet

模型

SpookyNet 是一个 Python 研究软件包,据描述可学习包含电子自由度和非局域效应的力场;该项目附有一篇引用论文,且仓库代码采用 MIT 许可证。

开源Python

分子性质预测 · 量子化学

TorchANI

模型

TorchANI 是一个基于 PyTorch 的库,用于开发、训练和使用 ANI 风格的神经网络原子间势,并可选用 C++ 和 CUDA 扩展来计算描述符和执行推理。

开源PythonC++

分子性质预测 · 量子化学

ANI-1

数据集

ANI-1 提供计算得到的非平衡分子构象,并附有 Python 读取器,用于访问包含有机分子坐标和能量的 HDF5 文件。

开源Python

量子化学

相关指南

模型

评估分子性质预测模型

实用指南:选择分子性质工作流、检查表征方式与评估证据,并在明确适用域边界、逐项核查组件许可的前提下规划本地评估。