TDC HTS Benchmark Group 提供来自真实高通量筛选实验的活性预测任务。它的价值在于让你面对真实筛选数据的两个核心困难:极端类别不平衡,以及大量非特异性的假阳性。这两点在整洁的文献数据集上体验不到,却是实际项目的日常。
主要任务
| 数据集 | 内容 | 规模 | 阳性率 |
|---|---|---|---|
| SARSCoV2_Vitro_Touret | SARS-CoV-2 体外抗病毒活性 | 约 1,480 | 较低 |
| SARSCoV2_3CLPro_Diamond | 3CL 蛋白酶抑制(片段筛选) | 约 880 | 低 |
| HIV | 抗 HIV 复制活性 | 约 41,000 | 约 3.5% |
| Butkiewicz 系列 | 多个 PubChem HTS 靶点 | 数十万级 | 0.1%~1% |
Butkiewicz 系列最接近真实 HTS 场景:数十万化合物、千分之几的阳性率、来自实际的筛选项目。
不平衡数据的正确处理
from tdc.single_pred import HTS
from sklearn.metrics import average_precision_score, roc_auc_score
data = HTS(name="HIV")
split = data.get_split(method="scaffold", seed=42)
y_true = split["test"]["Y"].values
# 关键:极端不平衡下,两个指标给出完全不同的图景
print("ROC-AUC ", roc_auc_score(y_true, y_score)) # 可能看着很好
print("PR-AUC ", average_precision_score(y_true, y_score)) # 通常低得多
print("随机基线 PR-AUC =", y_true.mean()) # 阳性率即随机水平
- PR-AUC 是主指标:阳性率 0.5% 时,随机模型的 PR-AUC 就是 0.005。你的模型做到 0.05 意味着比随机好 10 倍——这是有意义的结果,而对应的 ROC-AUC 可能是看着漂亮的 0.85。
- 报告富集因子:EF@1%、EF@0.1% 直接对应「筛前 1% 能捞到多少活性」,是实验室最关心的数字。
- 谨慎使用重采样:过采样少数类或欠采样多数类会扭曲概率校准。若要做,评测时必须在原始分布上评估。
- 类别权重优于重采样:多数框架支持
class_weight="balanced"或scale_pos_weight,副作用更小。
假阳性:HTS 数据的固有噪声
真实 HTS 的阳性中,相当比例不是真正的特异性结合,而是各种干扰机制造成的:
- 聚集体形成:化合物在水中形成胶体聚集体,非特异性地吸附并抑制酶。这是 HTS 假阳性最主要的来源之一。
- 光学干扰:荧光或吸光干扰读数。
- 化学反应性:迈克尔受体、烷化剂等与蛋白共价反应。
- 频繁命中者:在多个不相关 assay 中都显示活性的化合物,几乎肯定是干扰。
# 建模前的必要过滤
from rdkit import Chem
from rdkit.Chem import FilterCatalog
params = FilterCatalog.FilterCatalogParams()
params.AddCatalog(FilterCatalog.FilterCatalogParams.FilterCatalogs.PAINS)
params.AddCatalog(FilterCatalog.FilterCatalogParams.FilterCatalogs.BRENK)
catalog = FilterCatalog.FilterCatalog(params)
def is_clean(smi):
m = Chem.MolFromSmiles(smi)
return m is not None and not catalog.HasMatch(m)
# 训练前过滤掉 PAINS 与反应性化合物
df_clean = df[df["Drug"].apply(is_clean)]
不过滤就训练,模型会学到「什么化合物容易造成假阳性」而非「什么化合物真正有活性」——这是 HTS 建模最常见的陷阱。
实际价值
- 练习真实场景的建模纪律:不平衡处理、指标选择、假阳性过滤,这三件事在整洁数据集上学不到。
- 迭代筛选的模拟:可以用它模拟「先筛一小部分、训模型、再筛模型推荐的部分」这种主动学习流程,评估能省多少实验量。
- 预期管理:见识到真实 HTS 数据上模型能做到什么水平,有助于对虚拟筛选形成合理预期。
上手提示
- 极端不平衡下 PR-AUC 与富集因子才有信息量,ROC-AUC 会误导;
- 建模前必须过 PAINS / 反应性过滤,否则学到的是假阳性模式;
- 类别权重优于重采样,重采样会破坏概率校准;
- 用它模拟主动学习筛选流程,评估能省多少实验量。
延伸资源
- 工具箱:173《TDC》;真实筛选基准:242《LIT-PCBA》;
- HTS 数据来源:227《PubChem》;
- PAINS 与过滤概念见「分子表示」模块。