摘要(TL;DR)
第一阶段 聚焦驱避剂 MVP:以中华按蚊 OBP1 + SAP1 + SAP2 为联合靶标,跨蚊种迁移学习作为冷启动,输出 50–100 个候选做 Y-tube + arm-in-cage 验证。
第二阶段 扩展到 OBP4、ORco、关键 OR;同步建立杀虫靶标层(AChE、VGSC、GABA、nAChR)。
核心原则 :不同终点(ED50 / MED / LC50 / repellency%)必须分开建模;docking score 不能直接当活性;多任务输出 + 不确定性 + active learning。
现成资源 :Asi_obp1_qmean_in_B-factor.pdb、obp1_pocket2.sdf、references 中冈比亚按蚊 / 伊蚊系列数据。
1. 总体思路与平台架构
平台沿"数据抽取 → 结构筛选 → 多模型打分 → 候选选择 → 实验回填 "路径推进。
平台架构:数据 → 靶标 → 模型 → 实验 → 回填闭环
文献 & 数据库
ChEMBL · PubChem
BindingDB · 文献
化合物 / 活性
标准化
RDKit · OPSIN · InChIKey
三靶标 docking
+ MD / MM-GBSA
OBP1 + SAP1 + SAP2
多模型 ensemble
Chemprop + Uni-Mol + XGBoost
50–100 候选
高分 + 多样性 + 高 unc
中华按蚊湿实验
Y-tube · AIC
SAP/OBP binding · LC50
数据回填 + 校准
阴性结果同等重要
SHAP / attention 解释
下一轮迭代
active learning 选样
高分 · 高 unc · 多样性
迭代循环 · ~3 个月 / 轮
为什么跨蚊种冷启动
references 中直接针对中华按蚊的高质量活性数据 < 100 条,但冈比亚按蚊(
An. gambiae )、埃及伊蚊(
Ae. aegypti )、白纹伊蚊(
Ae. albopictus )合计达 10³–10⁴ 条。第一阶段把它们作为迁移学习的源域,中华按蚊作为目标域。
2. 数据层:文献与数据库抽取
2.1 化合物表 compounds.csv
字段 说明 示例
compound_id 内部唯一编号 CMP000001
name 化合物名称 DEET / citronellal / carvacrol
smiles RDKit canonical SMILES CCN(CC)C(=O)c1cccc(C)c1
inchikey 去重标识,2D 层取前 14 字符 MMOXZBCLCQITDF-UHFFFAOYSA-N
source 来源 literature / ZINC / PubChem / essential_oil
purchasable 是否可购买 yes / no
cas CAS 号 134-62-3
notes 异构体 / 盐型 / 混合物等 —
标准化规则 :SMILES 先用 RDKit MolStandardize 去盐、中性化、tautomer 标准化,再生成 InChIKey;同义名归一化到首选名。
2.2 生物活性表 bioassays.csv
字段 说明 示例
compound_id 关联化合物表 CMP000001
species 蚊种 An. sinensis / An. gambiae / Ae. aegypti
strain 品系 / 抗性背景 susceptible / field
stage 发育阶段 larva / adult
sex 性别 female / male / mixed
assay_type 实验方法 Y-tube / arm-in-cage / warm-body / larval LC50
endpoint 活性终点 ED50 / ED95 / MED / LC50 / repellency%
value / unit 数值与单位 4.02 / nmol·cm⁻²
exposure_time / dose / solvent 实验条件 15 min / 20 nmol·cm⁻² / ethanol
positive_control / target 对照与靶标 DEET / OBP1 / SAP2 / AChE
reference / confidence 文献来源与可信度 DOI / high·medium·low
关键原则
不同终点不能合并为同一标签。
ED50/ED95 (达到 50/95% 驱避剂量)、
MED (最小有效剂量)、
LC50/LC90 (致死浓度)、
repellency% (特定条件驱避百分比)——口径不同,不可跨条件混合训练。
2.3 数据质量门控
门控 规则 处理
结构合法 RDKit 能解析、原子数 ≤ 100、分子量 50–800 不通过:reject
终点合法 endpoint 在白名单、unit 归一化 不通过:confidence=low
来源可信 同行评议期刊 / 公开数据库 二手转述:confidence=medium
起手数据集 :从 references 抽 100–300 条高质量样本(DEET、picaridin、IR3535、citronellal、linalool、geraniol、carvacrol、cumin alcohol、nepetalactone、cinnamate 系列)跑通 pipeline 再扩量。
3. 靶标层 + 化合物来源策略
3.1 第一阶段:中华按蚊驱避剂三联靶标
结合 references,第一阶段驱避剂筛选建议同时构建三个互补靶标,形成证据三角:
靶标 定位 结构来源 覆盖化合物类 优先级
AsiOBP1
体液中气味结合蛋白,经典驱避剂靶标
已有同源模型 Asi_obp1_qmean_in_B-factor.pdb(模板 AgamOBP1-Icaridin)
DEET、picaridin、IR3535、nepetalactone
高
AsiSAP1 NEW
感觉附肢(触角 / 喙 / 跗节)表达的 SAP 家族成员,参与气味分子在外周的捕获
同源建模:AlphaFold2 / ESMFold;模板可用 AgamSAP1 或 AaegOBP22 同家族
较亲水驱避剂、酰胺类(DEET 类)
高
AsiSAP2 NEW
SAP 家族另一关键成员,文献中 AgamSAP2 已被多次报道结合 DEET、IR3535 与多种萜类
同源建模:以 AgamSAP2 或 CquiOBP1 为模板
DEET、IR3535、citronellal、carvacrol、萜类
高
为什么把 SAP1 / SAP2 与 OBP1 并列
表达位置互补 :OBP1 主要在触角淋巴液;SAP1 / SAP2 富集在感觉附肢,直接面对外界化学信号。驱避剂在被嗅觉受体感知前必先穿过这一层。
结合谱互补 :AgamSAP2 文献已显示对 DEET、IR3535 等合成驱避剂有 μM 级亲和;OBP1 对 picaridin / icaridin 一类亲和强。两者合用能减少 OBP1 单靶标的偏差。
跨蚊种保守性 :SAP1 / SAP2 在按蚊属内序列保守度较高,AgamSAP2 → AsiSAP2 同源建模可信度通常高于 OR 类。
降低 docking 假阳性 :三靶标共识打分(consensus score)可显著提升候选可靠性。
AsiSAP1 / AsiSAP2 结构准备清单
步骤 工具 输出 / 质控指标
序列获取 NCBI / VectorBase(An. sinensis SAP1/SAP2 ortholog) FASTA + 跨物种比对
同源建模 AlphaFold2 / ColabFold / ESMFold;或 MODELLER + AgamSAP2 模板 pLDDT > 70 的核心域
结构质控 QMEAN / MolProbity / PROCHECK Ramachandran 合格区 > 90%
口袋识别 fpocket / SiteMap / P2Rank 口袋编号、体积、可药性评分
受体准备 PDBFixer + AutoDock Tools / Meeko AsiSAP1.pdbqt / AsiSAP2.pdbqt
探针 docking 验证 Vina:DEET / picaridin / IR3535 / citronellal 4 个探针 合理 pose + key residue 接触
3.2 化合物来源策略:两层 + 分阶段
三靶标 docking 的输入化合物 不是二选一 ,而是分两层、按阶段推进。文件夹内现有的 obp1_pocket2.sdf 与 references 抽取的化合物属于第一层;ZINC / PubChem 等外部库属于第二层,在第一层 pipeline 跑通之后再放大。
层级 来源 规模 用途 阶段
第一层 核心 benchmark 库
references 文献抽取 + 项目内 obp1_pocket2.sdf + 已知驱避剂模板
100–300
验证 pipeline、校准 docking 参数、提供阳性 / 阴性对照、训练冷启动模型
阶段 1(W4–W8)
第二层 扩展虚筛库
COCONUT / SuperNatural / ZINC22 in-stock / PubChem BioAssay / ChEMBL
10⁴–10⁶
大规模发现新候选骨架
阶段 1 末 → 阶段 2
为什么不能跳过第一层直接上 ZINC / PubChem
没有 ground truth 就无法验证 pipeline :DEET、picaridin、IR3535、citronellal、carvacrol 这些已知靶标命中 + 有湿实验数据的化合物,必须先在三靶标 docking 中"打中"——pose 合理、关键残基接触正确、打分排序与文献活性相关——才证明流程没问题。
冷启动训练数据不足 :直接虚筛 10⁶ 数据库,没有标签去训练判别力,结果不可解释。
算力浪费 :先用 100–300 化合物调好参数(盒大小、exhaustiveness、口袋选择、三靶标共识权重),再放大到百万级,能省 10×–100× 算力。
第二层扩展虚筛库(按驱避剂适配度排序)
库 规模 特点 适用度
COCONUT ~70 万 天然产物(精油、萜类、生物碱),与驱避剂候选最贴近 高
SuperNatural 3 ~50 万 天然产物 + 商业可获取 高
ZINC22 / ZINC15 in-stock ~10⁷ 可购买子集 可立刻买到,便于后续湿实验 高
ZINC fragments ~10⁵ MW 100–250,挥发性范围契合驱避剂 中高
PubChem BioAssay 子集 视过滤而定 已有部分活性标签,可做半监督 中
DrugBank / ChEMBL ~10⁴ 药物分子,多数 MW/logP 不符驱避剂;但可服务于杀虫靶标 低(驱避)/ 中(杀虫)
第二层 docking 前的瘦身过滤(先过筛再 docking)
直接对百万级库 docking 不现实,建议先做轻量级过滤,把规模压到 10⁴–10⁵ 量级再进 docking:
第二层 docking 前的瘦身过滤漏斗(10⁶ → ~5×10⁴)
原始库
~10⁶ 化合物
物化属性过筛后
~3×10⁵ · 保留 30%
挥发性过筛后
~5×10⁴ · 保留 10–20%
结构清洗后
~4.8×10⁴ · 保留 95%
相似性粗筛后
~5×10³ · 保留 5–15%
★ 进入三靶标 docking
OBP1 / SAP1 / SAP2 · ~5×10⁴ 量级
物化过滤
MW 100–350 · logP 1.5–5 · TPSA 10–80
挥发性过滤
vapor pressure 10⁻⁵–10⁻¹ mmHg · bp 150–280 ℃
结构清洗
去 PAINS · 去 reactive groups · 去重复
相似性粗筛
Tanimoto > 0.3 vs 驱避剂模板(Morgan FP)
≈ 1/20 输入量进入 docking
省 10×–100× 算力 · 保留可购买性约束
阶段化推进顺序
W4–W5(第一层) :100–300 已知化合物 × 三靶标 docking → 验证 pose、关键残基、共识打分 → 与文献活性相关性检查(Spearman ρ)。
W5–W6(参数固化) :基于第一层结果固定 Vina 盒大小、exhaustiveness、共识权重、相似性阈值。
W6–W7(第二层瘦身) :拉取 COCONUT + ZINC in-stock + SuperNatural → 物化 / 挥发性 / PAINS / Tanimoto 过滤 → ~5×10⁴ 子集。
W7–W8(第二层 docking) :子集 × 三靶标批量 docking → consensus score 排序 → 进入 Ensemble 模型层。
3.3 OBP1 / SAP 三靶标 docking 流水线
步骤 工具 输出
同源建模 / 结构修补 AlphaFold2 / PDBFixer / Schrödinger Prep 加氢、补 loop、去水
口袋识别 fpocket / SiteMap / P2Rank 口袋质心 + 体积 + 可药性
受体准备 AutoDock Tools / Meeko .pdbqt / .maegz
Docking AutoDock Vina (吞吐)+ GNINA (CNN re-scoring 前 1–5%)docking score + pose;Vina 全量打分、GNINA 复打 Top hits
后处理 PLIP / ProLIF 关键残基接触、氢键、π-stacking
MD 复检 GROMACS / OpenMM / AMBER 100–500 ns RMSD/RMSF、MM/GBSA
Vina 起手参数(参考) :exhaustiveness=16、num_modes=20、energy_range=4,盒中心覆盖口袋质心 ±12 Å。
3.4 第二阶段:OBP4、ORco、关键 OR
靶标 作用 优先级 备注
OBP4 香茅醛、部分挥发物感知 / 转运 高 AgamOBP4 X-ray 可作模板
ORco 广谱嗅觉共受体,拮抗剂跨蚊种 高 cryo-EM 结构已发表
关键 OR 宿主气味识别(indole、1-octen-3-ol、2-methylphenol) 中高 需异源表达验证
OBP7 等 精油成分、空间驱避 中 数据较少
3.5 杀虫靶标扩展
靶标 / 机制 关联活性 推荐结构来源
acetylcholinesterase (AChE) 有机磷 / 氨基甲酸酯 AlphaFold / PDB 同源
voltage-gated sodium channel (VGSC) 拟除虫菊酯击倒 cryo-EM(昆虫直系同源)
GABA receptor / Rdl 神经毒性杀虫 PDB / 同源建模
nicotinic AChR (nAChR) 新烟碱类 cryo-EM
mitochondrial complex I/III 呼吸链抑制 同源建模
GST / P450 / esterase 解毒代谢 / 抗性 数据库 + 同源
结论
驱避剂筛选:
OBP1 + SAP1 + SAP2 三靶标共识打分 起步;杀虫筛选独立建靶标层。
4. 模型层:多模型集成
核心理念 :不追求单一"大一统分数",而是多模型出多维证据,再用规则或学习的元模型合成排序。
4.1 训练数据准备:从原始文献到 ML-ready 数据集
第 2 节定义了 compounds.csv 和 bioassays.csv 的字段结构。这一小节回答:怎么把它们变成模型能直接吃的训练集 。整个流水线分七步。
训练数据准备 7 步流水线(数据收集 → 偏置处理)
1
数据收集
公开数据库 + 文献
ChEMBL · PubChem · BindingDB
PubMed / Scopus 检索式
2
字段抽取 + 归一化
OPSIN / NCI CADD (名 → SMILES)
RDKit MolStandardize
InChIKey 去重 + κ ≥ 0.8 抽检
3
标签工程
EC/LC/Kd → pEC(-log10 mol/L)
截断数据 → censored regression
分类阈值定义
4
任务定义
T1–T6 多任务
contact / spatial / larvi /
adulti / safety / env
7
偏置 / 噪声 / 不平衡
class weight · focal loss
heteroscedastic regression
confidence-weighted sample
6
负样本 + 数据增强
DUD-E decoys (5×, weight 0.3)
SMILES enumeration (5–10×)
对映体 / 互变异构枚举
5
训练 / 验证 / 测试划分
scaffold-balanced (5-fold CV)
+ 时序 split (≤2022 vs 2023+)
+ 跨蚊种 hold-out
→ ML-ready
送入 4.2 模型层
4.1.1 数据收集来源(含具体检索策略)
来源 规模(预估) 获取方式 用途
ChEMBL (target: mosquito OBP / OR / AChE / Rdl / VGSC)
~5 000–10 000 records
ChEMBL Web Services / Python chembl_webresource_client,按 target 拉
跨蚊种迁移学习源域
PubChem BioAssay
~10 000+
PUG REST API,按 AID 检索(搜索关键词:Anopheles / Aedes / mosquito repellent / larvicidal )
分类标签(active / inactive)
BindingDB
~2 000
站点下载 + UniProt ID 过滤
OBP / SAP 类亲和数据
IRAC MoA 数据库
~500 类已知杀虫剂
站点下载
杀虫剂 ground truth + 抗性参考
PubMed / Scopus 文献
~200–500 篇核心
检索式(见下方)+ PDF 抽取
中华按蚊及近缘蚊种湿实验数据
项目 references / 文件夹
现有数十篇
本地 PDF 抽取
已纳入项目的核心文献
PubMed / Scopus 检索式模板
# 驱避剂方向
("Anopheles sinensis"[Title/Abstract] OR "Anopheles gambiae"[Title/Abstract]
OR "Aedes aegypti"[Title/Abstract] OR mosquito[Title/Abstract])
AND (repellent[Title/Abstract] OR repellency[Title/Abstract]
OR "olfactory binding"[Title/Abstract] OR OBP[Title/Abstract]
OR SAP[Title/Abstract] OR "odorant receptor"[Title/Abstract])
AND ("ED50"[Title/Abstract] OR "EC50"[Title/Abstract] OR Kd[Title/Abstract]
OR "Y-tube"[Title/Abstract] OR "arm-in-cage"[Title/Abstract])
# 杀虫剂方向
(mosquito[Title/Abstract] OR Anopheles[Title/Abstract] OR Aedes[Title/Abstract])
AND (larvicidal[Title/Abstract] OR adulticide[Title/Abstract]
OR "knockdown"[Title/Abstract] OR insecticide[Title/Abstract])
AND ("LC50"[Title/Abstract] OR "LD50"[Title/Abstract] OR "KT50"[Title/Abstract]
OR "mortality"[Title/Abstract])
4.1.2 字段抽取与归一化
步骤 工具 输出
PDF → 文本 + 表格 GROBID (结构化)+ Camelot / tabula-py (表格)结构化 JSON + CSV
化合物名 → SMILES OPSIN (IUPAC 名)+ NCI CADD chemical resolver (通用名 / CAS)raw SMILES
SMILES 标准化 RDKit MolStandardize (去盐、中性化、tautomer 归一化)canonical SMILES + InChIKey
单位归一化 自写 unit converter(μM / nM / mg·L⁻¹ / ppm / %v/v → 统一 nM 或 mg·L⁻¹) 标准化数值
去重 InChIKey 前 14 字符(2D 层)合并;同结构跨文献多记录用中位数 + MAD 聚合 每化合物 × 每任务 1 行
双人复核 抽样 ≥ 10% 由人工核对(化合物名 → SMILES、unit、endpoint) Cohen κ ≥ 0.8 才入库
4.1.3 标签工程
原始终点 变换 用途
ED50 / EC50 / LC50 / Ki / Kd pEC = -log10(EC, mol·L⁻¹) 回归任务的连续标签
repellency% @固定剂量时间 保留 0–1 浮点,按 assay_type 分桶 不可跨条件混训
MED 取 log10,作为辅助任务 多任务共享表征
截断数据 "> 10 μM" 标记 censored=right,用 censored / Tobit regression 避免直接舍弃
分类化阈值 repellency ≥ 80% → active;pLC50 ≥ 5 → active 分类任务标签
阈值选择的硬约束
分类阈值不能任意拍。建议先做
活性分布直方图 ,选在双峰之间或文献共识值(如 LC50 < 10 μM 是 mosquito 杀虫剂 "active" 的经验线)。阈值变化超过 0.5 log 单位会让模型重训。
4.1.4 任务定义(多任务表)
任务 ID 标签 类型 预估样本量 关键约束
T1_contact_repellent pED50 (arm-in-cage) 回归 ~500 同 assay 协议
T2_spatial_repellent repellency% (Y-tube) 回归 0–1 ~400 同剂量分桶
T3_obp_binding pKd / pKi 回归 ~300 按靶标分子任务
T4_larvicidal pLC50 (24 h) 回归 ~1500 限 stage=larva
T5_adulticidal pLD50 / pKT50 回归 ~800 限 stage=adult
T6_safety_flag skin sensitization / hERG / 哺乳类急性 多标签分类 ~3000(来自 ADMET 库) 共享编码器即可
Chemprop 2.0 支持原生多任务:共享 D-MPNN 编码器 + 每任务独立 head;缺标签的样本不参与该任务 loss(mask 即可)。
4.1.5 数据划分(三套独立报告)
划分 方法 比例 / 折数 用途
主报告:scaffold-balanced
Bemis-Murcko scaffold 聚类后分组分层抽样
5-fold CV,70/15/15
主要泛化指标
副报告 1:时序 split
文献发表年份 ≤ 2022 训练;2023+ 测试
固定 hold-out
检查是否还能预测"未来"化合物
副报告 2:跨蚊种 hold-out
训练用 An. gambiae / Ae. aegypti / Ae. albopictus ;中华按蚊全部留作测试
固定 hold-out
检验真实部署场景(中华按蚊数据极少)
额外:cluster split
Butina 聚类(Tanimoto 截断 0.4)后分组
用于活性悬崖(activity cliff)评估
边缘 case sanity check
禁用 random split
Random split 几乎一定会让训练集和测试集出现近邻化合物,导致 ROC-AUC 虚高 0.10–0.20。任何文献声称 random split AUC > 0.9 的,复现到 scaffold split 通常掉到 0.65–0.75。我们以
scaffold-balanced + cross-species hold-out 双指标为准。
4.1.6 负样本构造
许多文献只报告活性化合物。模型需要明确负样本,否则会把整个化学空间都打高分。三类负样本:
来源 数量比 构造方式
真实负样本 1×(同活性样本) 文献明确报告 inactive(< 阈值)
property-matched decoys 5× DUD-E 或自建:在 MW ±50 / logP ±1 / TPSA ±20 / 旋转键数 ±2 范围内随机抽取化合物,并 Tanimoto < 0.35 排除潜在活性
presumed inactives 2× 大库(PubChem)随机抽样并 Tanimoto < 0.3 vs 活性集
训练时对 decoy 给较低的 sample_weight(如 0.3),避免被 decoy 主导梯度。
4.1.7 数据增强
增强 倍数 工具 注意
SMILES enumeration 5–10×(仅训练集) RDKit MolToSmiles(doRandom=True) 对 Transformer / SMILES-based 模型有效;GNN 不需要
对映体枚举 1–4× RDKit EnumerateStereoisomers 当原数据未指明立体时,给每个异构体平均标签
互变异构枚举 1–3× RDKit TautomerEnumerator 仅在 docking 阶段需要;ML 训练用 canonical 一份即可
4.1.8 类不平衡、噪声与偏置处理
问题 处理
类不平衡 (active : inactive ≈ 1:10)class weight = inverse frequency 或 focal loss (γ=2);不推荐 naive 上采样
实验噪声 heteroscedastic regression(同时预测均值和方差);用 confidence 字段作为 sample weight:high=1.0 / medium=0.5 / low=0.2
活性悬崖 (极相似结构活性差异大)专门留一组 cliff pair 用作单独评估;训练时不特殊处理,避免过拟合
多记录冲突 (同化合物多文献结果差异 > 1 log)标记 confidence=low;保留所有记录但训练时只用中位数
蚊种偏置 训练时按蚊种分层抽样;loss 内可加蚊种 token 作为条件输入
骨架偏置 (精油 / 萜类占比过高)分层抽样保证每个 fold 各 chemotype 比例一致;评估时按 chemotype 分桶报告
4.1.9 数据快照与版本管理
用 DVC (或 git-lfs + 时间戳 CSV)对每轮训练前的数据集打 hash 快照,记录 data_version 字段;模型 artifact 必须带 data_version + code_commit 双标签。
每轮 active learning 回填后产生新版本(v1.0 → v1.1 → v1.2 …),旧版本不可覆盖,便于做模型回滚和性能溯源。
训练集 / 测试集的 InChIKey 列表单独存档(train_keys.txt / test_keys.txt),新化合物入库时自动检查是否已在历史测试集 ,避免 data leakage。
4.1.10 数据准备完成度自检清单
进模型层前必须全部 ✓
✅ 所有 SMILES 经 RDKit MolStandardize;InChIKey 去重;Cohen κ ≥ 0.8 的人工抽检报告归档
✅ 所有 endpoint 已转 p-scale;截断数据明确标记 censored 方向
✅ 任务 T1–T6 已独立定义;缺标签样本明确 mask
✅ scaffold-balanced split / 时序 split / 跨蚊种 hold-out 三套划分均已生成并冻结
✅ 负样本(真实 + decoy + presumed)按比例构造完毕
✅ sample_weight 列已根据 confidence 与样本类型填好
✅ 数据集 hash + 版本号已写入 data_version.json
4.2 分子结构模型(精选三件套)
不堆工具,只保留 2023–2025 文献中表现稳定、可复现、社区活跃的三件套:
角色 工具 定位 选用理由(文献支撑)
主力 ML 模型
Chemprop 2.0 (D-MPNN)
多任务回归 / 分类 + ensemble,主输出 contact / spatial / larvicidal / adulticidal 分数
Yang et al. JCIM 2019;Stokes et al. Cell 2020(halicin 发现);Heid et al. JCIM 2024(Chemprop 2.0 重写、多任务原生支持)。在 MoleculeNet、ADMET、抗菌等基准上都是 GNN 类最稳的工程实现。
预训练 embedding
Uni-Mol (3D-aware)
给冷启动 / 小样本任务提供分子表征;可与 Chemprop 输出拼接
Zhou et al. ICLR 2023;2024 后续在 ADMET、PCQM4Mv2 仍是 SOTA。优于 2D-only 的 ChemBERTa / MolFormer,对 OBP/SAP 这种构象敏感任务尤其合适。
传统基线 / 不确定性
XGBoost + RDKit Morgan(2,2048)
数据 < 1k 时的稳健 baseline;用 quantile regression 给不确定性
2024 多个 ADMET benchmark 显示:数据 < 500 时 XGBoost + Morgan 仍能与 GNN 打平甚至更优(参考 Bran et al. Nat. Mach. Intell. 2024 评述)。作为 sanity check 必备。
为什么砍掉这些
ChemBERTa / MolFormer :2D-only,对 docking + 行为活性这类需要 3D 构象的任务,被 Uni-Mol 全面超越。
AttentiveFP / 其他 GNN 变体 :Chemprop 2.0 在多任务、unc、scaffold split 上工程化更完整。
DGL-LifeSci :可直接用 Chemprop 替代,避免维护两套依赖。
DeepPurpose :偏蛋白—配体亲和力(DTA),与本项目"行为活性预测"目标不完全对齐,且更新放缓。
训练流程 :
用 ChEMBL 通用分子 + 跨蚊种活性数据多任务预训练 Chemprop(共享 D-MPNN 编码器、每任务独立头)。
用中华按蚊小样本 fine-tune(或仅训练任务头做 linear probe,看数据量)。
同时跑 Uni-Mol embedding + XGBoost 作为对照;ensemble 时取平均或加权融合。
必须 scaffold-balanced split 5-fold CV ,禁止 random split;额外报告时序 split 和按蚊种 hold-out 的指标。
Chemprop 超参起手
chemprop:
hidden_size: 300
depth: 3
dropout: 0.1
ffn_num_layers: 2
batch_size: 50
init_lr: 1e-4
max_lr: 1e-3
final_lr: 1e-4
epochs: 50
ensemble_size: 5
features_generator: [rdkit_2d_normalized]
split_type: scaffold_balanced
4.3 Docking 与结构特征
每个候选 × 每个靶标(OBP1 / SAP1 / SAP2 / OBP4 / ORco …)× 多 pose,建议输出:
特征 说明
docking_score Vina / Glide / GNINA 打分
pose_cluster RMSD 1.5 Å 聚类后的代表 pose
key_residue_contacts OBP1(Trp114 / Phe123 / Leu76)、SAP2(疏水核心残基)等
hbond_count / hydrophobic / π-stacking PLIP 输出
ligand_efficiency -ΔG / heavy_atom_count
MD_rmsd_mean 100 ns MD 配体 RMSD 均值
MM_GBSA_dG 结合自由能(可选)
consensus_score OBP1+SAP1+SAP2 共识打分(rank-aggregation 或 Borda count)
重要提醒
Docking score 与行为活性不是线性关系。references 中多次出现"结合强但 Y-tube 无响应"。务必把 docking、关键残基、姿态稳定性、挥发性、实验条件
作为联合特征 喂入下游 ML,而非单独排序。三靶标共识打分能显著降低单靶标假阳性。
4.4 药效团与指纹相似性(精选)
驱避剂模板库:DEET、picaridin、IR3535、EBAAP;citronellal、linalool、geraniol、α-pinene、limonene;carvacrol、thymol、eugenol;nepetalactone、cumin alcohol、methyl jasmonate;ethyl / butyl cinnamate、thymyl isovalerate。
度量 工具(推荐唯一) 用途
2D 结构相似 RDKit Morgan FP (r=2, 2048 bit) + Tanimoto 主排序信号,与 Murcko 一起足够覆盖驱避剂常见骨架
骨架级相似 RDKit Murcko scaffold 避免 Top-N 候选骨架塌缩
3D 形状相似 RDKit ETKDG 多构象 + Shape Tanimoto (开源替代 ROCS)对驱避剂这种小柔性分子已够;不再引入 OpenEye 商业许可
砍掉 MACCS(与 Morgan 信息冗余)、Pharmer / RDKit Pharm2D(驱避剂数据量太小,pharmacophore 学习不可靠)、OpenEye EON / Psi4 ESP(成本高、收益不大)。如果后期发现 2D+Murcko+shape 仍不够辨别,再考虑加入 pharmacophore。
4.5 ADMET 与挥发性过滤(精选三件套)
同样砍到三件,文献支撑明确:
角色 工具 覆盖 选用理由
主力 ADMET
ADMETlab 3.0 (web + batch API)
logP / logS / TPSA / skin sensitization / 急性 LD50 / 心毒 / hERG / 鱼蜂毒性等 > 100 端点
Xiong et al. Nucleic Acids Res. 2024 更新版,端点覆盖与精度都是当前公共工具最好的一档;HTTP API 易批处理。
开源备份
admet_ai (Stanford / MIT,2024 开源)
40+ ADMET 端点 + Chemprop 内核 + unc
Swanson / Stokes 等的 2024 工作,可在本地批量跑,避免对在线 API 过度依赖;和 4.1 的 Chemprop 共享生态。
挥发性 / 环境
EPI Suite (US EPA)
vapor pressure / boiling point / 生物降解 / BCF
挥发性、生物降解是 ADMETlab / admet_ai 都不覆盖的盲点;EPI Suite 是 EPA 监管级别参考,必备。
RDKit 内置可计算 MW / TPSA / logP(Crippen),不必另引 XLOGP3。砍掉 ProTox(与 ADMETlab 重叠)、OPERA / admetSAR / TEST / ECOSAR / ESOL(多模型分散维护成本,端点已被前三件套覆盖)。
过滤阈值参考
特征 驱避(参考) 杀虫(参考)
MW 100–350 150–500
logP 1.5–5 2–6
TPSA 10–80 < 140
vapor pressure (25 °C) 10⁻⁵–10⁻¹ mmHg 不强制
boiling point 150–280 °C 不强制
logS > -5 > -6
skin sensitization 低风险 —
急性 LD50 哺乳类 > 2000 mg/kg 哺乳类 > 300 mg/kg
鱼 / 蜂毒性 LC50 > 1 mg/L LC50 > 0.1 mg/L
生物降解 readily 可控
4.6 Ensemble 排名
输出列 来源 范围
contact_repellent_score 接触驱避模型集成 0–1
spatial_repellent_score 空间驱避模型集成 0–1
obp_sap_consensus OBP1+SAP1+SAP2 共识打分 0–1
larvicidal_score / adulticidal_score 杀虫模型集成 0–1
human_safety_score ADMET 安全集成 0–1
environmental_risk_score 生态毒性集成 0–1(越低越好)
uncertainty ensemble 方差 / Bayesian 0–1
recommended_assay 决策表 枚举
决策表(伪代码)
def recommend_assay(row):
if row.obp_sap_consensus > 0.7 and row.vapor_pressure_ok and row.safety_high:
return "Y_tube_then_AIC"
if row.contact_repellent_score > 0.7 and row.skin_risk_low:
return "arm_in_cage_or_warm_body"
if row.larvicidal_score > 0.6 and row.solubility_ok:
return "larval_LC50_24_48h"
if row.adulticidal_score > 0.6:
return "adult_KT50_mortality"
if row.activity_high and row.safety_risk_high:
return "defer_or_invitro_only"
return "hold"
5. 实验闭环与 active learning
5.1 候选选择策略(每轮 50–100)
类型 比例 目的
Top-N 高分候选 25–40 验证模型推荐能力
结构多样候选(MaxMin / Butina) 15–25 避免骨架塌缩
高不确定性候选 10–20 主动学习边界
阳性对照 5–10 DEET / picaridin / citronellal
阴性 / 弱活性对照 5–10 校准假阳性
5.2 推荐实验矩阵
实验 适用问题 主要输出 时长
Y-tube olfactometer 空间趋避 choice index, repellency% 1–2 d
arm-in-cage 接触驱避 / 防叮咬 landing/probing rate, ED50/ED95 半日 / 化合物
warm-body assay 模拟体温 + CO₂ repellency index 半日 / 化合物
GC-EAG 触角感知 EAG response 1 d / 化合物
OBP / SAP fluorescence binding 体外结合验证(含 SAP1 / SAP2) Ki / Kd / IC50 1 d
ORco / OR cell assay 受体功能 EC50 / IC50 / inhibition% 2–3 d
larval bioassay 幼虫毒杀 LC50 / LC90 24–48 h
adult mortality / knockdown 成虫杀虫 KT50, mortality% 24 h
第一阶段聚焦 :Y-tube → arm-in-cage → SAP1/SAP2/OBP1 重组蛋白荧光结合(验证靶标命中机制)→ 幼虫 LC50(若同步筛杀虫)。
5.3 Active learning 循环
Active learning 四轮迭代循环
M0 · 冷启动
M3 · 第一轮完成
M6 · 校准完成
M9 · 平台稳态
→ 大规模虚拟筛选
ROUND 0 · 冷启动
输入
跨蚊种迁移数据
OBP1+SAP1+SAP2
共识 docking
输出
推荐 50–100 候选
高分 + 多样性 + 高 unc
无湿实验标签
ROUND 1 · 首轮验证
输入
中华按蚊湿实验
Y-tube + AIC
SAP/OBP 荧光
输出
回填活性 + 失败样本
校准模型 + SHAP 解释
命中率 ≥ 20%
ROUND 2 · 主动选样
输入
高分 + 高 unc +
多样性混合采样
+ OBP4 / ORco 引入
输出
再测 50–100 候选
学习模型边界
命中率 ≥ 35%
ROUND 3 · 平台稳态
输入
累积湿实验数据
+ 杀虫靶标层
+ ADMET / 环境
输出
中华按蚊专属模型
自动化筛选平台
→ 进入 10⁵–10⁶ 虚筛
回填 → 校准
回填 → 校准
回填要点 :阴性结果同样重要;失败样本(结构相似但无活性)是模型最需要学的信号。每轮做一次 SHAP / attention 解释,看模型为什么打错。
6. 多任务输出与决策矩阵
任务 主要机制 推荐标签
接触驱避 减少落蚊 / 叮咬 MED, ED50, ED95, landing inhibition
空间驱避 远距离气味场干扰 Y-tube choice, spatial repellency index
幼虫毒杀 幼虫死亡 LC50, LC90, 24/48 h mortality
成虫杀虫 击倒 / 死亡 KT50, mortality, knockdown rate
人用安全 皮肤 / 吸入 / 急性 sensitization, irritation, LD50
环境风险 非靶标 / 持久性 fish/bee tox, biodegradation
多目标优化目标函数
priority = w1·repellent/insecticidal_activity
+ w2·target_evidence (OBP1 + SAP1 + SAP2 + ORco + AChE + VGSC ...)
+ w3·physchem_fit (volatility, logP, MW)
+ w4·human_safety
- w5·environmental_risk
+ w6·availability (purchasable / synthesizable)
- w7·model_uncertainty
权重 w 在第 0 轮先用专家判断,第 1 轮后用实验数据回归校准。
7. 落地路线与里程碑
图 7.1 · 9+ 个月里程碑甘特图
断轴:Phase 1 按"周"展开(W1–W12),Phase 2–4 按"月"压缩(M4–M9+);蓝色填充区为 MVP 重点窗口
中华按蚊筛选平台 12 周里程碑甘特图
PHASE 1 · MVP · M1–M3 (按周)
PHASE 2–3 · M4–M9 (按月)
PHASE 4 · M9+
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
W11
W12
M4
M5
M6
M7
M8
M9
M10+
references 数据抽取
compounds + bioassays
SAP1 / SAP2 同源建模
QMEAN / pLDDT
OBP1 + SAP 结构准备 / 口袋
.pdbqt × 3 + fpocket
第一层 benchmark docking
100–300 化合物 + Spearman ρ
参数固化 + 第二层瘦身过滤
→ ~5×10⁴ 子集
Chemprop / QSAR 基线训练
scaffold-CV + ensemble
第二层 docking + ADMET 筛
consensus score
★ Ensemble 排序 → 50 候选
candidates_round1.csv
Y-tube + AIC + SAP/OBP 荧光
湿实验 4 周
★ Phase 1 完成 · R1 数据回填
→ KPI M3 校准
数据回填 + 多任务校准
OBP4 / ORco 集成 + R2 选样
★ R2 50–100 候选
杀虫数据 + AChE / VGSC 靶标
larvicidal / adulticidal 模型
自动化稳态筛选平台
Phase 1 任务(重点)
Phase 2 任务
Phase 3 任务
Phase 4 平台
关键里程碑
关键节点(W8 / M3 / M6)
阶段 1:驱避剂 MVP(M1–M3)
周次 里程碑 交付物
W1–W2 references 数据抽取 compounds.csv(≥ 200)、bioassays.csv(≥ 500)
W2–W3 AsiSAP1 / AsiSAP2 同源建模 + 质控 两个 .pdb + QMEAN / Ramachandran 报告
W3 OBP1 / SAP1 / SAP2 结构准备 三个 .pdbqt + 口袋报告
W4–W5 第一层 benchmark(100–300 已知化合物)× 三靶标 docking + 后处理 docking 总表 + PLIP 接触矩阵 + 与文献活性 Spearman ρ
W5–W6 固化 docking 参数与共识权重;拉取 COCONUT / ZINC in-stock / SuperNatural 并瘦身过滤 ~5×10⁴ 第二层子集 + 过滤报告
W6 QSAR / Chemprop 基线训练 scaffold-CV 报告 + ensemble 模型
W7 第二层子集 × 三靶标 docking + ADMET / 挥发性筛 完整特征表 + consensus score 排序
W8 Ensemble 排序 + 候选 50 candidates_round1.csv
W9–W12 Y-tube + AIC + SAP1/SAP2/OBP1 荧光结合 回填活性 + 结合 Ki/Kd
人力 :计算建模 1 人 · 结构生物学 0.5 人 · 湿实验 1–2 人;3 个月跑完第一轮。
阶段 2:实验校准(M4–M6)
回填实验数据 → 多任务校准 → 加入 OBP4 / ORco → 第二轮 50–100 候选。
阶段 3:杀虫方向扩展(M6–M9)
整理 LC50 / KT50 数据 → 加入 AChE / VGSC / GABA / nAChR → larvicidal & adulticidal score → 环境毒性筛选。
阶段 4:稳态筛选平台(M9 起)
候选库自动导入 → 自动特征 + docking + ADMET + 相似性 → 多任务排名 + 推荐实验 → 实验数据自动回填 → 每轮自动更新模型与策略。
8. KPI 与数据质量门控
维度 指标 目标值(参考)
数据规模 bioassays 标准化条目 阶段 1 末 ≥ 1000
数据质量 confidence=high 占比≥ 60%
模型性能 跨蚊种 scaffold-CV ROC-AUC ≥ 0.75
模型性能 中华按蚊 fine-tune R² ≥ 0.5(第 1 轮)
结构质控 SAP1 / SAP2 同源模型 pLDDT 核心域 > 70
候选命中率 湿实验确认活性 / 推荐总数 ≥ 20%(R1)/ ≥ 35%(R2)
三靶标一致性 OBP1 / SAP1 / SAP2 共识 Top-50 重叠率 30–60%(过高过低都需排查)
结构多样性 Top-50 候选 Murcko scaffold 数 ≥ 15
安全性 候选 ADMET 红旗比例 ≤ 20%
9. 风险与回退方案
风险 触发信号 回退方案
中华按蚊数据不足 R2 命中率 < 15% 长期保持跨蚊种迁移,把中华按蚊作 fine-tune;扩展冈比亚按蚊湿实验
OBP1 单靶标脱节 docking 高分但 Y-tube 无响应 > 50% 降低 OBP1 权重,加重 SAP1 / SAP2 + OBP4 + ORco 证据 ;引入 MD + MM/GBSA
SAP1 / SAP2 同源模型质量差 核心域 pLDDT < 60 或关键残基不合理 用 ColabFold-Multimer 重做;或以 AgamSAP2 X-ray / cryo-EM 为靶标,结合姿态投影回中华按蚊
三靶标共识冲突 OBP1 / SAP1 / SAP2 Top-50 重叠率 < 10% 检查是否化合物理化空间偏置;引入 rank-aggregation 或加权策略
实验吞吐瓶颈 每轮湿实验 > 3 个月 Y-tube 高通量筛 → 漏斗式只让前 20 进 AIC;幼虫 LC50 用 96 孔板
过拟合到精油 / 萜类 scaffold-CV 训练高、验证低 强制 scaffold split;补合成驱避剂训练数据;做 chemotype 平衡采样
候选不可获取 Top-50 可购买 < 30% purchasable 作为硬约束或正权重;提前对接合成资源
ADMET 假阳性 多模型红旗但文献安全 集成 + uncertainty,不一票否决;标 confidence=low
10. 立即可执行的下一步
结构起点 :以 Asi_obp1_qmean_in_B-factor.pdb 为 OBP1 受体;PDBFixer 补氢、QMEAN 复测。
SAP1 / SAP2 建模 (本周新增):
从 NCBI / VectorBase 取 An. sinensis SAP1 / SAP2 序列。
用 ColabFold(AlphaFold2)或 ESMFold 跑同源建模,再用 MODELLER + AgamSAP2 模板做精修。
QMEAN / MolProbity 质控;fpocket 找口袋。
用 DEET / picaridin / IR3535 / citronellal 做 4 个探针 docking,验证 pose 合理性。
格式模板 :参考 obp1_pocket2.sdf,确定 ligand 准备 / 输出 schema。
首批化合物清单(≥ 100) :DEET / picaridin / IR3535 / EBAAP;citronellal / linalool / geraniol / α-pinene / limonene / myrcene;carvacrol / thymol / eugenol / cumin alcohol;nepetalactone / methyl jasmonate;ethyl・butyl cinnamate / thymyl isovalerate;ZINC15 子集 + 商业可获取天然产物库。
第一层小规模 benchmark :100–300 化合物(references 抽取 + obp1_pocket2.sdf + 已知驱避剂模板)先跑完整 pipeline(含三靶标共识打分),验证数据流、docking、模型、排序、ADMET 都通;用文献活性做 Spearman ρ 一致性检查。
第二层扩展虚筛准备 :
账号 / 下载:COCONUT、SuperNatural 3、ZINC22 in-stock 子集(按 MW/logP 切片下载,省带宽)。
瘦身过滤脚本:MW / logP / TPSA → 挥发性 → PAINS / reactive groups 去除 → Tanimoto 粗筛,目标产出 ~5×10⁴ 子集。
批量 docking 调度:Vina + GNU parallel / SLURM;预估 ~5×10⁴ × 3 靶标 ≈ 1.5×10⁵ 任务,单 CPU 核 ~10 s/任务,约 400 核·小时。
放大虚筛(阶段 2 起) :第一轮湿实验回填后,把第二层规模继续扩到 10⁵–10⁶(加 PubChem BioAssay、ZINC 全库),并启用 active learning 选样。
推进顺序(风险最低)
OBP1 + SAP1 + SAP2 三靶标驱避剂闭环 → 加 OBP4 / ORco → 加杀虫靶标 → 多任务平台稳态化。
11. 方案亮点:与已有文献方案的差异
过去 5 年蚊虫驱避剂 / 杀虫剂的 in silico 筛选论文可大致归为四类:(A) 单 OBP 靶标的 docking + 少量 MD 复检;(B) 纯 QSAR / 机器学习模型,不带结构信息;(C) 跨蚊种迁移或多任务学习;(D) 高通量虚筛 + 一轮湿实验。本方案与四类工作的差异化点如下:
维度 已有典型方案 本方案的改进
靶标层
大多只用 OBP1 单靶标 (A 类),偶尔加 ORco;SAP 家族被严重低估。
OBP1 + SAP1 + SAP2 三靶标共识打分 。SAP 在感觉附肢富集、对 DEET / IR3535 等合成驱避剂亲和强,能显著降低 OBP1 单靶标的假阳性;按蚊属内 SAP 同源建模可信度高于 OR 类。这一组合在公开论文里尚未系统化。
对接 ↔ 行为活性映射
把 docking score 直接当活性排序,是 A、D 类的通病;常出现"结合强但 Y-tube 无响应"。
明确区分 靶标命中 ≠ 行为驱避 :把 docking、关键残基接触、姿态稳定性、挥发性、实验条件作为联合特征 喂入下游 ML,并引入"结合方向判别"(结合强 + 与驱避剂模板相似 → 标 repellent;否则标 hit,不下行为活性结论)。
模型层
B 类多用单一 RF / SVM + Morgan FP;少数用 GNN 但缺 unc 与多任务。
Chemprop 2.0(多任务 D-MPNN)+ Uni-Mol(3D 预训练)+ XGBoost(基线 + 不确定性) 三件套 ensemble;输出多维分数(contact / spatial / larvicidal / adulticidal / safety / env / unc),不再合成单分数。
数据策略
C 类多任务论文常常 random split,泛化指标虚高;标签把 ED50 / LC50 / repellency% 混训。
三道数据质量门控 + 强制 scaffold-balanced split + 时序 split + 跨蚊种 hold-out 三套报告;不同终点严格分任务建模;中华按蚊作为目标域、跨蚊种作为源域的迁移学习路径明确。
实验闭环
D 类大多只跑一轮虚筛 + 一轮湿实验,无回填、无 active learning,模型不再更新。
主动 active learning:高分 + 高不确定性 + 结构多样性三层抽样 ;每轮都做 SHAP / attention 解释,回填阴性结果同等重要;明确每轮 KPI(命中率、AUC 提升、三靶标重叠率)。
化合物来源
许多论文要么只在精油 / 萜类小库内筛,要么直接对 ZINC 全库 docking 但无瘦身策略。
两层 + 分阶段 :第一层 100–300 已知化合物做 benchmark 与参数固化,第二层 COCONUT + ZINC in-stock + SuperNatural 经物化 / 挥发性 / PAINS / Tanimoto 瘦身到 ~5×10⁴ 再 docking,省 10×–100× 算力且保留可购买性 硬约束。
风险与回退
多数论文不讨论失败情况,方法学缺乏防御性设计。
显式 7 类风险 × 触发信号 × 回退动作 ,把"OBP1 与行为脱节"、"SAP 模型质量差"、"三靶标共识冲突"等真实风险写进方案,便于团队提前准备。
工程化
论文级一次性 pipeline,难以增量更新。
KPI / 数据质量门控 / 12 周里程碑表 / 算力预算(~400 核·小时)都量化;目标是可持续运行的筛选平台 ,不是一次性筛选实验。
一句话总结
本方案不是"再做一次 OBP1 虚筛",而是把现有蚊虫驱避剂筛选研究中分散在不同论文里的
多靶标共识 + 多模型 ensemble + 多任务输出 + active learning + 工程化 KPI 拼成一个可迭代、可回填、可问责的中华按蚊筛选平台。
11.1 可量化的竞争优势(预期)
指标 典型文献基线 本方案目标
第一轮湿实验命中率 5–15%(单靶标 docking) ≥ 20%(三靶标共识 + ensemble)
第二轮命中率(active learning) 大多无第二轮 ≥ 35%
结构多样性(Top-50 scaffold 数) 5–10 ≥ 15
跨蚊种 hold-out AUC 常未报告 / 0.55–0.65 ≥ 0.70
可购买候选比例 常 < 30% ≥ 60%(硬约束)
从虚筛到下一轮迭代周期 论文级 6–12 个月 3 个月 / 轮
以上目标值在阶段 1 结束(M3)后用实测数据校准;如某些维度未达标,按第 9 节回退方案调整。
附录:精选工具栈(v2.3 收敛后)
用途 首选 备选 / 特殊场景
同源建模 ColabFold (AlphaFold2)ESMFold(速度优先)/ MODELLER(模板精修)
结构准备 PDBFixer + RDKit / Meeko—
口袋识别 fpocket P2Rank(深度学习增强)
Docking 主力 AutoDock Vina —
Top hits 复打分 GNINA (CNN re-score)—
结合姿态分析 PLIP ProLIF(与 ML 流水线对接)
MD GROMACS OpenMM(Python 友好)
MM/GBSA AMBER MMPBSA.py —
主力 ML Chemprop 2.0 —
预训练 embedding Uni-Mol —
传统基线 XGBoost + RDKit Morgan —
ADMET 主力 ADMETlab 3.0 admet_ai(本地批量)
挥发性 / 环境 EPI Suite —
相似性 RDKit (Morgan + Murcko + 3D Shape Tanimoto)—
可视化 DataMol / Mols2Grid / Pandas + Plotly PyMOL(结构)
本文件由 screening_model_plan.md 演化而来。
v2.1 :HTML 渲染、目录侧边栏、AsiSAP1 / AsiSAP2 加入第一阶段靶标层、三靶标共识打分、KPI 与风险表纳入 SAP 相关项。
v2.2 :新增 3.2 化合物来源策略(两层 + 分阶段),章节顺延至 3.5;阶段 1 里程碑细化第一层 benchmark / 第二层瘦身 / 第二层 docking 三步;第 10 节加入扩展虚筛的下载、过滤、批量调度准备项。
v2.3 :第 4 节模型层 / 相似性 / ADMET 全部收敛到最佳工具三件套(Chemprop 2.0 + Uni-Mol + XGBoost;RDKit 相似性;ADMETlab 3.0 + admet_ai + EPI Suite);docking 收敛到 Vina + GNINA;新增第 11 节"方案亮点:与已有文献方案的差异"(含可量化竞争优势预期);附录改为精选工具栈对照。
v2.4 :第 4 节前新增 4.1 训练数据准备(10 个小节,覆盖数据收集→字段抽取→标签工程→任务定义→三套划分→负样本→数据增强→偏置/噪声/不平衡→版本管理→自检清单),原 4.1–4.5 顺延为 4.2–4.6。
v2.5 :第 7 节落地路线顶部新增 SVG 甘特图(图 7.1),断轴双比例(Phase 1 按周、Phase 2–4 按月),蓝色色块高亮 MVP 重点窗口,菱形标记 W8 / M3 / M6 / M9 四个关键里程碑。
v2.6 :4 处 ASCII 流程图全部改为 SVG 嵌入——① 第 1 节平台架构(双行管道 + 反馈循环)② 3.2 节瘦身过滤漏斗(5 段递减 + 规则说明)③ 4.1 节训练数据 7 步 snake 流程 ④ 5.3 节 active learning 4 轮卡片(含进度轴 + 回填反馈虚线)。所有图统一蓝灰配色、响应式 viewBox、可访问性 role/title。