城南老街的尽头,住着一位专配怪锁的锁匠。这天,医院送来一枚特殊的锁——它不是金属做的,而是一个会跳舞的蛋白质。这枚“锁”因为某个位置的变异而失去控制,像保险柜的锁芯被小偷焊死。锁匠的任务是配一把能将它轻轻锁住的“钥匙”,也就是一个药物分子。传统做法是黑箱碰撞:把上百万把现成钥匙扔进锁里,听天由命。而结构优化SBDD(Structure-Based Drug Design,基于结构的药物设计)给了锁匠一束X光——先看清锁芯的三维图纸,找到锁眼,再有理有据地打磨钥匙。这条理性之路贯穿AI制药全链路:从蛋白结构获取、结合位点识别,到分子对接、虚拟筛选、先导化合物优化,再到分子动力学验证。本文就跟着这位锁匠,把SBDD的每一步拆开看明白:他如何偷看锁芯、圈定锁眼、试插钥匙、批量海选、精雕细琢,以及最终如何用千次开关锁的疲劳测试来交付一把好钥匙。

岗位关联

掌握结构优化SBDD,意味着你能在AI制药全链路中打通“从靶点结构到候选分子”的理性设计闭环——这是人工智能药物发现工程师的核心竞争力之一。

目录
  1. 可视化演示
  2. SBDD基本概念:先看图,再配钥匙
  3. 蛋白结构获取:偷看锁芯的三种办法
  4. 结合位点识别:在精密机件里找锁眼
  5. 分子对接原理:钥匙坯的千姿百态
  6. 虚拟筛选应用:万把钥匙的流水线
  7. 先导化合物优化:精雕每一齿
  8. 分子动力学验证:千次开关锁的疲劳测试
  9. 实战案例与挑战:名案与翻车现场
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示分子能量面优化、能垒跨越及药物设计流程的三模态交互动画,揭示SBDD结构优化的核心原理。

本节配有交互动效(进入视口后自动加载,约 3KB)。

分子能量面优化 初始构型 最优构型 E(x)=Σ bonded + Σ nonbonded 分子在能量面上沿梯度下降方向寻找最低能量构型

SBDD基本概念:先看图,再配钥匙

老街锁匠铺接了桩怪活儿:一把“会发抖的锁”。它其实是人体里一个折叠成精妙三维结构的蛋白质,因为变异而失去控制,像保险柜的锁芯被小偷焊死。锁匠要做的是配一把钥匙——一个能与蛋白结合、改变它行为的分子。但锁芯在显微镜下才看得见,蒙着眼配钥匙,成功率约等于大海捞针。

结构优化SBDD的核心理念,就是把这句“看得见再动手”落实成流程:先解析靶蛋白的三维结构,定位真正的结合口袋(锁眼),再设计并优化配体分子(钥匙),使两者在空间与能量上互相匹配。与此相对的LBDD(基于配体的药物设计)则是“锁丢了,只能根据旧钥匙反推锁芯”——从已知活性配体的共同特征出发做相似性搜索。两者一个从锁出发,一个从钥匙出发,殊途同归。

SBDD的决策依据是一个物理量:结合自由能ΔG。ΔG<0表示蛋白与配体在热力学上倾向自发结合;ΔG>0则结合无望。它涵盖焓的贡献(氢键、范德华力、静电)与熵的惩罚(配体结合后自由度下降),是打分函数、动力学模拟乃至实验亲和力测定共同逼近的目标。

锁匠在墙上贴了一张表:不是所有钥匙都能让门“咔哒”一声——ΔG<0 是那声脆响的物理学名字。明白了这个判据,接下来的每一道工序,都是为了把这声“咔哒”变得更响、更持久。

ΔGbind=Gcomplex−(Gprotein+Gligand)=ΔH−TΔS\displaystyle \Delta G_{bind} = G_{complex} - (G_{protein} + G_{ligand}) = \Delta H - T\Delta S
结合自由能=复合物能量减去两边游离能量,等于焓变与熵项之差;只有为负,配体才可能主动“投怀送抱”。
  1. 复合物自由能 G_complex钥匙完全插进锁眼后,整套“锁+钥匙”体系的总能量。
    GcomplexG_{complex}
  2. 组成项 G_protein 与 G_ligand蛋白与配体各自独处时的能量,作为比较的基准线。
    Gprotein+GligandG_{protein} + G_{ligand}
  3. 焓变 ΔH结合前后热焓变化,反映氢键、范德华与静电相互作用的净收益。
    ΔH\Delta H
  4. 熵项 TΔS温度乘以熵变;配体结合后转动与平动被冻结,熵下降,因此该项通常“倒扣分”。
    TΔST\Delta S

