rxnfp(Reaction Fingerprint)是一个基于 Transformer 模型的化学反应指纹工具库,由 IBM 欧洲研究院与伯尔尼大学团队联合开发,核心用于从化学反应的文本表示(反应 SMILES)中提取 “反应级特征”,支持反应分类、产率预测、反应空间映射等化学信息学任务。相关研究成果发表于《Nature Machine Intelligence》等期刊,是化学 AI 领域的重要基础工具。

核心功能与特点

  1. 反应指纹生成:基于预训练的 BERT 模型(Transformer 架构),直接从 “反应 SMILES”(如反应物.试剂>>产物的字符串)中提取固定长度的向量(rxnfp 指纹),无需手动区分反应物 / 试剂、无需原子映射,适配任意类型的有机化学反应。

    • 指纹维度:默认 256 维(可通过模型微调调整);
    • 核心优势:通过 “掩码语言建模” 预训练,自动学习反应中的键断裂 / 形成规律、试剂作用等 “化学语义”,远超传统结构型指纹(如 AP3)的表达能力。
  2. 支持的任务

    • 反应分类(如识别 Suzuki 偶联、Buchwald-Hartwig 胺化等反应类型);
    • 反应产率预测(作为 Yield-BERT 模型的基础特征);
    • 化学反应空间映射(结合 TMAP 降维实现反应聚类与相似性搜索)。
  3. 易用性:提供 Python 库(rxnfp)和预训练模型,可直接通过代码调用生成指纹,示例如下:

    from rxnfp.transformer_fingerprints import (
        RXNBERTFingerprintGenerator, get_default_model_and_tokenizer
    )
    model, tokenizer = get_default_model_and_tokenizer()
    fp_generator = RXNBERTFingerprintGenerator(model, tokenizer)
    rxn_smiles = "CC(=O)O.OCC>>CC(=O)OCC.O"  # 酯化反应示例
    fingerprint = fp_generator.generate_fingerprint(rxn_smiles)  # 生成256维rxnfp指纹
    

是否包含 rxnfp 分子指纹数据集?

该仓库不直接提供预生成的大规模 rxnfp 指纹数据集,但包含以下与数据集相关的资源:

  1. 示例数据与生成脚本

    • 仓库的 “Examples” 板块提供小规模示例数据(如 Schneider 50k 数据集的子集、USPTO 1k TPL 的部分反应),并附代码演示如何用rxnfp工具生成指纹;
    • 提供与核心论文对应的实验脚本(如反应分类、空间映射),可基于公开反应数据集(如 USPTO、Pistachio)自行生成 rxnfp 指纹。
  2. 关联数据集链接:文档中明确标注了论文中使用的公开数据集来源(如 USPTO 1k TPL、Schneider 50k),用户可下载原始反应 SMILES 数据后,通过rxnfp工具批量生成指纹。

  3. 预训练模型权重:仓库提供预训练的 BERT 模型权重(用于生成 rxnfp 指纹),无需用户重新训练,可直接用于处理自定义反应数据。

其他关键资源

  • 预训练模型:提供多个版本的预训练模型(如基于 Pistachio 数据集训练的模型),支持直接加载使用;
  • 交互式可视化:包含化学反应空间映射的 TMAP 图谱(基于 rxnfp 指纹生成),可在线查看反应聚类结果;
  • 安装与文档:通过pip install rxnfp即可安装,文档包含详细的 API 说明、实验复现步骤和常见问题解答;
  • 引用信息:相关研究需引用论文《Mapping the Space of Chemical Reactions Using Attention-Based Neural Networks》(2021, Nature Machine Intelligence)。

总结

rxnfp仓库的核心是提供生成 rxnfp 反应指纹的工具(预训练模型、Python 库)和实验框架,而非现成的大规模指纹数据集。用户需自行获取原始反应 SMILES 数据(如 USPTO、Schneider 50k),通过仓库提供的工具生成 rxnfp 指纹。这种设计的优势是支持用户灵活处理自定义反应数据,适配不同研究场景。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