加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 动机和意义
    • 指纹选择和计算
    • 并行计算和内存优化
    • 指纹超参数调优
    • 复杂的3D指纹处理管道
    • scikit-fingerprints库的影响
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

Scikit-fingerprints: 在Python中轻松高效地计算分子指纹

08/01 10:00
3506
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

论文 Scikit-fingerprints: easy and efficient computation of molecular fingerprints in Python 介绍了分子指纹在计算化学中的计算和应用,特别是其在机器学习和大规模数据处理中的重要性。

动机和意义

分子是计算化学处理的基本结构,通常表示为分子图,需要转换为多维向量以便大多数处理算法使用,尤其是机器学习(ML)应用。分子指纹是一种特征提取算法,将分子的结构信息编码为向量,广泛用于化学信息学中的各种任务,如化学空间多样性测量、可视化、聚类、虚拟筛选和分子性质预测等。这些任务在新药设计中尤为重要。为了正确评估预测模型的性能,训练-测试数据集的划分至关重要,分子指纹也可以用于此。指纹模型的性能与最先进的图神经网络(GNNs)相比仍然具有竞争力。

指纹选择和计算

选择适合特定应用的最佳指纹表示并不简单,通常需要计算多种不同的指纹,并可能需要调整其超参数。使用多个指纹通常能改善结果,例如通过连接或数据融合。处理大型分子数据集需要利用现代多核CPU的高效实现。Python是当前化学信息学中最流行的语言,包含的scikit-learn库已成为机器学习任务的事实标准工具。然而,许多流行的开源工具如Chemistry Development Kit (CDK)、OpenBabel或RDKit是用Java或C++编写的,只有RDKit有官方的Python接口。

并行计算和内存优化

并行计算分子指纹对于处理大型数据库(如虚拟筛选)非常有用。论文展示了五种指纹在稠密和稀疏表示下的内存使用情况,稀疏表示显著减少了内存使用。具体数据如下:

Klekota-Roth: 稠密数组大小2029MB,稀疏数组大小23MB,内存节省88.2倍。

FCFP: 稠密数组大小855MB,稀疏数组大小15MB,内存节省57倍。

Physiochemical Properties: 稠密数组大小855MB,稀疏数组大小17MB,内存节省50.3倍。

ECFP: 稠密数组大小855MB,稀疏数组大小19MB,内存节省45倍。

Topological Torsion: 稠密数组大小855MB,稀疏数组大小19MB,内存节省45倍。

指纹超参数调优

大多数文献中忽略了分子指纹的超参数调优,仅调优下游分类器。论文进行了所有2D指纹的超参数调优,使用了MoleculeNet单任务分类数据集,结果显示调优带来了显著的性能提升。特别是基于子结构的Ghose-Crippen指纹在平均AUROC上提升了4%。具体结果如下:

RDKit指纹

    • 在BBBP数据集上的AUROC提升高达5.8%。

Ghose-Crippen指纹

    在所有数据集上的平均AUROC提升为4%。

复杂的3D指纹处理管道

对于需要3D信息的任务,如基于构象的指纹,整个处理管道变得更加复杂。需要生成构象并进行力场优化,结果指纹可能有缺失值。使用多个指纹通常是有益的,特别是对于虚拟筛选,因为它们考虑了不同的几何特征。论文展示了一个创建用于筛选的分子向量化管道的示例,使用了GETAWAY和WHIM描述符。这个示例在RDKit中需要超过100行代码,而在scikit-fingerprints中则简化了很多。

from sklearn.impute import SimpleImputer
from skfp.fingerprints import (GETAWAYFingerprint, WHIMFingerprint)
from skfp.preprocessing import ConformerGenerator
from sklearn.pipeline import make_pipeline, make_union

pipeline = make_pipeline(
    ConformerGenerator(optimize_force_field = "MMFF94", n_jobs = -1),
    make_union(GETAWAYFingerprint(n_jobs = -1), WHIMFingerprint(n_jobs = -1)),
    SimpleImputer(strategy = "mean"),
    )

scikit-fingerprints与CDK和OpenBabel的比较

scikit-fingerprints库的影响

scikit-fingerprints是一个计算分子指纹的综合库,完全兼容scikit-learn接口,易于集成到复杂的分子数据处理管道中。库中包含30多种指纹(2D和3D),并支持高效的构象生成。其直观和统一的API使得领域专家(如计算化学家、化学信息学家或分子生物学家)易于使用。库还强调代码质量、安全性和自动化检查。

并行计算:利用所有可用核心,显著加速了大数据集的处理。

超参数调优:有助于提高模型性能。

指纹连接和数据融合:支持复杂的计算任务。

相关信息

代码:https://github.com/scikit-fingerprints/scikit-fingerprints

论文:https://arxiv.org/abs/2407.13291v1

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ATSAMD51P20A-AU 1 Microchip Technology Inc RISC Microcontroller, 32-Bit, FLASH, 120MHz, CMOS, PQFP128

ECAD模型

下载ECAD模型
$8.28 查看
ATXMEGA32A4U-MH 1 Microchip Technology Inc IC MCU 8BIT 32KB FLASH 44VQFN
$3.4 查看
AT89C51CC03UA-SLSUM 1 Atmel Corporation Microcontroller, 8-Bit, FLASH, 8051 CPU, 60MHz, CMOS, PQCC44, GREEN, PLASTIC, LCC-44

ECAD模型

下载ECAD模型
$8.45 查看

相关推荐

电子产业图谱