蛋白结构获取:偷看锁芯的三种办法

配钥匙不能瞎猜。过去锁匠只能把锁拆开浇蜡模;现在的结构生物学家有更优雅的手段:让蛋白长出晶体,用X射线“拍照”;把蛋白冻在冰里用电子束扫;或在磁场里听它核自旋的低语。三种方法各有用武之地。

要把锁芯看清,结构生物学家有三条路:X射线晶体学让蛋白长成晶体,用X射线轰出衍射图样;冷冻电镜把蛋白冻在玻璃态冰里,用电子束扫描重构;核磁共振则在溶液中听原子核的信号。三条路各有擅长——晶体学给高分辨率、电镜扛大分子复合物、核磁管溶液态小蛋白。AI时代还多了一条捷径:AlphaFold直接从氨基酸序列预测三维结构;而PDB数据库则像一个公共档案馆,沉淀了近二十万个实验结构。

无论哪条路,核心货币都是“分辨率”。晶体学里,分辨率由X射线衍射图样的信息量决定,其物理基础是布拉格方程:一束波长为λ的X射线以θ角照到晶面间距为d的原子层上,只有光程差恰好是波长整数倍时,反射波才会同相叠加、形成可测的衍射斑点。

锁匠拿到图纸,第一眼看的是清晰度:3埃的图只能看清锁芯大轮廓,2埃以下才能分辨每一道弹子槽的方向。AlphaFold预测结构则像建模师按图纸做的3D渲染图——轮廓可信,但侧链的“微表情”仍需实验数据或动力学弛豫来修正。

nλ=2dsin⁡θ\displaystyle n\lambda = 2d\sin\theta
布拉格方程:当光程差等于波长的整数倍时出现衍射峰;它把“晶面间距 d”翻译成照片上光斑的位置。
  1. 衍射级数 n整数,表示相邻晶面光程差是波长的几倍,决定反射方向。
    nn
  2. 波长 λX射线的波长,常在0.1纳米量级,与化学键的尺度相当。
    λ\lambda
  3. 晶面间距 d蛋白晶体中原子层的间距,相当于待测的“钥匙坯齿距”。
    dd
  4. 入射角 θ只有满足方程的入射角,反射波才能相干增强,形成可捕捉的光斑。
    sin⁡θ\sin\theta

结合位点识别:在精密机件里找锁眼

锁芯图纸摊开,另一个问题浮上来:机件里凹槽无数,哪个才是真正的锁眼?蛋白表面起伏不平,随便一个凹陷都可能被分子“蹭”一下,但只有形状、大小、化学性质都合适,值得投入药物设计的位点,才配叫活性口袋(binding pocket)。

计算机找锁眼,最朴素的办法是网格法:把蛋白放进一张间距为a的立体坐标纸,逐格检查——落在蛋白表面内凹区域、且不与蛋白原子重叠的格子,标记为口袋候选,统计个数N,体积自然就是N×a³。体积太小装不下药物分子,太大又太“漏风”,成不了稳定结合。

网格之外还有更精细的探针:热点残基分析通过丙氨酸突变或能量分解,找出对结合贡献最集中的几个残基——相当于锁眼内部承力最大的弹子。这些残基的疏水斑块、氢键供受体、带电头朝向,共同定义了一张“化学需求地图”,指导后续设计。另外别忘了变构位点:不堵正门,而是让整个锁芯变形失效。

锁匠用红笔圈出锁眼,又用蓝笔标出几颗“吃重弹子”。他说:圈错锁眼,一切白费;认准弹子,磨齿才有依据。口袋识别就是SBDD的“第一性原理”——方向错了,后面所有弯道超车都是白跑。

