ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

大规模盲测揭示AI抗体设计真实边界与工程化路径

大规模盲测揭示AI抗体设计真实边界与工程化路径 做计算抗体筛选时最常被问到的一个问题是“你预测的序列真能结合吗”这个问题很难拍胸脯回答。模型在自家验证集上表现不错但换一个靶点、换一套表达系统结果往往天差地别。最近一场少见的大规模盲测给出了一个相对客观的观察窗口29 家机构、511 条 AI 设计序列被拉进同一套评测流程在统一实验条件下做表达和结合验证。这件事对于理解 AI 在抗体发现中的真实边界很有价值也直接关系到我们在项目中该投入多少期望给计算设计。本文会围绕这场盲测展开梳理 AI 抗体设计的技术路线、盲测机制、一套可复现的计算筛选流程以及从结果中提炼出的工程化建议。如果你想了解“AI 到底能不能设计出能用的抗体”或者正准备搭建抗体计算平台这篇文章应该能提供比较完整的参考。1. 为什么需要一场“AI设计抗体”盲测1.1 AI设计抗体到底解决什么痛点传统抗体开发基本依赖实验筛选。把抗原免疫动物、做杂交瘤、噬菌体展示、单 B 细胞测序每一步都耗时耗钱。从靶点到候选抗体常规周期在几个月甚至一年以上实验通量虽高但真正能进入下游开发的抗体非常有限。AI 计算设计的目标是改变这个节奏先在计算机里生成大量虚拟抗体序列用模型筛选掉大概率失败的候选只把少数高分序列送去实验验证。结合亲和力预测、CDR 设计、人源化改造和可开发性评估理论上可以减少很多无效实验。但这里有一个很现实的问题每个团队都在自己的数据集、自己的评判标准上宣称效果很好外人很难判断哪种方法真的可靠。亲和力预测模型说“这条序列很好”实验结果却可能完全不表达结构预测模型说“这个 CDR 能对接”湿实验却测不到结合信号。你甚至很难把某团队的结果搬进另一套实验体系去复现因为表达系统不同、检测方法不同、阈值定义不同。正因如此具备统一实验条件的大规模盲测才显得珍贵它是少有的、能让大家把“自说自话”放在一边的公共校验场。1.2 “盲测”为什么是验证 AI 能力的试金石这里的盲测核心机制是把所有参与机构提交的 AI 设计序列统一收上来再交给第三方实验平台做表达与功能验证。实验平台在测试时并不知道哪条序列来自哪支团队避免因为团队名气、历史成绩、技术包装而影响结果评估。这和结构预测领域著名的 CASP 大赛是同一套逻辑所有参赛队伍面对同一批靶标输出统一格式最终用实验结构来打分。盲测的价值主要体现在三个方面。第一是统一实验条件消除实验室间差异。第二是隐藏机构标签减少主观偏好。第三是公开判定标准表达阳性、结合阳性、特异性的定义都有统一口径。这些看似基础的条件恰恰是很多零散比较无法得出可靠结论的原因。就抗体设计而言盲测更接近一次“实战”不是验收 PPT 上的模型效果而是验收最终的序列能不能表达、能不能结合这直接决定了计算设计的工程意义。1.3 29家机构、511条序列一次多路线的集中考核这轮盲测的规模放在抗体设计领域不算小。29 家机构涵盖了高校实验室、AI 制药初创公司和大型药企的计算团队参与主体的技术路线差异很大。各家提交的 511 条序列覆盖了不同设计思路有基于扩散模型生成结构的有基于语言模型生成序列的有基于 Rosetta 物理能量优化的也有实验筛选加 AI 辅助的混合方案。更重要的是这 511 条序列并不是只做一轮虚拟打分而是真的进入实验流程拿到表达量和结合信号。这意味着每一家机构都收到了真实世界反馈对算法迭代来说这比任何内部测试集指标都更有说服力。从行业角度看这场盲测相当于把多种 AI 抗体设计流派放进同一个赛场让大家第一次有机会看到不同方法论在同样条件下到底各自交出了什么样的答卷。2. AI抗体设计的技术全景2.1 AI参与的五个关键环节抗体可变区由框架区和 CDR 组成其中 CDRComplementarity Determining Region互补决定区是决定抗原结合特异性的核心区域。AI 在抗体发现中的参与一般集中在五个环节靶点与表位分析、结构预测、序列生成、亲和力打分、可开发性评估。靶点与表位分析主要判断抗原表面哪些区域适合被抗体识别结构预测负责推断抗体的三维结构以及抗体-抗原复合物的结合构象序列生成是在选定抗体骨架后对 CDR 区域进行从头设计或定向改造亲和力打分用来预估候选序列与抗原的结合强度可开发性评估则关注表达量、热稳定性、聚集倾向、黏性、免疫原性等成药相关属性。多数团队的完整流程是这样的先确认靶点准备一批天然人源抗体或已知抗体结构作为骨架再用生成模型在 CDR 区域采样新序列通过结构预测和亲和力打分做虚拟筛选最后把排名靠前的序列送进实验平台。2.2 生成式AI与CDR设计CDR 设计是抗体 AI 的核心战场。早期方法主要依赖“随机突变加机器学习筛选”在模板 CDR 上做少数位点替换再用模型预测效果。近年来生成式模型逐渐成为主流路线。语言模型把氨基酸序列当作“句子”处理使用大规模天然抗体序列做预训练再通过微调生成 CDR。这类模型很容易产出“看起来像天然抗体”的序列分布合理但在结构约束上可能不够精细。扩散模型则是从噪声逐步去噪生成抗体结构或者序列可以同时优化骨架和 CDR 的几何关系生成结果往往结构合理性更强但采样速度和多样性控制比较考验工程能力。物理能量函数方法如 Rosetta适合对候选结构做能量最小化、组装和评分采样效率低一些但化学合理性相对好。从盲测结果反推不同模型的输出风格差异很明显。语言模型偏“稳妥”容易生成接近人源库的序列扩散模型更容易突破序列多样性但带来的风险是部分生成序列在表达环节不稳定物理模型通常更保守但稳定性可能更好。这说明模型选择需要根据目标权衡而不是盲目追求某一个生成框架。2.3 亲和力成熟与可开发性优化生成模型产出的第一轮序列亲和力往往并不理想。业内常用做法是“计算亲和力成熟”流程选定一条模板抗体对 CDR 关键位点做组合突变用预测模型对突变体排序再挑选 Top 序列进入实验。这个过程模拟了体内的亲和力成熟机制只是把随机突变和筛选搬到了计算机里。可开发性优化同样关键甚至比亲和力更影响最终结果。很多在计算端得分很高的序列送到实验平台后表达量极低或者形成大量聚集体。和亲和力预测相比可开发性预测依赖的数据更稀疏、更难获取所以它更容易成为盲测中的“暴雷点”。成熟的流程通常会在虚拟筛选阶段就加入聚集倾向预测、等电点计算、表面疏水性评估等过滤条件而不是等到实验失败后再补救。2.4 AI与湿实验的闭环迭代盲测不是终点而是迭代的起点。真正有效的做法是用盲测拿到的真实表达和结合数据回填训练集形成“设计-实验-再训练”的主动学习闭环。那些在盲测中表现靠前的团队往往不是靠一个预训练模型打天下而是快速吸收实验反馈在有限轮次内持续改进预测器。这种闭环意味着计算团队必须和湿实验团队紧密配合。计算端每输出一批候选实验端就要尽快反馈表达量、亲和力、特异性数据数据端则负责维护数据版本把新数据清洗后纳入训练集。没有这种工程协作AI 模型的迭代速度会大幅降低盲测中获得的真实反馈也很难转化为能力提升。3. 盲测方案的设计如何“公平”对比3.1 统一的任务描述与数据范围盲测的第一步是定义任务。这一轮盲测中各参与机构拿到的是同一个抗原靶点和对应的表位描述需要在限定时间内提交抗体可变区序列提交数量有限制。统一输入、统一输出是横向对比的基础。对参赛团队来说盲测最棘手的地方在于信息不足。通常只能拿到抗原序列或结构无法提前知道实验平台使用哪一种表达系统、哪一种抗体框架、筛选阈值是多少。这种信息不对称很贴近真实药物发现场景你在设计阶段永远不可能知道所有实验细节模型必须有一定鲁棒性不能只在完美条件下工作。3.2 评测维度从公开信息来看这轮盲测主要评测几个维度表达阳性、结合阳性、亲和力水平、特异性、可开发性。表达阳性指表达量高于设定阈值这是最基本的一道门槛结合阳性要求抗体能与靶抗原发生特异性结合亲和力水平通过 SPR 或 BLI 等手段测定结合强度特异性看是否与无关蛋白发生非特异性结合可开发性包括聚集倾向、热稳定性等指标。这些维度的优先级并不是并列关系。先从表达是否成功判断再看结合是否阳性最后比较亲和力数值。这意味着即使你的模型在亲和力预测上表现很好只要表达不过关在整个评测中就会被一票否决。对计算团队来说表达环节的失败最常被低估因为很多计算模型根本不预测表达量而表达恰恰是实验的第一道筛选关卡。3.3 基线对照与成功标准没有基线的评测很难说明问题。盲测通常会设置基线对照包括天然抗体库随机抽取的序列、已知阳性抗体作为正对照、随机生成序列作为负对照。只有把 AI 设计序列与这些基线放在一起比较才能客观判断 AI 方法是否真的比传统方法或随机搜索更有效率。从公开信息看这轮盲测对“成功”的定义比较严格要求表达阳性且结合阳性才算有效命中。这其实是一个相当高的标准。很多在论文里声称“亲和力达到纳摩尔级别”的 AI 算法放到这个标准下可能连表达关都过不了。也正是这种严格定义让盲测结果更有参考价值。4. 盲测实战一套可复现的AI抗体设计流程下面我们用一个简化的 Python 示例演示参赛团队从序列特征提取到候选排序的主要步骤。代码是教学示意用于说明流程思路真实生产环境还需要结合 Rosetta、AlphaFold、ImmuneBuilder 等专业工具链并补齐结构验证与湿实验反馈环节。4.1 创建项目结构首先建立目录把数据、特征、模型和评估脚本分开。真实项目中清晰的目录结构可以帮助团队快速定位数据处理环节。ai_antibody_blind_test/ ├── data/ # 原始抗原、抗体候选序列 ├── features/ # 特征提取与编码 ├── models/ # 模型训练与候选生成 ├── evaluation/ # 结果评估与可视化 └── README.md4.2 数据准备读取 FASTA 格式序列假设输入是 FASTA 格式的抗原序列和一批候选 CDR 序列。使用 Biopython 读取是最常见的方式。# 文件路径data/load_sequences.py from Bio import SeqIO def load_fasta(path): records {} for record in SeqIO.parse(path, fasta): records[record.id] str(record.seq) return records if __name__ __main__: antigen load_fasta(data/antigen.fasta) candidates load_fasta(data/candidates.fasta) print(fantigen 数量: {len(antigen)}) print(fcandidate 数量: {len(candidates)})读取数据只是第一步。实际项目中还需要做序列去重、长度过滤、比对到种系基因等清洗操作。盲测中序列格式不合法、含有非标准氨基酸等情况也会被直接淘汰因此数据清洗管线必须提前做好。4.3 特征提取把序列变成模型能理解的向量接下来把抗体 CDR 序列编码成模型输入特征。这里提供两种基础编码一种是 one-hot 序列编码另一种是理化性质统计特征。# 文件路径features/encode.py import numpy as np from collections import Counter AA_ALPHABET ACDEFGHIKLMNPQRSTVWY AA_TO_IDX {aa: i for i, aa in enumerate(AA_ALPHABET)} HYDROPATHY {A: 1.8, R: -4.5, N: -3.5, D: -3.5, C: 2.5, Q: -3.5, E: -3.5, G: -0.4, H: -3.2, I: 4.5, L: 3.8, K: -3.9, M: 1.9, F: 2.8, P: -1.6, S: -0.8, T: -0.7, W: -0.9, Y: -1.3, V: 4.2} def one_hot_encoding(seq, max_len35): 将 CDR 氨基酸序列编码为 one-hot 矩阵并展平。 matrix np.zeros((max_len, len(AA_ALPHABET)), dtypenp.float32) for i, aa in enumerate(seq): if i max_len: break idx AA_TO_IDX.get(aa) if idx is not None: matrix[i, idx] 1.0 return matrix.flatten() def physicochemical_features(seq): 统计序列的理化性质特征。 if not seq: return {length: 0, hydrophobicity_mean: 0.0, aromatic_ratio: 0.0} aa_counter Counter(seq) length len(seq) hyd_mean float(np.mean([HYDROPATHY.get(aa, 0.0) for aa in seq])) aromatic_ratio (aa_counter.get(F, 0) aa_counter.get(Y, 0) aa_counter.get(W, 0)) / length return { length: length, hydrophobicity_mean: hyd_mean, aromatic_ratio: aromatic_ratio, }这里的 one-hot 编码会把每条序列统一成长度 35 的向量超过部分截断不足部分补零。理化性质特征则补充了序列本身的生物学属性。真实项目中特征工程通常还会加入 BLOSUM62 替换矩阵编码、种系基因家族信息、结构特征如 CDR 环长度和残基接触图等。4.4 亲和力预测模型这里用随机森林回归作为示例。标签可以是实验测得的 log10(Kd)特征矩阵来自上一步构建的编码向量。# 文件路径models/affinity_model.py from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error, r2_score from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler def build_model(): 构建随机森林回归模型。 return make_pipeline( StandardScaler(), RandomForestRegressor( n_estimators400, max_depth10, min_samples_leaf3, n_jobs-1, random_state42 ) ) def train(X, y): X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42 ) model build_model() model.fit(X_train, y_train) y_pred model.predict(X_test) print(MSE:, round(mean_squared_error(y_test, y_pred), 4)) print(R2:, round(r2_score(y_test, y_pred), 4)) return model随机森林适合小数据集场景训练快、可解释性较好。如果你的数据规模足够大可以考虑换成梯度提升树、图神经网络或预训练蛋白质语言模型做回归。但无论选什么模型都要重视验证集的切分方式最好按靶点划分避免同源序列泄漏导致虚高指标。4.5 CDR 候选序列生成生成式模型训练成本比较高这里用“模板突变采样”的简化方法演示生成流程。真实项目通常会使用扩散模型、语言模型或 Rosetta 的序列设计模块来生成候选。# 文件路径models/cdr_design.py import random TEMPLATE_CDR YFTQSNK AA_LIST ACDEFGHIKLMNPQRSTVWY def mutate_cdr(seq, n_mut3, rngNone): 在指定 CDR 模板上随机引入 n_mut 个突变。 if rng is None: rng random.Random(0) seq_list list(seq) positions rng.sample(range(len(seq_list)), min(n_mut, len(seq_list))) for pos in positions: seq_list[pos] rng.choice(AA_LIST) return .join(seq_list) def generate_candidates(n20): 基于模板生成一批候选 CDR 序列。 candidates [] for _ in range(n): candidates.append(mutate_cdr(TEMPLATE_CDR, n_mut3)) return candidates这段代码的目的是生成多样性候选。真实生产环境要注意随机突变容易产生大量无效序列尤其是引入半胱氨酸可能造成二硫键错配引入脯氨酸可能破坏环结构。所以成熟的生成管线会在突变时加入氨基酸偏好限制比如避免在 CDR 中引入未配对 Cys或者限制特定位置的疏水残基。4.6 主流程串联生成、编码、预测、排序把前面的模块串联起来可以得到完整的候选筛选流程。# 文件路径main.py import numpy as np from features.encode import one_hot_encoding, physicochemical_features from models.cdr_design import generate_candidates from models.affinity_model import train # 1. 生成候选序列 candidates generate_candidates(n20) # 2. 特征编码 X [] for seq in candidates: feat np.hstack([ one_hot_encoding(seq), list(physicochemical_features(seq).values()) ]) X.append(feat) X np.array(X) # 3. 训练模型并进行预测示意需要准备训练数据 # model train(X_train, y_train) # preds model.predict(X) # top_indices np.argsort(preds)[::-1][:5] print(候选序列数量:, len(candidates)) print(特征矩阵形状:, X.shape)上述流程已经把“生成-编码-预测-排序”打通。真正的盲测流程还要在这个基础上增加结构验证、人源化分析、可开发性过滤最后把 Top 序列提交给实验平台。计算端的目标不是选出一条“绝对正确”的序列而是选出一个“高成功率”的候选池。5. 盲测结果背后的关键结论5.1 整体表现AI“会做题”但“高分不稳定”结合公开信息来看这场盲测传递出的信号比较真实AI 设计抗体并没有宣传中那么神但也确实展现出一定潜力。很多团队在内部验证集上表现亮眼但在统一第三方实验中整体阳性率并不算高。这并不意外因为计算模型学到的多是序列与亲和力之间的统计关联而实验系统里还叠加了表达调控、蛋白折叠、翻译后修饰、检测灵敏度等大量额外变量。“高分不稳定”是计算抗体设计最常见的困境。模型在某个靶点上学到的规律很难直接迁移到新靶点不同表达系统之间序列的命运也可能完全不同。盲测暴露出的这类问题本质上说明现有模型对“可开发性”的建模还远远不够。5.2 成功序列的共性特征如果只关注盲测中被判定为阳性的序列能发现一些共性与天然人源抗体库序列更接近没有过度设计CDR 长度落在常见范围内没有极端长 CDR骨架区使用了成熟的人源抗体框架计算出的聚集倾向、等电点等指标相对合理。这些特征说明AI 设计并不是越“脑洞”越好。在真实抗体开发中可开发性往往比单纯的亲和力数值更重要。一条亲和力很强但表达极差的序列很难成药而一条亲和力中等但表达稳定、特异性好的序列反而更容易推进到下游开发。对计算团队来说生成序列时就要把“稳妥性”放进目标函数而不是只追求亲和力打分最大化。5.3 失败案例与调试方向失败案例大致可以分成几类。第一类是序列表达失败原因可能是稳定性差、密码子偏好不合适、对宿主细胞有毒性。第二类是表达成功但不结合说明计算预测的亲和力与真实结合行为脱节。第三类是结合阳性但特异性差序列中可能存在疏水斑块或电荷聚集区域导致与无关蛋白发生非特异性结合。针对这些失败调试方向通常不是继续堆模型复杂度而是回到数据层面。检查训练集是否覆盖当前靶点的序列多样性加入结构约束确保生成序列能正确折叠引入多样性控制避免采样过于集中增加可开发性过滤把表达和聚集风险前置挡掉。这些调整比换一个更大的模型更有效。6. 常见问题与排查思路下面是 AI 抗体设计项目中高频遇到的问题以及排查思路整理成速查表方便对照参考。问题现象常见原因解决思路预测亲和力很高实验却不结合训练集与目标抗原分布差异大补充相似靶点数据使用迁移学习表达量低甚至不表达序列稳定性差、密码子偏好不当人源化改造、优化密码子、更换表达载体生成序列高度重复采样温度过低或多样性约束不足提高采样温度加入多样性奖励结构预测与实验结构相差大CDR 长度超出模型训练范围限制 CDR 长度使用模板结构引导结合阳性但特异性差存在疏水斑块或电荷聚集区域增加可开发性过滤检测表面黏性模型在盲测中突然失效训练数据泄漏真实泛化能力不足用盲测数据回填训练集重新切分验证集排查时的基本顺序是先看表达再看结合最后看特异性。每一步都要结合湿实验数据做根因分析不要只盯计算指标。举例来说如果一条序列预测亲和力排第一但实验不表达那么问题大概率在表达环节而不是结合预测模型出了问题此时应该调整表达优化策略而不是回头重新训练亲和力模型。7. AI抗体设计的工程化最佳实践7.1 数据治理比模型更重要的护城河盲测暴露出的最大问题往往不是模型不够强而是训练数据覆盖不足。建议把更多精力放在数据治理上收集公开抗体数据库定期更新与实验团队建立私有数据回流机制保证抗原多样性、序列多样性和实验条件多样性每条数据都要标注表达系统、克隆载体、标签方式、检测阈值等关键元信息。没有高质量、多来源的数据再强的模型也很难泛化。尤其要注意避免数据泄漏比如训练集和测试集之间不能存在同源序列。在做数据集切分时建议按 CDR 序列相似度或抗原靶点划分而不是随机划分这样评估出的泛化能力更接近盲测场景。7.2 模型选择不是越复杂越好具体选什么模型要考虑算力和数据量。如果数据不足先用随机森林、梯度提升树做基线把特征工程和评估流程跑通如果数据覆盖面广再尝试预训练蛋白质语言模型或扩散模型。重点不是追逐最新模型而是建立清晰的基线对比确保新模型确实带来了指标提升而不是仅仅增加了复杂度。在很多真实项目中简单的机器学习模型加上高质量过滤规则效果反而不输复杂大模型。原因在于抗体设计的数据规模远比自然语言处理小大模型容易过拟合而物理约束和实验反馈能提供更强的基础保障。建议把模型当作系统中的一个组件而不是全部。7.3 可解释性与人机协同抗体设计是高风险高成本领域模型输出最好能解释“为什么这样改”。面向实验团队交付候选序列时不要只给一列 FASTA还要给出关键信息CDR 突变位点、与模板序列的差异、预测亲和力变化、潜在聚集风险、人源化程度。这些信息能帮助实验人员判断哪些候选值得优先合成。可解释性不只是为了报告好看。当实验失败时可解释的信息能帮助团队快速定位失败原因。比如模型显示某个 CDR 位点突变引入了额外疏水残基实验发现表达产物聚集二者相互印证下一步就能针对性修改。这样计算和实验之间就能形成高效的人机协同而不是相互甩锅。7.4 合规、伦理与实验验证AI 设计抗体的最终产出是用于疾病治疗的生物大分子合规与伦理要求非常严格。团队需要确保训练数据的合法来源遵守数据使用授权协议。任何临床前研究都要经过严格的体外、体内验证计算结果不能替代动物实验和临床试验。在药物开发过程中AI 生成的序列必须通过完整的质量控制和安全性评估。对于个人开发者或学术团队虽然现阶段不需要走完整临床流程但也要注意不要基于 AI 预测结果直接开展未经授权的动物或人体实验。发布模型和代码时要遵守开源协议同时避免把尚未验证的预测结果描述为确定的临床结论。7.5 团队架构与迭代节奏建议采用
返回列表