Molfeat 是一个用于分子特征化的 Python 库,面向分子机器学习、QSAR/QSPR 建模、虚拟筛选、相似性搜索和化学空间分析等任务。它把 100 多种预训练嵌入与手工特征器统一到同一接口下,可将 SMILES 字符串或 RDKit 分子转换为可供机器学习使用的数值表示,并提供并行处理、scikit-learn 兼容转换器和内置缓存。
库的接口分为三层:molfeat.calc 中的 Calculator(如 FPCalculator)把单个分子转为特征向量;molfeat.trans 中的 Transformer(如 MoleculeTransformer)封装 Calculator,支持批量并行处理并兼容 scikit-learn 管道;molfeat.trans.pretrained 中的预训练转换器用于深度学习模型嵌入,如 ChemBERTa、ChemGPT、GIN、Graphormer 等。
典型用法为先创建计算器与转换器,再对 SMILES 列表批量特征化,例如:calc = FPCalculator("ecfp", radius=3);transformer = MoleculeTransformer(calc, n_jobs=-1);features = transformer(smiles_list)。可选用 ECFP、MACCS、MAP4、RDKit 2D 描述符、Mordred 等特征器,并可用 FeatConcat 组合多种特征;通过 to_state_yaml_file 与 from_state_yaml_file 保存和重载配置以保证可复现。
安装命令为 uv pip install molfeat,可选依赖包括 molfeat[all]、molfeat[dgl]、molfeat[graphormer]、molfeat[transformer]、molfeat[fcd]、molfeat[map4]。使用时可通过 ignore_errors=True 跳过无效分子,对大数据集建议分块处理并缓存预训练模型嵌入。需要注意,深度学习特征器首次运行较慢,部分模型需安装额外依赖,且资料未提供收费与价格信息。