Vpocket=Ngrid×a3\displaystyle V_{pocket} = N_{grid} \times a^{3}
口袋体积≈内部网格点数×单格体积;成药性判断常要求口袋足以容纳一个药物分子(数百立方埃)。
  1. 网格点数 N_grid被标记为在口袋内部(不与蛋白原子重叠)的立方格数量。
    NgridN_{grid}
  2. 网格间距 a网格分辨率,通常取0.5–1埃;越密越精确,但算力开销越大。
    aa
  3. 单格体积 a³每个小格子代表的空间体积,是统计口袋容量的基本单位。
    a3a^{3}
  4. 体积 V_pocket口袋总容积,判断是否“装得下一把钥匙”的第一道关卡。
    VpocketV_{pocket}

分子对接原理:钥匙坯的千姿百态

锁眼和承力弹子都摸清了,锁匠开始试钥匙坯。分子对接就是把钥匙坯塞进锁眼的过程:让配体平动、旋转到口袋附近,再掰动几根可旋转键,搜遍所有可能的“姿势”,找最贴合的那一个。

对接本质是两个问题的组合:采样(生成候选姿势)与打分(给姿势排序)。采样算法各怀绝技——遗传算法像让钥匙坯随机变异进化,蒙特卡洛像在姿态空间里掷骰子游走,系统搜索则把每个自由度切成网格穷举;而打分函数则像老师阅卷,给每个姿势一个快速分数。

打分函数是自由能的“快速估算器”,常写成四项线性组合:范德华项用12-6势惩罚原子重叠、奖励近距离接触;静电项用库仑公式处理带电基团;去溶剂化项扣掉挤开水分子付出的能量;旋转熵项惩罚可旋转键被冻结的自由度损失。受体是刚还是柔,决定了对结果的信赖度——刚性快而糙,适合海选;半柔性在关键侧链上放开自由度,是工业界主力。

老锁匠有句行话:手感要试三遍,姿态要聚成簇。单一个高分姿势可能是瞎猫撞上死耗子;十几个近优姿势都指向同一插入角度,才说明这钥匙坯与锁眼真有缘分。对接的落脚点不是绝对分数,而是“一致的方向感”。

ΔGscore≈ΔGvdW+ΔGelec+ΔGdesolv+ΔGrot\displaystyle \Delta G_{score} \approx \Delta G_{vdW} + \Delta G_{elec} + \Delta G_{desolv} + \Delta G_{rot}
打分函数把结合自由能拆成范德华、静电、去溶剂化和旋转熵四项;每项都是可快速计算的近似。
  1. 范德华项 ΔG_vdW用12-6势近似原子间的色散与排斥,太近爆炸、太远无关。
    ΔGvdW\Delta G_{vdW}
  2. 静电项 ΔG_elec库仑作用,处理带电与极性基团之间的吸引或排斥。
    ΔGelec\Delta G_{elec}
  3. 去溶剂化项 ΔG_desolv结合时要挤开界面上的水分子,需要付出能量成本。
    ΔGdesolv\Delta G_{desolv}
  4. 旋转熵项 ΔG_rot配体可旋转键被固定后自由度减少,熵惩罚随可旋转键数量上升。
    ΔGrot\Delta G_{rot}

虚拟筛选应用:万把钥匙的流水线

锁匠仓库里躺着几十万把现成钥匙坯,一把把手动试到退休也试不完。于是他把铺子改成流水线:所有钥匙坯先过一台“自动试锁机”,快速筛掉九成九,只留最像样的几十把上实验台。这条流水线,就是虚拟筛选。

虚拟筛选把对接流程做成高通量工厂:从化合物库取分子、清洗加氢加电荷、逐个对接打分、按分数排序取Top、交实验验证。化合物库的构建是源头活水——ZINC、Enamine等公开库动辄上百万分子,内部库还要叠加上市药、天然产物、DNA编码库等多样性策略,保证“钥匙坯”的覆盖面。

评价这条流水线,核心指标是富集因子EF:候选集里活性分子的占比,除以全库活性分子的占比。EF>1说明筛选确实把活性分子“捞”到了前面;EF=1说明白筛一场,跟抽签没区别。实际项目里命中率常在个位数百分比,因此还要叠加共识打分、聚类去冗余、药效团预筛来压假阳性。

