molfeat
用于机器学习的分子特征化(100+ 种特征提取器)。ECFP、MACCS、描述符、预训练模型(ChemBERTa);将 SMILES 转换为特征,用于 QSAR 和分子机器学习。
Molfeat - 分子特征化统一平台
技能概述
Molfeat 是一个综合性的Python分子特征化库,整合100+预训练嵌入和手工特征器,支持将化学结构(SMILES字符串或RDKit分子对象)转换为机器学习可用的数值表示,适用于QSAR建模、虚拟筛选、相似性搜索和深度学习应用。
适用场景
1. 药物研发中的机器学习建模
当你需要构建QSAR/QSPR模型预测化合物活性、毒性或理化性质时,molfeat可以将SMILES字符串转换为模型可用的特征向量。支持传统机器学习(随机森林、SVM、XGBoost)所需的分子指纹、描述符,以及深度学习所需的预训练嵌入(ChemBERTa、ChemGPT)和图神经网络特征。
2. 大规模化合物库虚拟筛选
当你需要对数十万甚至数百万化合物进行活性预测或优先级排序时,molfeat提供并行处理能力(n_jobs=-1自动利用所有CPU核心)、批量处理和特征缓存,可高效计算ECFP、MACCS等指纹特征,结合scikit-learn分类器实现快速虚拟筛选流程。
3. 化学空间分析与相似性搜索
当你需要进行化合物聚类、可视化、降维或寻找结构相似分子时,molfeat提供多种相似性度量方法(ECFP、MACCS、MAP4用于2D相似性,USR/USRCAT用于3D形状相似性),支持余弦相似度计算和高效批量特征提取,帮助理解化学空间分布和进行骨架跃迁研究。
核心功能
1. 100+ 统一特征化接口
提供从传统分子指纹(ECFP、FCFP、MACCS、MAP4等)、描述符(RDKit 2D、Mordred 1800+描述符、CATS药效团描述符)到现代深度学习嵌入(ChemBERTa、ChemGPT、MolT5等Transformer模型,GIN、Graphormer等GNN模型)的统一调用接口,所有特征化器共享一致的API设计,降低学习成本。
2. Scikit-learn兼容的批量处理
MoleculeTransformer类提供与scikit-learn管道兼容的转换器接口,支持自动并行处理(n_jobs=-1)、错误忽略(ignore_errors=True)、配置持久化(保存/加载YAML配置文件)和内存缓存,可直接集成到机器学习管道中实现从SMILES到预测的端到端流程。
3. 预训练模型与高效推理
内置ChemBERTa-77M-MLM、ChemGPT-1.2B等预训练Transformer模型和GIN、Graphormer等图神经网络,提供内存缓存和批次推理优化,首次运行后模型保持在内存中显著加速后续推理,支持通过ModelStore探索所有可用模型并获取使用示例。
常见问题
molfeat 支持哪些Python版本?
molfeat 0.11.0 支持 Python 3.9–3.10,不支持 Python 3.11+。建议使用Python 3.9或3.10环境,通过uv pip install "molfeat==0.11.0"安装。如需使用GNN或Transformer模型,需安装对应的额外依赖:molfeat[dgl]、molfeat[transformer]或molfeat[all]。
如何处理无效的SMILES字符串?
在处理可能包含无效SMILES的数据集时,设置ignore_errors=True参数可使特征化器跳过无效分子并继续处理,返回None作为失败分子的特征。建议配合verbose=True记录错误详情,便于后续数据清洗。对于大规模数据集,还可以实现自定义预处理方法进行分子标准化和盐分去除。
如何为我的任务选择合适的特征化方法?
对于传统机器学习(随机森林、SVM),推荐从ECFP指纹开始(通用性强);若需要可解释性,可选择RDKit 2D描述符或MACCS指纹;对于大规模筛选,MAP4指纹效率较高。对于深度学习任务,ChemBERTa适合迁移学习,GIN模型适合图结构数据。可通过ModelStore().available_models浏览所有可用选项,或使用FeatConcat组合多种特征以提升模型性能。