跳转到正文

Molfeat

Emmanuel Noutahi

Molfeat 是一款用于小分子特征化的 Python 工具包,将分子指纹、描述符和预训练嵌入与并行转换、缓存及可扩展插件相结合。

条目更新 ·

概览

Molfeat 提供统一接口,可将小分子转换为适用于下游机器学习工作流的表示。它将手工设计的特征化器和预训练分子嵌入整合到同一个软件包中,而不是提供单一的性质预测模型。项目 README 描述了一个面向小分子的 1.x 开发系列,其维护中的图后端为 PyTorch Geometric,并包含 CheMeleon 和 Mol-JEPA 等集成。

API 示例从 Datamol 的 FreeSolv 数据集中抽取 SMILES 字符串开始。示例先对一个分子应用 ECFP 计算器,再将该计算器封装在 MoleculeTransformer 中,以并行处理一组分子。输出是由所选特征化器决定的分子特征或嵌入。Transformer 配置可以保存到 YAML 文件,也可以从 YAML 文件恢复。ModelStore 可列出可用模型、按名称搜索,并通过模型卡提供使用指导。

插件允许独立开发的特征化器扩展该软件包。可选依赖项可启用 Transformers 集成、Mordred 描述符、HDF5 和 Parquet 缓存,以及 S3 或 Google Cloud 模型存储等功能。这些依赖项并非全部包含在核心安装中;README 指出,缺少所需依赖项时会报错并提供安装指导。

选择工作流时需考虑适用范围和许可。所述 1.x 系列移除了蛋白质特征化器,以及旧版 DGL、DGLLife 和 Graphormer 适配器。仓库代码的许可并不决定下载权重或自定义 Hub 代码的使用条款;Mol-JEPA 要求明确接受非商业许可。来源摘录没有证明其下游预测准确性或对比运行时间结果。

主要功能

  • 通过统一的软件包接口整合手工设计的分子特征化器和预训练嵌入。
  • 提供 FPCalculator("ecfp") 用于单分子特征化,并提供 MoleculeTransformer 用于并行处理分子集合。
  • 通过 YAML 状态文件保存和恢复 MoleculeTransformer 配置。
  • 支持使用 ModelStore 列出和搜索模型,并提供模型卡使用指导。
  • 通过独立开发的插件扩展特征化功能,并提供可选的 HDF5 和 Parquet 缓存支持。
  • 介绍了维护中的 CheMeleon 和 Mol-JEPA 集成,支持延迟加载模型,并明确说明外部检查点的许可要求。

使用场景

  • 建议评估:在固定数据集和评估方案下,比较将 ECFP 特征与预训练嵌入作为小分子性质预测流程输入的效果。
  • 建议评估:评估保存的 transformer 配置和可选缓存是否有助于在重复的数据集处理运行中实现可重复的特征化。
  • 建议评估:通过插件系统集成自定义分子特征化器,并检查其输出是否符合项目对目标表示的要求。

使用方式

  1. 阅读官方文档和仓库 README,以选择特征化器。区分所述 1.x 开发版的要求与计划安装的发行版要求。
  2. 按照 README 中针对 uv、pip 或 conda-forge 的安装说明操作。只选择所选表示、缓存格式或模型存储所需且有文档说明的可选依赖项。
  3. 参考 README 中的 API 导览:准备一组较小的 SMILES 字符串,对一个分子应用 FPCalculator("ecfp"),然后使用 MoleculeTransformer 处理整个集合。
  4. 对于预训练表示,查看 ModelStore 列表以及所选模型卡中的使用指导。在下载产物之前,应将检查点和自定义 Hub 代码的条款与仓库代码许可分开核查。
  5. 按照 API 导览中的示例,将 transformer 配置保存为 YAML 并恢复。作为计划中的评估步骤,在将特征用于下游模型之前,先检查代表性分子的输出维度、失败输入和可重复性。

相关资源

Mordred

开源工具

Mordred 是一款 Python 分子描述符计算器,支持命令行和基于 RDKit 的库工作流,可生成用于化学信息学分析和下游模型评估的描述符表。

开源Python

分子性质预测 · 化学信息学

ChemBERTa

模型

ChemBERTa 提供用于化学 SMILES 的类 BERT 模型,包括采用 RoBERTa 掩码语言建模的检查点,以及用于预训练、微调和分子性质预测研究的笔记本。

开源Python

分子性质预测

ChemCP 是一款 MCP App,可使用 RDKit.js 将 SMILES 字符串转换为交互式二维分子图和计算描述符,并为支持 MCP Apps 的主机提供聊天内查看器。

TypeScriptJavaScript

化学信息学

ChemCrow

智能体

ChemCrow 是一个基于 Python、使用 Langchain 构建的化学智能体软件包,可将语言模型推理与 RDKit、paper-qa、化学数据库和反应规划工具连接起来。

开源Python

化学信息学 · 文献与研究

Chemistry Development Kit (CDK) 是一个 Java 库,可在其他程序中用于化学表示、文件转换、结构搜索、指纹生成、QSAR 描述符计算和分子渲染。

开源

化学信息学

ChemML

开源工具

ChemML 是一套用于化学与材料数据分析、挖掘和建模的 Python 工具,采用模块化设计,并有关于图神经网络、AutoML 和可解释性的工作记录。

开源Python

分子性质预测 · 材料发现

相关指南

模型

如何在 Chemprop 和 DeepChem 之间选择

比较 Chemprop 对分子性质预测的专注方向与 DeepChem 更广泛的科学机器学习范围,然后通过共享数据、明确的输入与输出以及可复现的决策标准,规划公平的评估。

部署

化学 AI 本地部署检查清单

为 RDKit、Chemprop 或 DeepChem 规划隔离且可复现的本地环境。在使用敏感化学数据前,检查文档所述依赖、数据流转、示例输出和恢复流程。