1. 会前判断:这场研讨会到底值不值得你排出两天时间
药学前沿学术研讨会这几年肉眼可见地多了起来,主题里带"AI药物设计"的场次尤其密集。我一年大概会挑三到四场参加,剩下的时间靠会议摘要和会后流出的报告材料补课。原因很现实:一场会两三天,路上加住宿,成本不低,而真正能带走的东西往往集中在少数几个环节。所以第一步不是抢早鸟票,而是把议程拆开看,判断这场会的信息密度够不够支撑你走一趟。这篇文章想聊的就是两件事——AI药物设计这条链上到底哪些环节已经能干活、哪些还在讲故事,以及在一个几十人、几百人的会场里,学术社交策略该怎么落地,才能让一次偶遇变成半年后真的能推进的合作。无论你是刚进实验室、只会跑现成流程的学生,还是已经在工业界负责立项、需要判断技术路线的从业者,下面这些判断框架和操作细节都应该用得上。
我踩过的最大一个坑,是把会议当成"听课"。第一年参加这种会,我全程坐在后排记笔记,两天记了十几页,回来发现七成内容在我的项目里根本用不上——因为讲者的体系和我手上的数据规模、靶点类型、算力条件完全不是一回事。后来我改了打法,把会议当成"信息采样 + 人脉建线"的组合任务,效率才起来。
1.1 议程里其实有三层信息,读法完全不同
拿到议程,我会先把所有报告分成三类。第一类是方法学进展报告,讲者通常来自做算法或计算化学的团队,内容偏模型结构、损失函数、基准测试。这类报告的价值在于告诉你"现在的技术上限在哪",但要警惕他们选用的数据集往往偏干净、偏小,和你手上的真实数据差距很大。第二类是案例复盘,多来自有湿实验配合的团队,讲的是某个靶点从筛选到体内验证的完整链条。这类报告信息密度最高,因为能听到失败环节——哪个化合物在哪个阶段掉了、为什么掉。第三类是墙报和圆桌,看起来最"水",其实是唯一能一对一提问、试探对方是否愿意合作的场合。
读议程时我会特别看两个信号:工业界讲者和学术界讲者的比例,以及有没有安排"失败经验"或"未解决问题"这类专场。全是成功案例的会,通常学不到真东西;肯把失败摆出来讲的场次,往往能省掉你三个月的试错。
提醒:议程上的标题和实际内容经常对不上。有些报告标题写"生成式模型赋能新药发现",现场讲的全是两年前已经发表的对接口径,这种场次可以中途溜出去准备墙报提问。
1.2 出发前必须写好的一张问题清单
我现在的习惯是随身带一张 A4 纸,上面只写三类问题,每类不超过五条。第一类是技术卡点,比如"我的靶点没有实验解析结构,只有预测模型给出的构象,用这种结构做虚拟筛选,假阳性率大概会高多少,有没有人做过对照"。第二类是数据需求,比如"活性数据只有百来条、还跨越多个测定体系,这种规模下建 ADMET 模型是不是根本没意义"。第三类是合作方向,比如"我这边能做分子生成和排序,缺合成和体外验证,对方实验室有没有意愿做联合课题"。
这张纸的作用不只是备忘。你在茶歇时能直接问出具体问题,对方立刻就知道你不是来混的。我见过太多人在会场里寒暄十分钟,最后只换来一句"回头加个联系方式",然后就没有然后了。带着具体问题去,对话质量完全不一样。
2. AI药物设计在研发链条上的真实坐标
先把大图景摆清楚。一个新药从立项到上市,粗略分下去是:靶点发现与验证、结构和口袋确认、苗头化合物发现、先导化合物优化、候选分子确定、临床前研究、临床一期到三期、注册上市。AI 在这条链上并不是均匀分布的,它在某些环节已经成了常规工具,在另一些环节还只能做辅助参考,还有几个环节基本是营销话术的重灾区。搞不清这个分布,你在会上听到任何"AI 让研发周期缩短一半"的说法都没法判断真假。
我的经验是,判断一个 AI 药物设计工作靠不靠谱,先看它有没有闭环。什么叫闭环?就是模型给出的预测,有没有被后续的湿实验验证回来,验证结果有没有反馈到下一轮设计里。只有计算没有实验的,只能叫方法研究;只有实验没有计算的,那是传统药物化学;两头都通、中间有迭代的,才是真正在解决实际问题。开会时听到一个漂亮的结果,我第一个问题几乎总是"这批分子后来合成出来了多少,实测活性和预测的相关性如何"。
2.1 从靶点到可合成分子,中间到底有几步
很多初学者以为流程是"输入靶点结构,输出候选分子",实际远比这个复杂。我把它拆成六步,每一步都有坑。
第一步,靶点结构获取。有实验解析结构的优先用实验结构,注意分辨率、配体共晶信息、缺失残基。没有实验结构的,用预测模型补,但必须清楚:预测出来的侧链构象误差在几埃量级,直接拿来做精细对接会引入系统性偏差。我的做法是用预测结构做口袋定位和粗筛,精细打分阶段再用同源结构或者分子动力学松弛后的构象复核。
第二步,口袋定义。这是最容易被忽略却影响最大的一步。口袋选错了,后面所有计算都是在优化一个错误的目标。要看的指标包括口袋体积、疏水/极性分布、关键氢键残基、以及有没有结合水的信息。
第三步,苗头发现。主流两条路:基于结构的虚拟筛选(大规模对接 + 打分排序),和基于配体的相似性搜索/药效团匹配。近几年多了一条生成式路线,直接从口袋条件生成分子。
第四步,可合成性过滤。这一步是把计算和现实连起来的关口。生成出来的分子再漂亮,合成不出来就是零。要有逆合成可行性评估和构建块可得性检查。
第五步,先导优化。活性、选择性、代谢稳定性、溶解性、透膜性,这几个指标经常互相打架,这就是多目标优化问题。AI 在这里的价值是建代理模型,减少湿实验轮次。
第六步,候选分子确定。要看体内药代、毒理、安全窗,这一步 AI 的话语权最小,主要还是靠实验数据说话。
2.2 各环节的成熟度分级与合理预期
下面这张表是我自己整理的口径,用来在听报告时快速定位"这个工作处在什么位置"。
| 环节 | 技术成熟度 | 实际可用程度 | 主要风险点 |
|---|---|---|---|
| 蛋白结构预测 | 高 | 单体、常见折叠基本可用 | 复合物、构象变化、柔性loop误差大 |
| 口袋检测与可成药性评估 | 中高 | 辅助人工判断有效 | 隐蔽口袋、变构位点容易漏 |
| 大规模虚拟筛选 | 高 | 常规手段,工业界普遍使用 | 打分函数偏差、假阳性率高 |
| 基于配体的相似性搜索 | 高 | 成熟,适合有已知活性物的体系 | 化学空间受限于参考分子 |
| 从头分子生成 | 中低 | 能产出新骨架,需大量后置过滤 | 可合成性差、新颖性虚高 |
| ADMET 性质预测 | 中 | 特定端点、特定化学空间内可用 | 数据泄漏、适用域外不可信 |
| 合成路线规划 | 中高 | 常见反应类型表现不错 | 复杂骨架、新反应覆盖不足 |
| 临床结果预测 | 低 | 不建议作为决策依据 | 样本量小、终点定义混乱 |
看懂这张表,你就能识别出哪些报告是"把成熟工具包装成新突破",哪些是真的在啃硬骨头。比如一个报告如果没有湿实验验证、只在公开数据集上刷指标,那它大概率属于方法研究,离能用还有距离;而一个报告如果展示了"生成三百个分子、合成八十个、命中十二个"这样的数字,哪怕指标不惊艳,可信度也高得多。
3. 虚拟筛选与分子生成的落地流程
这一节讲具体怎么做。我用一个虚构的模拟项目来说明流程,靶点设定为一个酪氨酸激酶类的口袋,手上有两百来条已知活性数据,没有自己的实验解析结构。这个配置在真实项目里非常典型。
3.1 数据清洗这一步决定了后面所有结果
我见过太多人跳过清洗直接建模,然后困惑为什么模型在测试集上 0.9、在真实化合物上完全不准。问题八成出在数据上。活性数据常见的脏法包括:盐型没去掉、互变异构体不统一、电荷状态混乱、同一化合物在不同测定体系下重复出现且数值冲突、活性单位混用(IC50、Ki、EC50 混在一起)。
清洗的操作顺序我固定为:结构标准化 → 去盐去溶剂 → 电荷与互变异构归一 → 重复化合物聚合 → 活性单位统一到同一量纲 → 按测定体系分层。其中"重复化合物聚合"要做决策:取均值、取最优值还是取最差值?我的经验是,如果重复数据来自同一测定体系,取均值;如果跨体系,优先保留最严格那个体系的数据,把其他体系的数据作为外部验证集,不要混进训练集。这一条能显著降低虚高的指标。
# 分子数据清洗的骨架流程(函数名为示意,实际用任意化学信息学工具包的等价接口) records = load_assay_table("assay.csv") clean = [] for rec in records: mol = parse_structure(rec.structure) if mol is None: continue mol = strip_salts_and_solvents(mol) # 去盐、去溶剂 mol = normalize_tautomer(mol) # 互变异构归一 mol = neutralize_charges(mol) # 电荷归一 if atom_count(mol) < 8 or atom_count(mol) > 60: continue # 过滤明显不合理的小分子/大分子 clean.append((canonical_key(mol), rec.value, rec.unit, rec.assay_id)) # 按标准化后的结构键聚合,冲突数据分层处理 grouped = group_by_structure(clean) train, holdout = split_by_assay(grouped, primary_assay="assay_A")注意:标准化之后一定要重新生成结构键再聚合。我吃过一次亏,用原始字符串去重,结果同一分子因为书写顺序不同被当成两个样本,训练集和测试集之间发生泄漏,指标虚高了一大截,白高兴两周。
3.2 口袋定义与搜索盒参数怎么算
用预测结构做对接,口袋定义要格外保守。我的流程是:先跑口袋检测拿到候选位点,然后和已知的同源家族配体结合位置做比对,确认位点一致后才继续。如果预测结构里几个候选口袋得分接近,宁可多选一个位点分别筛,也不要把宝押在一个上。
搜索盒的尺寸有经验算法:先估算配体的回转半径,再留出余量。一个三十来个重原子的类药分子,回转半径大约 5 埃,考虑构象伸展和口袋壁的柔性,各方向留 8 埃余量比较稳妥,也就是每个维度大约 26 到 30 埃的边长。盒子太小会漏掉伸展构象,太大则计算量暴涨且假阳性增加。对接的穷举程度参数(决定采样充分性)我一般先用低档做初筛,把命中前 5% 的分子再用高档重跑,这样算力分配最划算。
还有一个常被忽略的点:打分结果要做归一化。不同分子大小、不同电荷状态下原始打分不可直接比较,简单做法是按重原子数做线性校正,或者干脆用"同一靶点内排序 + 与已知阳性对照的相对排名"来解读。我现在的做法是每个批次都放一组已知活性的阳性对照,看它们的排名分布,如果对照组掉出前 10%,这一批结果直接作废重跑。
3.3 生成模型的约束设计与评估口径
生成分子的诱惑力很大,但从我实际跑下来的感受,约束设计比模型选型重要十倍。无约束的生成模型产出的分子,八成以上在化学家眼里是"看着像分子但没法做"。必须加的约束至少有四条:一是分子量与脂溶性控制在类药区间;二是可旋转键数量限制,太柔的分子熵损失大、亲和力上不去;三是合成可行性评分过滤,把明显难做的骨架剔掉;四是构建块可得性检查,确认市售原料能不能拼出来。
生成之后的评估,我坚持三个口径同时看。第一是新颖性,和训练集的最大相似度分布如何,太接近说明只是记忆,太远说明跳出了合理化学空间。第二是内部一致性,用多个独立的打分器交叉评估,如果几个打分器结论严重分歧,说明这个分子处在模型的不确定区,不能当真。第三是湿实验命中率,这是唯一算数的指标。我之前的模拟项目里,从生成池挑了四十个分子送合成,最终拿到可测样品的三十一个,实测有活性的六个,命中率接近 20%。这个数字谈不上惊艳,但比纯随机筛选好得多,而且从这六个里能看出模型的偏好——它倾向于生成含特定含氮杂环的骨架,这个信息反过来可以指导下一轮设计。
心得:不要一次性把生成池里排名最高的分子全送出去。我通常会按"打分 + 骨架多样性聚类"分层抽样,每轮二十到四十个,轮次之间根据结果调整约束权重。一次性梭哈最大的问题是,如果模型有系统性偏差,你会用几十个合成名额去验证同一个错误。
4. ADMET预测:最容易自我欺骗的环节
如果说虚拟筛选的坑主要在口袋和打分,那 ADMET 预测的坑几乎全在评估方法上。这个领域的论文指标动不动就 R² 0.85、AUC 0.92,但真正拿到新化学空间里用,效果经常断崖式下跌。原因不神秘,就是数据泄漏和适用域外推。
4.1 数据划分方式决定指标可信度
同一份数据集,三种划分方式能给出天差地别的指标。随机划分最乐观,因为同一骨架的类似物会同时出现在训练集和测试集,模型只要记住骨架就能拿高分。骨架划分把同一骨架的分子全部放到一侧,指标会掉一大截,但更接近真实使用场景。时间划分按文献发表年份切分,最能反映"用过去预测未来"的能力,通常指标最低。
我在会上听 ADMET 报告,如果对方只报随机划分的结果,我基本会把结论打五折。更值得关注的是他们有没有报告适用域分析——也就是模型在什么化学空间内可信。简单做法是计算测试分子与训练集的相似度,按相似度分箱看误差分布;如果误差随相似度下降而急剧上升,那这个模型就只能内插不能外推。
| 评估方式 | 典型指标表现 | 可信程度 | 适用场景 |
|---|---|---|---|
| 随机划分 | 最好看 | 低 | 仅用于方法对比,不能作为上线依据 |
| 骨架划分 | 中等 | 中 | 新骨架探索前的参考 |
| 时间划分 | 最保守 | 较高 | 判断模型能否用于前瞻性预测 |
| 前瞻盲测(真实验数据) | 最真实 | 高 | 唯一能作为决策依据的方式 |
4.2 适用域之外要敢于说"不知道"
工程上我强制模型输出一个不确定度,超出阈值就直接标记"不预测",而不是给一个看起来很确定的数字。这个设计在项目里救过我好几次。具体做法可以用集成模型的分歧度、也可以用相似度距离,两个指标任一超阈值就拒答。虽然这样会让"预测覆盖率"下降,但剩下那部分预测的可信度大幅提升,团队里做合成和实验的同事也更愿意相信输出结果。
还有一点值得提醒:不同 ADMET 端点的可预测性差别很大。溶解度、透膜性这类由相对简单的物化性质主导的端点,模型表现通常不错;而代谢稳定性、肝毒性这类涉及具体酶和通路机制的端点,模型经常只能学到相关性而非因果,换个化学系列就失效。开会时听到有人把毒性预测说得跟查表一样确定,我心里会默默打个问号。
4.3 前瞻验证怎么排才不浪费合成资源
我的做法是每季度留出一批"盲测分子",在模型训练时完全不碰,等湿实验数据回来再统一评估。这批分子要满足两个条件:一是覆盖至少三个不同骨架系列,二是性质分布要有意超出训练集的中心区域,这样才能测出外推能力。数量不用多,每批十五到二十个就够,关键是持续做、形成时间序列。
跑上三四个季度,你就能画出自己的"预测-实测"散点图和随时间的误差趋势。这份内部数据比任何公开基准都值钱,因为它是你自己化学空间的真实表现。我在会上认识的一位做计算的同行,就是靠两年积累的盲测数据说服了合作方继续投入,因为那些数据清楚地显示了模型在哪个性质上可靠、在哪个性质上需要人工复核。
5. 学术社交:把两天会场变成三条长期合作线
技术聊完,说说很多人不好意思承认但确实头疼的部分:学术社交。我个人不太喜欢"社交"这个词,它听起来像任务。实际上会场里有效的人际互动,本质是带着具体问题的信息交换,而不是攒名片。我的目标是每场会结束时,手上能有三条真正能推进的线索,而不是三十个再也不会联系的账号。
5.1 墙报前的十五分钟怎么讲
墙报环节是整个会议性价比最高的时段。你的墙报前站的人流,取决于你前三十秒能不能让人停下。我固定的讲法是三段式:十五秒版本讲清"我解决了什么问题、用什么方法、结果是什么";如果对方有兴趣,进入三分钟版本,补上技术路线和关键数据;如果对方是做相关方向的,才展开到十分钟版本,聊失败案例和后续计划。
排版上我做减法。一张墙报只留一条主线,图不超过六张,字号保证一米外能读。右下角留固定位置放联系方式和一个二维码,指向补充材料和详细数据。我还会在墙报上故意留一个"待解决问题"的小框,这招很管用——很多人会主动就那个问题跟你聊,对话就这么起来了。
避坑:不要在墙报前抓着一个听众讲二十分钟。旁边想听的人插不进来会直接走掉。我的习惯是讲完三分钟版本就停下来问一句"您更关心哪部分",把话语权交回去,效率反而高。
5.2 提问环节的三句话结构
提问是最低成本的曝光机会,但很多人要么问得太空泛,要么问成了挑刺。我用三句话结构:第一句复述对方的核心贡献,证明你认真听了;第二句提出具体的、可回答的技术问题,最好是关于方法边界或数据条件的;第三句给一个自己的观察或经验作为交换,比如"我们在类似体系里试过,发现另一类做法在数据量小的时候更稳,不知道您怎么看"。
这个结构的妙处在于,它把提问变成了对等交流,而不是单方面索取。我靠这个方式在茶歇时被讲者主动找过来聊过好几次,因为对方也需要知道自己的方法在别人的真实场景里表现如何。
5.3 会后四十八小时是黄金窗口
这条我执行得比较严格。会议结束后两天内,给所有有价值接触的人发一封短邮件,结构固定:一行说明我们聊了什么、一行给出我承诺的材料链接、一行提出一个具体的下一步。全文控制在八行以内,附件不超过两个。
| 时间点 | 动作 | 目的 |
|---|---|---|
| 会后当天 | 整理名片与笔记,标注对话要点 | 防止记忆衰减 |
| 会后 24 小时 | 发出跟进邮件 | 抢在对方遗忘前建立连接 |
| 会后 1 周 | 补充发送数据或文献 | 提供实际价值 |
| 会后 1 个月 | 同步一次项目进展 | 保持弱连接活跃 |
| 会后半年 | 提出具体合作议题或有价值信息 | 转化为实质合作 |
我统计过自己的情况,会后发出去的跟进邮件,能收到回应的比例大概三成,最终形成实际合作的大约一成。这个转化率不算高,但考虑到每场会的成本,十条线索出一条合作线已经很划算了。关键在于持续跟进,而不是发完一封邮件就等对方回复。
5.4 弱连接的长期维护别用力过猛
学术圈的关系维护有个反直觉的点:频率低但内容实,比高频寒暄有效得多。我一般半年左右给重要的联系人同步一次进展,内容不是"最近怎么样",而是"我们上季度那批盲测数据出来了,有个结果可能对你的方向有用,附在这里"。这种带信息的接触,对方通常愿意回。
反过来,最忌讳的是只在需要帮忙的时候出现。我见过有人一年不联系,突然发邮件问能不能帮忙合成化合物,回复率基本为零。关系的本质是长期互惠,你得先在别人的问题上花过时间。
6. 现场高频问题与排查清单
最后整理一批我在会议和项目里反复遇到的具体问题,按技术侧和社交侧分开,做成了速查表,可以直接拿去对照。
6.1 技术侧:这些症状对应的病因
症状一:模型指标很好,实测完全不准。九成是数据泄漏,先查骨架划分、查重复化合物、查测试集是否混入了训练集的类似物。剩下的一成是适用域外推,用相似度分箱看误差分布就能确认。
症状二:对接打分排序和实测活性几乎不相关。先确认口袋定义是否正确,再看打分函数有没有归一化,还要检查阳性对照是否掉出了预期排名区间。如果三项都正常,可能是靶点本身柔性太大,静态结构对接的方法上限就在那里。
症状三:生成分子看着漂亮但没人能合成。检查是否加了合成可行性过滤和构建块可得性约束。另外注意生成模型是否在小数据集上过拟合,导致产出严重偏向训练集的少数骨架。
症状四:多目标优化越优化越差。通常是目标之间权重设置不合理,或者用线性加权处理了强非线性冲突。改用帕累托前沿筛选,把决策交给化学家,比自动加权靠谱。
症状五:不同批次结果无法复现。检查随机种子、数据版本、软件版本是否固定。我现在的规范是所有计算流程都记录环境快照和数据哈希,否则三个月后根本说不清当时跑的是什么。
6.2 社交侧:这些尴尬其实都有解
| 遇到的问题 | 常见错误做法 | 推荐做法 |
|---|---|---|
| 茶歇不知道找谁聊 | 站在角落刷手机 | 提前锁定三位讲者,在报告后直接上前问具体问题 |
| 墙报无人停留 | 低头等别人开口 | 主动用十五秒版本开场,用"待解决问题"引导对话 |
| 提问被当成挑刺 | 直接质疑结论 | 复述贡献 + 具体问题 + 自己的观察 |
| 加了联系方式没下文 | 只发"很高兴认识您" | 四十八小时内发带材料和具体下一步的短邮件 |
| 想合作但开不了口 | 泛泛说"以后多交流" | 提出一个明确的小任务,比如联合做一批盲测 |
| 被问住当场答不上来 | 硬编答案 | 直接说"这个数据我手上没有,回去查了发您",然后真的发 |
提醒:会场里最容易被忽略的一类人是墙报作者里的年轻研究者。他们的工作往往最新鲜,也最愿意深入聊,而且几年后可能就是某个课题的负责人。我在早期认识的几位,后来都成了长期的合作对象。
6.3 我个人最看重的三个判断信号
听报告时我会留意三个信号,它们比指标更能说明工作的真实水平。第一是有没有阴性结果,愿意讲"我们试了三种方法都失败"的报告,可信度高。第二是有没有湿实验闭环,计算和实验能对上号的,说明团队协作是真的。第三是有没有数据可得性说明,肯公开数据划分细节、模型适用域的,通常经得起推敲。
这三条筛下来,一场会能留下两三个真正值得跟进的团队,已经是很不错的收获了。
说到底,AI 药物设计这个方向最容易犯的错,是把计算当终点。模型输出一批分子,项目就算完成,剩下的交给运气。而我在实际项目里体会最深的一点是:真正决定成败的环节,往往不在模型本身,而在模型前后那些看起来不"智能"的工作——口袋定义准不准、数据清洗干不干净、合成能不能跟上、验证是否闭环。会场里那些愿意花时间讲这些细节的人,通常才是能一起把项目往前推的人,遇到就别放过。