流水线的好处是快,坏处是“机器觉得行”不等于“锁觉得行”。锁匠仍要亲手试那几十把:虚拟筛选用计算机时换实验经费,但实验验证永远是终审法官——EF再高,也只是说机器的眼光统计上靠谱。

EFtop1%=Htop1%/Ntop1%Htotal/Ntotal\displaystyle EF_{top1\%} = \frac{H_{top1\%} / N_{top1\%}}{H_{total} / N_{total}}
富集因子=候选集里活性分子占比÷全库活性分子占比;EF>1说明筛选真的把活性分子“捞”到了前面。
  1. 候选集活性分子数 H_top1%被挑进前1%且确实有活性的分子数量。
    Htop1%H_{top1\%}
  2. 候选集分子数 N_top1%前1%候选的总分子数,决定统计置信度。
    Ntop1%N_{top1\%}
  3. 全库活性数 H_total整个化合物库里真正活性分子的总数(由先验知识或实验获得)。
    HtotalH_{total}
  4. 全库分子数 N_total化合物库的总规模,通常是分母中的“汪洋大海”。
    NtotalN_{total}

先导化合物优化:精雕每一齿

海选留下的种子钥匙,大多只是“勉强插得进”:有的齿浅了半毫米,有的角度歪了两度。先导化合物优化就是锁匠的精细活——盯着锁芯图纸,一点一点修正齿形,让钥匙从“能用”变成“好用”。

优化的方向有三条线交织:亲和力(插得更紧)、选择性(只认这一把锁不误开别的)、类药性(材料耐用、不伤锁主人)。每加一个原子都要掂量性价比——分子越大,旋转熵罚越大、溶解度越差、合成成本越高。于是有了配体效率LE这把“原子性价比尺”。

典型操作:在芳香环上补一个甲基填满疏水空穴;引入氟原子阻断代谢热点;加一个极性臂与关键残基形成氢键;对linker做环化锁住生物活性构象;甚至骨架跃迁跳到全新化学母核绕开专利。每一步都可用ADMET预测与合成可及性评估兜底——亲和力做到皮摩尔,代谢半衰期三分钟,照样是废钥匙。

锁匠从不给钥匙加装饰齿。他的原则是:每一颗原子都要在锁芯里找到“岗位”。LE这把尺子度量的正是这种匠心——不是做得越大越复杂越好,而是让每一个重原子都值回票价。

LE=−ΔGbindNheavy≈−RTln⁡KiNheavy\displaystyle LE = \frac{-\Delta G_{bind}}{N_{heavy}} \approx \frac{-RT\ln K_i}{N_{heavy}}
配体效率=每个重原子贡献的结合自由能;LE越高,说明每颗“原子预算”花得越值。
  1. 结合自由能 ΔG_bind当前类似物与靶标的实验或估算结合自由能(通常为负值)。
    −ΔGbind-\Delta G_{bind}
  2. 重原子数 N_heavy非氢原子个数,近似代表分子大小、合成成本与熵罚来源。
    NheavyN_{heavy}
  3. 抑制常数 K_i衡量配体阻断靶标活性的浓度,越小说明亲和力越高。
    KiK_i
  4. 常数项 RT气体常数乘以绝对温度,把平衡常数换算成自由能的物理桥梁。
    RTln⁡KiRT\ln K_i

分子动力学验证:千次开关锁的疲劳测试

钥匙精修完成,锁匠却还不交工。真正的考验是耐用性:把钥匙插进锁里,来来回回开关一千次,看会不会卡齿、会不会松动——这就是分子动力学模拟(MD)在SBDD里的角色。

对接只给了一张静态快照,而真实结合是动态的:蛋白在晃、水在流、侧链在呼吸。MD把复合物放进带水分子和离子的“生理浴缸”,给每个原子初速度,积分牛顿运动方程,就能看到纳秒到微秒尺度上结合姿态的完整故事。

看什么指标?RMSD:配体重原子相对初始姿态的偏移,收敛平稳说明结合稳定;氢键占有率:关键氢键在轨迹上的存活比例;口袋形变:判断是否发生诱导契合。要更可靠地算结合自由能,可在MD轨迹上用MM-PBSA/GBSA求系综平均——把每帧的分子力学能差取平均,再加连续溶剂模型的贡献。

