资讯动态

DrugCLIP:用对比学习把药物筛选从结构依赖推进到全基因组序列时代

发布时间:2026/10/17 15:48:03 来源:尧图企业网站定制
做药物筛选的朋友应该都有过这种体验手里攥着一个新靶点的序列明明资料显示它跟某条疾病通路强相关却不知道下一步该怎么推。想用传统对接做一轮虚拟筛选得先等蛋白结构、定义结合口袋、再让几十万个分子挨个做构象搜索一跑就是好几天。实验端就更不用提了哪怕只是验证一百个化合物也得排队投板、等结果。最近有个叫DrugCLIP的AI药物筛选工作登上了顶级学术期刊号称把筛选速度提升了百万倍量级直接指向全基因组靶向时代。我关注这个工作不是因为那个数字看着震撼而是因为它的核心思路把过去被默认当成“必须先解决”的结构问题绕了过去——只要知道靶点的氨基酸序列就有机会用AI把“哪些分子可能结合”这个老问题变成一次向量空间的快速检索。这篇文章我不想重复新闻稿里那套话术想从一个平时跟化合物、靶点、数据集打交道的人的角度把这套方法拆开讲清楚。主要包括DrugCLIP到底做了什么、百万倍加速怎么来的、全基因组靶向到底意味着什么以及如果你想在项目里用类似思路跑一轮初筛应该怎么设计流程又有哪些坑是容易踩的。1. DrugCLIP是什么先从“筛选入口”说起1.1 它跳过了一个过去绕不开的门槛传统虚拟筛选大体可以分成两条技术路线。一条是基于配体已知活性分子的相似性搜索比如算指纹、算形状相似度速度快但受到已知活性分子的限制遇见全新化学空间基本失效。另一条是基于受体的对接打分用物理模型去估计配体与靶点结合的自由能理论上能处理全新分子但需要靶点三维结构而且打分函数精度一直是老大难。DrugCLIP的路线和这两条都不一样。它不做对接不做三维结构建模而是把“靶点”抽象成一条氨基酸序列把“分子”抽象成图结构或序列然后用对比学习把两者映射到同一个语义空间里。已知有效的分子-靶点对在这个空间里距离近没验证过的是不是距离远让模型自己从数据里学出来。等到推理阶段给定一个靶点序列实际上就是把全分子库的向量和靶点向量批量算相似度然后按得分排序。这个设计最聪明的地方在于它把药物筛选的“入口条件”从“必须有晶体结构”降到了“有一条序列就行”。目前人类基因组编码的蛋白质里有高分辨率结构的其实只占一小部分但序列几乎全知道。门槛一降能用AI筛的靶点数量立刻从“可成药基因组”那几百个蛋白扩展到几乎全蛋白组。1.2 “百万倍速”到底是怎么来的很多人看到“百万倍速”第一反应是怀疑我一开始也怀疑。仔细拆解之后发现这个速度提升其实是不同比较基准带来的。传统对接筛一个分子通常要消耗几十秒到几分钟不等的计算资源因为它要在三维空间里搜索配体构象、旋转角度、口袋内的原子接触然后跑打分。一百万分子的库用几十个核并行也得跑很久。DrugCLIP的思路是先对分子库做一次性编码把每个分子变成一个稠密向量这个过程只做一次之后缓存起来。真正筛选的时候把新靶点编码成一个向量和库里所有分子向量做点积运算再排序。这种“编码一步到位、推理只做检索”的设计让单次筛选百万级分子库的时间压缩到分钟级甚至秒级。跟传统基于构象搜索的对接流程相比说百万倍并不是太夸张。需要注意的是这里比的是“吞吐效率”不是“精度提升一百万倍”。速度和精度是两件事后面我会细说模型在精度上还有哪些软肋。2. 为什么能百万倍加速对比学习与序列表示拆解2.1 核心思想让分子和蛋白质在一个空间里“对齐”要理解DrugCLIP可以先理解对比学习。这个东西在视觉和语言模型里用得比较多核心想法是把同类的样本拉近把不同类的推远。放到药物筛选场景里“同类样本”就是已知有活性的分子-靶点对。比如某个分子在很多文献和实验数据里被验证过对某个激酶有抑制作用那这个分子向量和该靶点蛋白向量就应该尽量接近。反过来随机采样的分子-靶点对大概率没活性就当作负样本把它们推远。模型训练完之后分子和蛋白质都被编码到了同一个向量空间。你在哪个数据库里扔进去一个靶点序列它都会输出一个向量每一个分子也有一个向量。两者之间的相似度就直接被当成“这个分子对靶点有没有潜在活性的打分”。整个过程没有物理模拟没有力场参数只有向量的几何运算。这就是为什么它能快。我们不是把计算量省掉了而是把计算量从推理阶段挪到了预处理阶段。分子库的编码是一次性的所有靶点都能复用真正上线的筛选不过就是查表加排序。2.2 分子和蛋白质分别怎么表示分子侧的处理通常会把SMILES字符串一种用文本描述分子结构的表示方式转成分子图或者直接用预训练的分子语言模型做编码让模型学到原子类型、键连方式、官能团等化学信息。这个表示里最重要的不是原子坐标而是拓扑和化学性质。好处是分子不再依赖二维或三维构象入库效率极高。蛋白质侧的表示现在的主流做法是用蛋白质语言模型来做。这类模型在海量蛋白质序列上预训练过能捕捉到氨基酸序列里蕴藏的进化信息和结构线索。即使没有三维结构模型也能从序列片段组合里推断出哪些区域可能形成口袋、哪些位置对配体结合关键。两边都用同一个“对比学习框架”训练以后化学空间和蛋白质空间就建立起了一个跨模态对齐。这种对齐关系是数据驱动的可能学到的并不只是“哪些官能团跟哪种残基匹配”而是一些更抽象的结合规律比如疏水互补、氢键供受体关系等在表征空间的体现。2.3 选这个方案而不是对接背后的关键权衡有人会问既然现有对接打分已经有几十年的发展积累为什么还要用对比学习原因主要有三个。第一是覆盖度。对接受制于结构对比学习只受制于序列。第二是速度。对接要在新靶点上重新做一轮昂贵的构象搜索对比学习只需要一次前向编码。第三是数据利用方式。对接打分是物理近似公式无法直接从大量已知活性数据里修自己的偏差对比学习本身就是从数据中学习的天然可以利用越来越庞大的生物活性数据库。代价也很明显。对比学习学到的是一种相关性不是因果性。它知道“这类分子和这类蛋白在已知数据里频繁共同出现”但不知道“为什么结合”。所以模型拿出来的候选大概率比随机化合物靠谱但距离“确定能成药”还差得很远后面需要大量实验验证。3. 全基因组靶向从“结构可得”到“序列可得”的边界扩张3.1 过去药物筛选的隐性瓶颈很多人以为做药物靶点研究最大的瓶颈是先找到一个“好靶点”。实际上找到一个有疾病关联的靶点之后另一道隐性门槛很快就会显现这个靶点有没有结构有没有已知配体没有高分辨率结构对接类方法基本没法起步。没有已知活性分子配体相似性搜索也派不上用场。于是大量有潜力但缺乏结构信息的蛋白被搁置在筛选流程之外。这个问题的本质是我们把“是否能建模型”绑定在了“是否有结构”上而结构生物学实验的成本和周期注定了它不可能跟上基因组注释的速度。DrugCLIP这类方案出现后“是否需要结构”这个前提被移除了。序列信息本身就是全部输入而全人类蛋白质组的序列已经完整获得了。这意味着理论上任何一个新注释的、和疾病相关的蛋白都可以在拿到序列当天就进入筛选流程。3.2 全基因组规模初筛的实际意义把筛选对象从“可成药靶点”扩展到“全基因组蛋白质”最大的价值不是数量本身而是研究范式的变化。过去我们研究的是一个已知靶点去找这个靶点的抑制剂。全基因组靶向的思路则可以反过来给定一个化学分子比如一个天然产物、一个临床药物、一个环境化合物在全基因组所有蛋白的向量空间里扫一遍看它最可能跟哪些蛋白相互作用。这种反向筛选可以用于老药新用、药物脱靶效应预测、多靶点机制发现。举个例子某个药物已经上市了临床中发现它有未知的副作用。传统做法是让药理学家猜靶点猜完再验证。用全基因组筛选的思路可以把药物分子向量和两万多个蛋白向量比一遍锁定几个可疑靶点再去做实验确认。这种“从分子找靶点”的任务正是对“从靶点找分子”的互补。3.3 候选量暴增之后真正的瓶颈转移到哪里了全基因组规模的初筛开启后一个直接的结果是候选化合物数量会暴增。过去做一个靶点可能从百万分子筛出几百个候选已经很不错现在做全基因组筛一个分子可能对几百个蛋白质都有“潜在结合信号”一个靶点也可能拖出上千个候选分子。这时候筛选漏斗的瓶颈就转移了从“怎么得到候选”变成了“怎么从候选里找真正值得进实验室的分子”。排序分数只是一个初步信号后续必须叠加多维度的约束比如类药性规则、可合成性评估、ADMET性质预测、已有专利空间然后才轮到实验验证。AI在这里更像是一个信息压缩器把整个蛋白组和分子库的笛卡尔积压缩成少部分值得投入资源的组合。我自己做筛选项目时会反复提醒自己一件事AI给出的候选清单只是起点不是答案。全基因组规模的初筛越高效后续验证链路就得组织得越严密否则筛选速度提上来了实验端根本接不住那这个加速就没有实际意义。4. 想复现类似方案这里有一份参考流程4.1 前期准备数据、模型与算力规划如果你也想在自己的项目里试一试类似DrugCLIP的思路并不需要从零复现那篇论文的全部细节但核心要素必须备齐配对活性数据、分子编码器、蛋白质编码器以及足够的无标记数据做负样本。数据方面最理想的是从公开的生物活性数据库里拉出“分子-靶点-活性值”三元组。整理的时候先做清洗把重复样本去掉统一活性值单位用pIC50、pEC50这种负对数数值做归一化方便后面定义正负样本。对大部分任务来说把已知活性值高于某个阈值的对子当正样本把随机配对当负样本是相对稳妥的起点。模型选型上分子侧可以用预训练好的分子图模型或分子序列模型蛋白质侧用开源的蛋白质语言模型。两者在库里都能很方便地加载也可以用更轻量的序列编码方案只是效果通常不如预训练模型。算力上编码全库分子是比较吃GPU的环节但这是离线过程可以一次性完成线上的靶点编码和相似度检索普通配置的机器就能顶住。4.2 核心流程与伪代码示意整个流程可以分成五个步骤构造数据集、训练对比模型、编码全分子库、编码新靶点、排序输出候选。下面这段伪代码只是为了帮大家直观理解结构不代表论文原实现# 构造正样本对已知活性 positive_pairs load_known_active_pairs() # 采样负样本对随机配对保证数量远大于正样本 negative_pairs sample_random_pairs(drugs, targets, numlen(positive_pairs) * 10) # 定义对比学习损失使正样本对相似度尽量高负样本对尽量低 for drug_emb, target_emb, label in training_batch: sim cosine_similarity(drug_emb, target_emb) loss contrastive_loss(sim, label) # label1 拉近label0 推远 # 训练完成后一次性编码整个候选分子库 drug_vectors encode_all_drugs(drug_library) # 给定一个新靶点序列编码一次 target_vector encode_target(MKTAYIAKQRQISFVGRSLL...) # 打分排序 scores cosine_similarity(target_vector, drug_vectors) candidates top_k(drug_library, scores, k500)实跑时的处理方式和这个流程大体一致。正负样本的比例、温度参数、编码器的微调策略都会显著影响结果初学者在实践中可以通过少量实验固定这些超参。4.3 结果评估与验证设计模型训练完先别急着拿新靶点去筛。第一个要做的评估是回召实验把已知活性数据切出一个测试集看看模型能不能把测试集里的真正配体排在前面。常见指标包括命中率、ROC-AUC、以及Top 50/100里的富集倍数。富集倍数比较贴近实操感觉。假设全库有十万个分子其中阳性分子只有一百个随机挑五十个平均只能命中半个模型如果能在Top 50里挑出十个阳性富集倍数就是二十倍左右。这个数字越高说明后续实验验证的效率越高。评估通过后可以挑一个“没有已知配体”的新靶点跑一轮全库预测。拿到Top候选后建议挑几十个做分子对接或构象比较作为第二轮过滤最后再进实验。实验验证的优先级可以从“预测分数高、化学结构新颖、合成难度低”三个维度综合排序。4.4 实操中容易忽视的几个细节第一个细节是序列清洗。靶点序列该用哪一种转录本、要不要去掉信号肽、跨膜蛋白是取胞外域还是全长序列都会影响编码结果。我踩过最基础的坑拿全长蛋白序列和一个只结合胞外域的已知配体去构建正样本模型始终学不好后来才发现是序列颗粒度对不上。第二个细节是负样本数量。负样本太少模型会偷懒把所有分子都预测成高相似度负样本太多训练时长成倍增加而且容易让模型过度自信。常见的做法是让负样本数量达到正样本的十到二十倍同时保证负样本的分子是从整个化学空间随机采的不要只拿和正样本相似的分子。第三个细节是批次构造。对比学习的批次里如果有大量来自同一个靶点的正样本模型会学到“把跟这个靶点相关的分子聚在一起”而不是学真正跨靶点的结合规律。实践中要在批次里做靶点维度上的去重或可控采样让模型看到足够多样的靶点类型。5. 常见翻车点与排查经验速查表5.1 数据泄漏会让所有漂亮指标失真对比学习药物筛选最容易翻车的点是数据泄漏。最典型的泄漏形式是训练集和测试集里出现了骨架高度相似的分子。分子指纹相似的化合物在向量空间里天然接近如果它们恰好属于同一靶点模型不需要理解靶点只需要记住分子形状就能“预测正确”。这种默认情况下的评估指标会好得离谱但换个全新骨架的分子去测效果立刻崩塌。解决思路是按分子骨架做数据集划分而不是按时间或随机划分同时引入分子最大相似度的去重阈值保证测试集里的分子和训练集分子没有高度相似的邻居。5.2 泛化到新化学骨架的能力有限很多模型在已知活性分子附近表现优异但一旦距离已知化学空间越来越远得分就不可靠了。这是因为对比学习本质是插值不是外推。它能很好地处理“已知化学空间的空白组合”但很难处理“从未出现过的新类型分子”。实操上要控制预期不要把全库筛选结果当成“所有高分分子都靠谱”可以把高分结果按照聚类分成不同化学系列从每个系列里挑代表分子去验证减少同一个母核被重复验证的浪费。5.3 打分不能替代亲和力数据对比学习给出的相似度分数是相对的不是绝对的。一个分子得分为0.85不意味着它的活性比0.80的分子高多少更不意味着它有纳摩尔级别的亲和力。要真正了解结合强度还是需要表面等离子共振、等温滴定量热这类实验手段。一个稳妥的项目节奏是先用AI把候选从百万压到几百再用对接/分子模拟压到几十最后用实验数据反馈到模型里做第二轮微调。如果跳过中间验证直接把AI打分当亲和力项目大概率会被假阳性拖垮。5.4 序列信息不是万能的别忽略构象与修饰蛋白质真实状态是动态的有磷酸化修饰、有变构构象、有与其他蛋白的复合体状态。只靠序列向量模型看到的是“平均化”的蛋白很难区分活性和非活性构象。这也是为什么全基因组初筛适合作为第一道粗滤但后续必须叠加结构、分子动力学或文献证据来补足。常见问题速查表如下现象可能原因排查与规避测试集指标很高实战效果差训练测试划分泄漏分子骨架重叠按骨架划分数据集限制最大相似度去重新靶点候选看起来都“怪”训练数据覆盖靶点少泛化弱引入更多不同家族靶点数据或降低筛选阈值并人工复核同类靶点序列得分都高模型学到了靶点家族偏好而非结合规律检查正样本是否过度集中在某个蛋白家族候选分子合成难度极高生成/筛选库偏向复杂天然产物加入可合成性评估和类药性过滤同一靶点不同转录本结果差异大序列截取方式不一致固定转录本版本必要时用保守结构域做输入6. 个人评估与后续拓展思路6.1 从“给候选打分”到“生成新分子”DrugCLIP这类工作的下一步大概率会从“筛选”走向“生成”。现在我们是拿着现成的分子库去对齐靶点向量本质上还是在已有化学空间里找答案。如果把对比学习的目标函数同时纳入分子生成模型模型就可以直接针对某个靶点向量“写”出满足距离约束的新分子那才是真正意义上的计算驱动药物设计闭环。这种情况下模型的任务就不再只是“在十万分子里排前五百”而是“从化学规则和靶点约束出发创造十万个化学上合理且预期有活性的新结构”。这个方向会让药物化学家的工作流发生明显变化从查库变成审稿从筛选变成决策。6.2 实验反馈闭环会越来越重要再强的序列-分子对齐也只是对现实的近似。真正决定一个模型能不能在项目里持续变强的是它能不能拿到实验验证数据然后快速迭代。现在很多AI药物筛选项目的卡点不在模型而在实验反馈周期太长。谁能在筛选流程里设计好“AI预测—实验验证—数据回流—模型更新”的闭环谁就能建立别人短期追不上的数据飞轮。这个趋势对做工程的人是有启发的不光是模型本身重要数据管道、实验接口、自动化合成验证这些配套系统价值会被重新评估。6.3 给准备入坑的人三个建议第一别迷信“百万倍速”这个数字回到自己的项目里算一笔账。如果当前流程两小时跑完加速百万倍没有意义如果当前流程卡了两周哪怕只提速十倍都会改变节奏。第二把序列到分子的筛选当成现有流程的补充不是替代。先用它破局再用结构方法精修两条腿走路永远比单腿稳。第三保持对数据的洁癖。模型的任何惊艳表现都要先检查是不是数据划分和清洗带来的幻觉。这个行业里干净的数据比复杂的模型更稀缺。我个人在实际操作中的体会是DrugCLIP这类工作的意义不在于把药物筛选变成一个“一键出答案”的黑盒而在于把过去默认要花几个月才能启动的项目压缩到了几天甚至几小时。这件事对早期靶点验证、冷门疾病研究、罕见病药物开发来说价值非常大。毕竟当筛选成本足够低、靶点门槛足够小的时候真正限制药物研发的就不再是算力和数据而是我们敢不敢把那些“没有结构依据但疾病关联明确”的靶点翻出来试一遍。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