[ PROMPT_NODE_27496 ]
molecular_property_prediction
[ SKILL_DOCUMENTATION ]
# 分子属性预测
## 概述
分子属性预测涉及根据分子的结构预测其化学、物理或生物属性。TorchDrug 为分子图上的分类和回归任务提供了全面的支持。
## 可用数据集
### 药物发现数据集
**分类任务:**
- **BACE** (1,513 个分子):β-分泌酶抑制的二分类
- **BBBP** (2,039 个分子):血脑屏障渗透性预测
- **HIV** (41,127 个分子):抑制 HIV 复制的能力
- **Tox21** (7,831 个分子):12 个靶点的毒性预测
- **ToxCast** (8,576 个分子):毒理学筛选
- **ClinTox** (1,478 个分子):临床试验毒性
- **SIDER** (1,427 个分子):药物副作用(27 个系统器官分类)
- **MUV** (93,087 个分子):虚拟筛选的最大无偏验证
**回归任务:**
- **ESOL** (1,128 个分子):水溶性预测
- **FreeSolv** (642 个分子):水合自由能
- **Lipophilicity** (4,200 个分子):辛醇/水分配系数
- **SAMPL** (643 个分子):溶剂化自由能
### 大规模数据集
- **QM7** (7,165 个分子):量子力学属性
- **QM8** (21,786 个分子):电子光谱和激发态属性
- **QM9** (133,885 个分子):几何、能量、电子和热力学属性
- **PCQM4M** (3,803,453 个分子):大规模量子化学数据集
- **ZINC250k/2M** (250k/2M 个分子):用于生成建模的类药化合物
## 任务类型
### PropertyPrediction
支持图级属性预测的标准任务,涵盖分类和回归。
**关键参数:**
- `model`: 图表示模型 (GNN)
- `task`: "node"(节点)、"edge"(边)或 "graph"(图)级预测
- `criterion`: 损失函数 ("mse", "bce", "ce")
- `metric`: 评估指标 ("mae", "rmse", "auroc", "auprc")
- `num_mlp_layer`: 用于读出的 MLP 层数
**工作流示例:**
python
import torch
from torchdrug import core, models, tasks, datasets
# 加载数据集
dataset = datasets.BBBP("~/molecule-datasets/")
# 定义模型
model = models.GIN(input_dim=dataset.node_feature_dim,
hidden_dims=[256, 256, 256, 256],
edge_input_dim=dataset.edge_feature_dim,
batch_norm=True, readout="mean")
# 定义任务
task = tasks.PropertyPrediction(model, task=dataset.tasks,