锁匠的疲劳测试发现了意外:夏天顺滑的钥匙,冬天竟有点涩——温度变了,金属和锁芯都在热胀冷缩。于是他在材料里加了点“韧性”。MD就是锁匠的硅基试锁台:在花大钱做动物实验之前,先把天气、震动、长久磨损都试个遍。

ΔGbind=⟨Ecomplex−Eprotein−Eligand⟩+ΔGsolv\displaystyle \Delta G_{bind} = \left\langle E_{complex} - E_{protein} - E_{ligand} \right\rangle + \Delta G_{solv}
MM-PBSA/GBSA类方法:沿MD轨迹取系综平均的分子力学能差,再加上溶剂化贡献,得到比单帧打分更可靠的自由能估计。
  1. 系综平均 ⟨…⟩对整条轨迹的每一帧求平均,消除热涨落带来的噪声。
    ⟨⋅⟩\langle \cdot \rangle
  2. 分子力学能差复合物能量减去蛋白与配体单独的能量,含键能、范德华与静电贡献。
    Ecomplex−Eprotein−EligandE_{complex} - E_{protein} - E_{ligand}
  3. 溶剂化项 ΔG_solv用连续溶剂模型(PB/GB)加非极性表面项,估算水环境的贡献。
    ΔGsolv\Delta G_{solv}
  4. 结果 ΔG_bind比打分函数更贵的“第二意见”,常用于候选分子终选前的复核。
    ΔGbind\Delta G_{bind}

实战案例与挑战:名案与翻车现场

锁匠铺有传世之作,也有翻车档案。传世之作:HIV蛋白酶抑制剂靠结构设计杀出重围;伊马替尼盯着一颗激酶的ATP口袋设计,改写了白血病治疗史;新冠疫情期间,科学家拿到Mpro结构后立刻对老药库虚拟筛选,为“老药新用”提供了第一波理性候选。

翻车档案第一条写着鲜红的三个字:假阳性。打分函数给高分、实验全阴性,是每个计算团队都交过的学费。原因不难理解:库中活性分子占比常常只有千分之一,即使筛选器灵敏度高达90%,命中列表里真活性的比例也高不到哪去——这正是贝叶斯公式教给我们的冷静。

对策不是放弃筛选,而是让验证阶梯化:共识打分让多个函数投票;MD对Top候选重新排序;能量分解揪出打分虚高的模式;显式水分子建模处理桥接氢键;多构象系综对抗“一张照片定终身”的刚性假设。算力预算从便宜到昂贵逐级投入,每一级都在为下一级实验过滤噪声。

锁匠铺门楣上刻着一行字:图纸再精细,也要上手试;硅基千般好,终需湿实验。结构优化SBDD不是算命,它是一套让理性、计算与实验反复对表的工程方法——这也正是AI制药全链路中,分子设计环节最值得敬畏的心法。

P(活性∣命中)=P(命中∣活性) P(活性)P(命中)\displaystyle P(\text{活性}|\text{命中}) = \frac{P(\text{命中}|\text{活性})\,P(\text{活性})}{P(\text{命中})}
贝叶斯公式揭示筛选的数学冷静:先验很低时,命中列表里必然混入大量假阳性;对策是提高先验(建更聚焦的库)或提高特异性(共识打分+MD重排)。
  1. 先验 P(活性)库中活性分子的占比,常常低至0.1%,是假阳性的“温床”。
    P(活性)P(\text{活性})
  2. 灵敏度 P(命中|活性)活性分子被筛为命中的概率,体现筛选器“抓真凶”的能力。
    P(命中∣活性)P(\text{命中}|\text{活性})
  3. 整体命中率 P(命中)全体分子被选入命中的概率,分母里混着大量假阳性。
    P(命中)P(\text{命中})
  4. 后验 P(活性|命中)给定“被选中”后真是活性的概率——这才是实验验证时面对的真实胜率。
    P(活性∣命中)P(\text{活性}|\text{命中})

AI 应用场景

疫情中的“老药新用”虚拟筛选

阶段:结构解析+虚拟筛选

