用途:Molfeat 是面向分子机器学习的特征化工具库,把化学结构(SMILES 字符串或 RDKit 分子)转换为可供模型使用的数值表示,适用于 QSAR/QSPR 建模、虚拟筛选、相似性搜索、化学空间分析、深度学习与特征化流水线等场景。
主要能力:库内统一了 100 多种特征器,涵盖指纹(ECFP、MACCS、MAP4、FCFP、Gobbi 等)、分子描述符(RDKit 2D、Mordred)、药效团描述符(CATS)、形状描述符(USR/USRCAT)以及预训练模型(ChemBERTa、ChemGPT、MolT5、GIN、Graphormer)。结构上分为三层:molfeat.calc 中的计算器处理单分子;molfeat.trans 中的转换器提供 scikit-learn 兼容的批量并行处理;molfeat.trans.pretrained 提供深度学习嵌入的批量推理与缓存。支持 FeatConcat 组合多个特征器,并可通过 ModelStore 浏览、搜索和加载可用模型。
使用方式:安装命令为 uv pip install molfeat,全部可选依赖用 uv pip install "molfeat[all]",也可按需安装 molfeat[dgl]、molfeat[graphormer]、molfeat[transformer]、molfeat[fcd]、molfeat[map4]。典型用法是创建计算器(如 FPCalculator("ecfp", radius=3, fpSize=2048)),再包装为 MoleculeTransformer(calc, n_jobs=-1) 对 SMILES 列表批量特征化;预训练模型用 PretrainedMolTransformer("ChemBERTa-77M-MLM")。配置可保存为 YAML 以便复现,支持 ignore_errors 跳过无效分子,并可集成进 scikit-learn Pipeline。
适用场景与限制:适合传统机器学习(RF、SVM、XGBoost)与深度学习两类流程,也用于大规模筛选和相似性搜索。性能上建议开启并行、批量处理、缓存预训练模型,并在允许时使用 float32;指纹类特征器速度快于深度学习模型,后者首次运行较慢。超过 10 万分子的大数据集需分块处理以控制内存。部分预训练模型依赖额外可选包,需按需安装。官方文档、GitHub 与 PyPI 链接已在资料中提供。