概览
TorchDrug 是一个用于在 PyTorch 中开发基于图的药物发现工作流的机器学习工具箱。它提供数据表示、图操作、数据集、模型和任务组件,而非单一的预训练预测器。其文档所述用途是支持研究原型开发,并通过可复用的构建模块组装训练和推理工作流。
README 中展示的输入包括图的边列表和分子 SMILES 字符串。图可以移至 GPU,并提取节点诱导子图。分子对象提供原子类型和节点特征,并可生成骨架表示。用户也可以附加自定义节点、边或图属性;这些属性会在索引时得到处理,因此这些对象适用于需要额外注释的实验。
性质预测示例会加载 Tox21,创建训练、验证和测试子集,并将 GIN 模型连接到 PropertyPrediction 任务。Engine 组件支持 CPU、GPU 和分布式执行,而可选的 Weights & Biases 日志记录器可用于实验跟踪。源材料展示的输出包括分子特征、骨架和子图;预测行为取决于用户组装的任务和模型。
所提供的安装指南列出了 Python 3.7–3.10 和 PyTorch 的要求,并说明了 Windows 和 Apple silicon 的其他设置注意事项。指南明确指出不支持 mps 设备。虽然 README 链接到了基准测试,但来源摘录不包含基准测试结果,也未提供针对特定科学应用的预测准确性证据。
主要功能
- 基于 PyTorch 的图操作,支持 GPU 加速和自动微分,包括提取节点诱导子图。
- 从 SMILES 构建分子,支持默认原子和键特征、原子类型访问以及骨架转换。
- 自定义节点、边和图属性;索引操作会自动处理这些属性。
- 以 Tox21、GIN 和 PropertyPrediction 任务为例展示的数据集与建模组件。
- Engine 接口支持使用单个或多个 CPU 和 GPU 进行训练与推理,包括分布式配置。
- 通过 Weights & Biases 进行可选的实验日志记录。
使用场景
- 建议的评估:使用文档所述的 GIN 和 PropertyPrediction 组件构建 Tox21 性质预测基线,然后在留出子集上评估。
- 建议的评估:将有代表性的 SMILES 字符串转换为分子对象,并检查原子特征和骨架,以评估其在分子表示工作流中的用途。
- 建议的评估:附加自定义图注释,并检查提取子图时是否保留预期属性。
- 建议的评估:针对选定的训练工作流比较可用的 CPU 和 GPU 执行配置;来源摘录未证实存在任何加速效果。
使用方式
- 阅读仓库 README,并选择其中的 Conda、pip 或源码安装途径。检查所列的 Python 和 PyTorch 要求;如适用,请参阅 Windows 或 Apple silicon 说明。
- 参照文档选择图或分子表示。从小型边列表或有代表性的 SMILES 字符串开始,并在继续之前检查生成的特征。
- 结合 README 示例使用教程,探索子图、骨架和自定义属性。针对自己的注释检查索引行为。
- 以文档中的 Tox21、GIN 和 PropertyPrediction 示例为起点,组装性质预测工作流。根据预期评估方式划分训练、验证和测试子集。
- 根据可用的 CPU 或 GPU 资源配置 Engine,并可选择启用 Weights & Biases 日志记录。查阅所链接的基准测试以了解更多背景,然后独立评估预测质量和资源使用情况。