解决的问题:新药研发以十年计,疫情不等人;传统高通量实验筛选上百万化合物既慢又贵。AI用已解析的病毒蛋白酶三维结构,对上市药物库做批量对接打分,把候选范围从百万级压缩到几十个,快速进入细胞实验验证。

具体案例:2020年初,多个研究团队用SARS-CoV-2主蛋白酶(Mpro)晶体结构,对FDA批准药物和临床在研药物进行虚拟筛选,识别出若干有望抑制病毒复制的候选药,直接进入体外验证,大幅压缩了“从零发现”的时间窗口。

激酶抑制剂的耐药突变结构优化

阶段:先导化合物优化

解决的问题:肿瘤靶向药使用一段时间后常出现耐药突变,原药结合口袋变形、亲和力大跌。AI的方法论是:解析突变体结构,与野生型口袋逐残基对比,找到空间冲突与丢失的氢键,针对性改造骨架,让新钥匙重新契合变形的锁眼。

具体案例:某肺癌ALK激酶抑制剂出现多位点耐药后,研发团队获取突变体结构,用对接与分子动力学定位位阻冲突,设计出能适应新口袋构象的二代抑制剂,将其推进到临床候选阶段。

AlphaFold预测结构辅助无晶体靶点的口袋评估

阶段:蛋白结构获取+结合位点识别

解决的问题:难结晶的跨膜蛋白、大分子复合物常没有实验结构,SBDD无从下手。AI用AlphaFold从序列直接预测三维结构,再经MD弛豫、口袋识别与成药性评估,先于实验拿到可用模型,指导早期立项与化学设计。

具体案例:对一个孤儿受体类靶点,团队用AlphaFold预测跨膜区结构,通过MD嵌入膜环境弛豫后识别候选口袋,并对口袋体积与热点残基做了成药性打分,据此启动了虚拟筛选项目并最终获得实验命中。

Python 演示

python72 行
"""简化版SBDD演示:网格打分的刚性对接搜索"""import mathimport random  def vdw_energy(r, r_i, r_j):    """12-6 Lennard-Jones 范德华势"""    if r < 1e-6:        return 1e5    r0 = r_i + r_j    eps = 0.12    return 4.0 * eps * ((r0 / r) ** 12 - (r0 / r) ** 6)  def elec_energy(r, q_i, q_j, diel=4.0):    """去溶剂化折减后的库仑静电势"""    if r < 1e-6:        return 1e5    return 332.0 * q_i * q_j / (diel * r)  def score_pose(protein, ligand, offset):    """对配体平移offset后的姿态打分:范德华+静电"""    total = 0.0    for px, py, pz, pr, pq in protein:        for lx, ly, lz, lr, lq in ligand:            dx = px - (lx + offset[0])            dy = py - (ly + offset[1])            dz = pz - (lz + offset[2])            r = math.sqrt(dx * dx + dy * dy + dz * dz)            total += vdw_energy(r, pr, lr)            total += elec_energy(r, pq, lq)    return total  def main():    random.seed(42)    # 生成半球形口袋:蛋白原子分布在半径5埃的球面上    protein = []    for _ in range(50):        theta = random.uniform(0.0, math.pi)        phi = random.uniform(0.0, 2.0 * math.pi)        x = 5.0 * math.sin(theta) * math.cos(phi)        y = 5.0 * math.sin(theta) * math.sin(phi)        z = 5.0 * math.cos(theta)        r = 1.7 if random.uniform(0, 1) < 0.6 else 1.5        q = random.choice([-0.4, 0.0, 0.2, 0.3])        protein.append((x, y, z, r, q))    # 小配体:约等于一把迷你钥匙    ligand = [        (0.0, 0.0, 0.0, 1.7, 0.2),        (1.5, 0.0, 0.2, 1.2, 0.3),        (-1.5, 0.0, -0.2, 1.2, -0.3),        (0.0, 1.5, 0.0, 1.4, 0.0),    ]    best_score = 1e9    best_offset = None    # 在网格上搜索最优平移:相当于穷举式对接采样    for dx in [i * 0.3 for i in range(-15, 16)]:        for dy in [i * 0.3 for i in range(-15, 16)]:            for dz in [i * 0.3 for i in range(-15, 16)]:                s = score_pose(protein, ligand, (dx, dy, dz))                if s < best_score:                    best_score = s                    best_offset = (dx, dy, dz)    print("最优平移偏移:", best_offset)    print("最优对接打分:", round(best_score, 3))    print("结合自由能近似(每配体原子均摊):", round(best_score / len(ligand), 3), "kcal/mol")  if __name__ == "__main__":    main()
目的:用纯Python实现一个微型SBDD对接流程——生成模拟蛋白口袋,对配体做网格平移采样,用范德华+静电打分函数搜索最优结合位置。
  1. def score_pose(protein, ligand, offset):打分函数核心,遍历所有蛋白-配体原子对计算能量
  2. total += vdw_energy(r, pr, lr)累加范德华项,惩罚原子重叠、奖励近距离接触
  3. total += elec_energy(r, pq, lq)累加静电项,奖励电荷互补的相互作用
  4. protein.append((x, y, z, r, q))生成模拟口袋的蛋白原子列表(位置、半径、电荷)
  5. for dz in [i * 0.3 for i in range(-15, 16)]:网格搜索第三维,构成穷举式平移采样
  6. if s < best_score:记录当前最优姿态,对应对接中的“能量最小化”思想
  7. best_offset = (dx, dy, dz)保存最优平移向量,即预测的结合位置

