[ PROMPT_NODE_26452 ]
deepchem
[ SKILL_DOCUMENTATION ]
# DeepChem
## 概述
DeepChem 是一个综合性的 Python 库,用于将机器学习应用于化学、材料科学和生物学。通过专门的神经网络、分子特征化方法和预训练模型,实现分子属性预测、药物发现、材料设计和生物分子分析。
## 何时使用此技能
当需要进行以下操作时,请使用此技能:
- 加载和处理分子数据(SMILES 字符串、SDF 文件、蛋白质序列)
- 预测分子属性(溶解度、毒性、结合亲和力、ADMET 属性)
- 在化学/生物数据集上训练模型
- 使用 MoleculeNet 基准数据集(Tox21, BBBP, Delaney 等)
- 将分子转换为机器学习就绪的特征(指纹、图表示、描述符)
- 实现分子的图神经网络(GCN, GAT, MPNN, AttentiveFP)
- 应用预训练模型的迁移学习(ChemBERTa, GROVER, MolFormer)
- 预测晶体/材料属性(带隙、形成能)
- 分析蛋白质或 DNA 序列
## 核心能力
### 1. 分子数据加载与处理
DeepChem 为各种化学数据格式提供了专门的加载器:
python
import deepchem as dc
# 加载带有 SMILES 的 CSV
featurizer = dc.feat.CircularFingerprint(radius=2, size=2048)
loader = dc.data.CSVLoader(
tasks=['solubility', 'toxicity'],
feature_field='smiles',
featurizer=featurizer
)
dataset = loader.create_dataset('molecules.csv')
# 加载 SDF 文件
loader = dc.data.SDFLoader(tasks=['activity'], featurizer=featurizer)
dataset = loader.create_dataset('compounds.sdf')
# 加载蛋白质序列
loader = dc.data.FASTALoader()
dataset = loader.create_dataset('proteins.fasta')
**关键加载器**:
- `CSVLoader`: 带有分子标识符的表格数据
- `SDFLoader`: 分子结构文件
- `FASTALoader`: 蛋白质/DNA 序列
- `ImageLoader`: 分子图像
- `JsonLoader`: JSON 格式数据集
### 2. 分子特征化
将分子转换为机器学习模型的数值表示。
#### 特征化器选择决策树
模型是否为图神经网络?
├─ 是 → 使用图特征化器
│ ├─ 标准 GNN → MolGraphConvFeaturizer
│ ├─ 消息传递 → DMPNNFeaturizer
│ └─ 预训练 → GroverFeaturizer
│
└─ 否 → 模型类型是什么?
├─ 传统机器学习 (RF, XGBoost, SVM)
│ ├─ 快速基准 → CircularFingerprint (ECFP)
│ ├─ 可解释性 → RDKitDescriptors
│ └─ 最大覆盖