用途
该技能面向二分类分子性质预测任务,典型应用是 HIV 复制抑制活性预测(OGB ogbg-molhiv,MoleculeNet 风格的活性分类)。任务输入为带标签分子的 SMILES(1 = 活性,0 = 非活性;活性分子只占几个百分点)以及待查询分子的 SMILES。交付物是一个一维浮点数组,按查询顺序为每个查询分子给出一个 [0, 1] 区间内的分数,分数越高表示越可能具有活性;只有排序有意义。
主要能力
质量指标为 ROC-AUC,越高越好;该指标基于排名,对阳性率不敏感。OGB 按 Bemis-Murcko 骨架划分数据,因此评估分子的骨架在训练集中不存在。
库依赖 RDKit(可通过 scienceclaw_tools(operation=show, target=molecules) 检查)。提供的能力包括:
- scilib.molecules.featurize(smiles, kinds=...) 返回 (X, valid, names);kinds 可选 morgan_counts、atompair_counts、maccs、descriptors(RDKit 2D)或 concat;无法解析的 SMILES 会得到全零行且 valid 为 False。
- scaffold_groups(smiles) 用于分组划分。
- fit_predict(train, y, *queries):类别平衡的随机森林加极端随机树(TreeEnsemble),输出 [0, 1] 内的有限分数,无法解析的查询 SMILES 取中位数分数。
- grouped_cv_auc(train, y, groups="scaffold"):使用骨架不交叉折的折外 AUC。
对应算子:molecule_features_rdkit、molecule_scaffold_ids、molecule_activity_classifier、molecule_scaffold_cv_auc。
该库不附带预训练分子权重;路线是经典特征化加树集成。
使用方式
可选路线:
- 基线:在少量简单计数(原子数、键数、环数、元素占比)上做类别平衡的逻辑回归。
- 默认:在 concat 特征上使用 molecules.fit_predict。
- 通过 grouped_cv_auc 得到的汇总折外 AUC,比较不同特征块、树的数量以及排名平均的融合方案。
适用场景
适用于从 SMILES 出发的二分类分子活性/性质预测,尤其是需要按骨架划分评估、关注排序质量(ROC-AUC)而非绝对概率的场景。
限制与规则
- 必须使用骨架分组的折进行验证;在骨架偏移下,随机折会高估 AUC。
- 小查询集且活性分子很少时,AUC 仅依赖少量正负样本对,噪声很大:不要用查询集选择模型,也不要把微小差异当作真实差异。
- 绝不使用查询标签或由标签衍生的特征。保留每一行查询(无效 SMILES 仍需给出有限分数)及其顺序。
- 输出必须有限、位于 [0, 1] 内,且每个查询分子一个值。