常见误区

误区“AlphaFold都出到第三代了,预测结构拿来就直接跑对接,还要实验结构干嘛?”

正解AlphaFold的pLDDT高分区主链可信,但侧链构象、口袋开口大小、柔性loop常与真实状态有偏差。直接对接容易把配体引向“看起来像但实际不存在的口袋”。可靠做法是先做MD弛豫、参考同源实验结构、对关键残基做实验验证。预测结构像速写,实验结构才是一比一蓝图。

为何常见:AI新闻铺天盖地,加上PDB里无结构的靶点确实太多,容易让人把“能用”误当“好用”。

误区“对接打分-9.2比-8.9低了0.3 kcal/mol,前者肯定结合更强。”

正解打分函数是几分钟内算完自由能的“快餐”,忽略大量细节,误差动辄±2 kcal/mol,比0.3大一个量级。分数只能在同一批次内做相对排序,跨体系比绝对值毫无意义。要获得可信自由能,得上MM-PBSA/FEP或实验测定。

为何常见:分值带着能量单位,看起来严谨;论文里也常用漂亮的数字对比强化印象。

误区“把IC50做到皮摩尔级别,这药肯定成功。”

正解药物最终要的是疗效与安全。过强亲和力可能带来靶点相关毒性——把正常组织里的同类靶标也锁死;还可能因为分子过大、过脂溶而吸收差。SBDD优化必须同时看选择性、ADMET与毒性,LE指标就是在提醒:分子也别太大。

为何常见:实验室最方便测的就是亲和力,天然会形成“数据导向”的错觉。

误区“把MD跑到微秒级,结论必然比100纳秒准。”

正解模拟时长只是可靠性的一面。力场精度、水模型、盐浓度、是否达到平衡、采样是否遍历构象空间共同决定可信度。跑得久但初始结构就错了,等于把钥匙插进错误的锁。合理做法是多次并行短跑加统计收敛判断。

为何常见:“越多越好”的直觉被GPU算力广告不断强化,让人忽略初始条件的重要性。

面试题

Q1. SBDD最核心的出发点是什么?

单选题 · easy

  • A.依据靶点三维结构设计配体← 正确答案
  • B.依据已知配体相似度筛选
  • C.依赖大规模随机盲筛药物
  • D.依据化合物的合成成本选药

答案:A。SBDD强调“先看锁芯图纸再配钥匙”,即基于靶蛋白三维结构理性设计配体。B是LBDD的思路,C是传统高通量盲筛,D与结合机制无关,因此选A。

Q2. 下列哪种技术主要用于解析蛋白三维晶体结构?

单选题 · easy

  • A.X射线晶体学解析结构← 正确答案
  • B.质谱测序分析蛋白质
  • C.DNA高通量基因测序
  • D.聚合酶链反应扩增

答案:A。X射线晶体学通过衍射图样反推电子密度,是解析蛋白晶体结构的经典主力。质谱测序分析的是序列组成,DNA测序与PCR针对核酸,都不产生三维空间结构。

