[ PROMPT_NODE_26842 ]
molfeat
[ SKILL_DOCUMENTATION ]
# Molfeat - 分子特征化中心
## 概述
Molfeat 是一个全面的 Python 分子特征化库,集成了 100 多种预训练嵌入和手工特征提取器。它能将化学结构(SMILES 字符串或 RDKit 分子)转换为数值表示,用于机器学习任务,包括 QSAR 建模、虚拟筛选、相似性搜索和深度学习应用。具有快速并行处理、兼容 scikit-learn 的转换器以及内置缓存功能。
## 何时使用此技能
当涉及以下任务时,应使用此技能:
- **分子机器学习**:构建 QSAR/QSPR 模型,属性预测
- **虚拟筛选**:对化合物库进行生物活性排序
- **相似性搜索**:寻找结构相似的分子
- **化学空间分析**:聚类、可视化、降维
- **深度学习**:在分子数据上训练神经网络
- **特征化流水线**:将 SMILES 转换为机器学习就绪的表示
- **化学信息学**:任何需要分子特征提取的任务
## 安装
bash
uv pip install molfeat
# 安装所有可选依赖
uv pip install "molfeat[all]"
**特定特征提取器的可选依赖:**
- `molfeat[dgl]` - GNN 模型 (GIN 变体)
- `molfeat[graphormer]` - Graphormer 模型
- `molfeat[transformer]` - ChemBERTa, ChemGPT, MolT5
- `molfeat[fcd]` - FCD 描述符
- `molfeat[map4]` - MAP4 指纹
## 核心概念
Molfeat 将特征化组织为三个层级类:
### 1. 计算器 (`molfeat.calc`)
将单个分子转换为特征向量的可调用对象。接受 RDKit `Chem.Mol` 对象或 SMILES 字符串。
**计算器适用场景:**
- 单分子特征化
- 自定义处理循环
- 直接特征计算
**示例:**
python
from molfeat.calc import FPCalculator
calc = FPCalculator("ecfp", radius=3, fpSize=2048)
features = calc("CCO") # 返回 numpy 数组 (2048,)
### 2. 转换器 (`molfeat.trans`)
兼容 scikit-learn 的转换器,封装了计算器以实现并行批处理。
**转换器适用场景:**
- 分子数据集的批量特征化
- 与 scikit-learn 流水线集成
- 并行处理 (自动利用 CPU)
**示例:**
python
from molfeat.trans import MoleculeTransformer
from molfeat.calc import FPCalculator
transformer = MoleculeTransformer(FPCalculator("ecfp"), n_jobs=-1)
f