用途:Molfeat 是面向分子机器学习的特征化库,把化学结构(SMILES 字符串或 RDKit 分子)转换为数值表示,服务于 QSAR/QSPR 建模、虚拟筛选、相似性搜索、化学空间分析和深度学习等场景。
主要能力:提供 100 多种特征器,涵盖指纹(ECFP、MACCS、MAP4、FCFP、Gobbi 等)、分子描述符(RDKit 2D、Mordred)、药效团描述符(CATS)、形状描述符(USR)以及预训练模型(ChemBERTa、ChemGPT、MolT5、GIN、Graphormer)。结构分三层:计算器 molfeat.calc 处理单分子;转换器 molfeat.trans 做批量并行处理并兼容 scikit-learn;预训练转换器 molfeat.trans.pretrained 提供深度学习嵌入与缓存。支持 FeatConcat 组合多个特征器,ModelStore 可浏览和加载可用模型,配置可保存为 YAML 以保证可复现。
使用方式:安装命令为 uv pip install molfeat,全部可选依赖用 uv pip install "molfeat[all]",特定特征器可装 molfeat[dgl]、molfeat[graphormer]、molfeat[transformer]、molfeat[fcd]、molfeat[map4]。典型用法是创建 FPCalculator 等计算器,再包进 MoleculeTransformer 并设 n_jobs=-1 并行处理 SMILES 列表;也可直接接入 scikit-learn Pipeline。
适用场景:传统机器学习可选 ECFP、MACCS、RDKit 描述符;深度学习可选 ChemBERTa 等预训练嵌入;相似性搜索可选 ECFP、MACCS、MAP4、USR;药效团方法可选 FCFP、CATS、Gobbi。
限制:部分预训练模型需额外依赖,首次运行较慢;大数据集需分块处理以控制内存;无效 SMILES 可用 ignore_errors=True 跳过。官方文档见 https://molfeat-docs.datamol.io/,代码仓库见 https://github.com/datamol-io/molfeat。