Q3. 分子对接中“打分函数”的直接用途是什么?

单选题 · easy

  • A.评价配体受体结合模式优劣← 正确答案
  • B.测定抗体表达量的高低
  • C.计算化合物的分子量大小
  • D.评估合成路线的产率

答案:A。打分函数是自由能的快速估算器,给对接产生的每个候选姿态评分并排序。它不关心表达量、分子量或合成产率,那些属于实验与化学工艺范畴。

Q4. 关于结合自由能ΔG_bind,下列说法正确的是?

单选题 · mid

  • A.ΔG为负才有自发结合可能← 正确答案
  • B.ΔG为正表示结合更稳定
  • C.ΔG完全与温度无关
  • D.ΔG只取决于疏水作用

答案:A。热力学第二定律指出ΔG<0过程才可能自发进行,结合亦然。ΔG为正意味着结合不占优势;ΔG包含TΔS项,必然依赖温度;它的来源包括氢键、静电、范德华与疏水等多重作用。

Q5. 虚拟筛选中富集因子EF衡量的是什么?

单选题 · mid

  • A.反映活性分子被富集的程度← 正确答案
  • B.反映化合物库的总分子数
  • C.反映蛋白结构的分辨率
  • D.反映分子模拟的总时长

答案:A。EF=候选集活性占比÷全库活性占比,直接刻画筛选器把活性分子“捞到前面”的能力。库规模、分辨率与模拟时长都是可能影响筛选但本身不被EF度量的因素。

Q6. 下列哪些因素会影响结合位点识别的准确性?

多选题 · mid

  • A.蛋白构象的刚性与柔性← 正确答案
  • B.晶体结构的分辨率高低← 正确答案
  • C.界面水分子是否建模← 正确答案
  • D.化合物库的SMILES格式

答案:ABC。口袋识别依赖蛋白几何与化学性质:构象柔性决定口袋开口是否真实,分辨率决定表面细节可信度,水分子占据情况影响疏水空腔判断。SMILES是化合物库的表示格式,与口袋识别无关。

Q7. 先导优化中配体效率LE关注的核心是什么?

单选题 · mid

  • A.评估每重原子带来的结合收益← 正确答案
  • B.衡量化合物合成的总成本
  • C.描述蛋白结晶的成功率
  • D.度量抗体的中和滴度

答案:A。LE把结合自由能按重原子数均摊,回答“每个原子贡献了多少结合力”,是原子性价比尺子。它不度量合成成本、结晶成功率或抗体滴度,那些是其他维度的指标。

Q8. 下列哪些属于分子动力学在SBDD中的典型用途?

多选题 · hard

  • A.验证对接复合物的稳定性← 正确答案
  • B.计算结合自由能MM-PBSA← 正确答案
  • C.观察诱导契合过程细节← 正确答案
  • D.自动合成分子实物样品

答案:ABC。MD能沿轨迹看RMSD验证稳定性、取系综平均算MM-PBSA自由能、观察口袋随时间形变的诱导契合。它纯粹是计算手段,不能自动合成实物样品,那是实验化学的职责。

Q9. 虚拟筛选中大量假阳性的常见原因是什么?

单选题 · hard

  • A.打分函数忽略熵与溶剂细节← 正确答案
  • B.化合物分子具有对称结构
  • C.靶蛋白在实验中过度表达
  • D.计算机的内存容量不足

答案:A。打分函数把自由能简化为几项近似,常忽略熵、显式水与极化效应,导致虚高分数——这正是假阳性的主要来源。对称结构、过度表达与内存都不是筛选假阳性的直接成因。

Q10. 关于“打分函数分数差0.3 kcal/mol能否判定结合更强”,正确的认识是?

多选题 · extreme

  • A.误差常达2千卡不能直接断定← 正确答案
  • B.应联合多函数共识打分← 正确答案
  • C.需MD重排与实验交叉验证← 正确答案
  • D.分数越低亲和力必然越强

答案:ABC。0.3 kcal/mol远小于打分函数±2 kcal/mol的系统误差,必须谨慎。工程实践用共识打分、MD重排与实验验证三重确认,避免单函数定乾坤。D把分数与真实亲和力强行画等号,正是误区所在。