案例解析:基于量子计算的分子对接-QDOCK(Quantum Docking)

Thrimatter三态生物
2026-01-06 15:16:42
生命科学
量子信息
技术教程
算法解析
本帖最后由 Thrimatter三态生物 于 2026-1-6 15:16 编辑

一、背景介绍


1、目的:这篇文章简单来说就是:人怎么用机器,帮自己更快地找药。


分子对接:就像找钥匙配锁。药就是钥匙,人体里的蛋白就是锁。钥匙插得准不准,合不合适,决定了这药有没有用,有没有副作用。这篇文章就是在一大堆钥匙里,找出最可能插进某一把锁的那几个的方法。


2、难点:现在问题出在哪儿呢?钥匙不是死的。它能转,能歪,能换角度。锁也不是死的,有凹有凸。一种钥匙能有成千上万种姿势去试一把锁。要是钥匙多,锁也多,那要试的情况就多得吓人。普通电脑一把一把试,就像用胶头滴管在大海里数水的毫升数,数到天荒地老。


二、建模:



这里解释一下他们的建模依据


依据:自然规律就是“能量越低越稳定”
这是热力学基本原理:万物都趋向能量最低的状态


分子之间也是——两个分子结合时,会自动找到让总能量最低的那个姿势,就像水往低处流。


在药丸子这里:能量越低,说明药和蛋白结合得越紧、越稳,药效就可能越持久、越强。


所以他们认准了:只要我们能找到让 ΔG_Bind 最小的那个原子排布方式,就相当于找到了最有可能在真实中出现的结合姿势。这是整个模型的定海神针。


所以用 ΔGBind这个“能量函数”当目标,是有物理学背书的


[为啥要限制在“对接盒子”(D)里?
这盒子是科学家在蛋白口袋周围画出的一个小方框,大概每边长20-30 Å(比原子大几十倍)


他们相信,药丸子要起作用,其原子肯定不会跑到这个盒子外面去


作用一:大大减少计算量。本来原子能在整个宇宙中找位置,现在只在这个小盒子里找,要试的可能性就少了很多很多


作用二:符合常识。就像找钥匙眼,肯定只在锁头附近摸,不会去摸门框背面]


建模前的隐含前提假设:配体是刚性的
他们假设:药分子在对接过程中形状不变(就像一把硬钥匙)、蛋白口袋也是固定的


为啥?——如果钥匙还会扭动(柔性),计算量就爆炸了


(现实是:其实很多药分子是柔性的,但先假设刚性,问题就简单多了,这是先解决主要矛盾,因为如果分子进行扭动的话,我们计算量在空间上就会数量爆炸。我们知道一切分子的组成都是由原子核+电子组成的,一个药物分子又由不同的原子组成,药物蛋白中的化学键其实是电子在原子核周围形成的概率云,并且海森堡测不准原理意味着在微观尺度上存在固有的不确定性,尽管化学键的量子本质在原理上决定了原子间的相互作用,但在实际研究中,这些小分子的配体形状通常可以通过经典力场(分子力学)进行较好地近似。这是因为在大多数情况下,原子核的运动可以使用玻恩-奥本海默近似与电子运动分离,电子提供的有效势能面可以指导核的运动,从而允许用经典方法处理药分子对接过程,也是就是可以算个大概,后面再微调)


 


下面拆解建模思路



 


此处的建模把连续的东西拆成离散化


在真实世界里,分子的位置、角度、距离,全都是连续变化的,理论上有无穷多种可能。可机器算不了无穷。于是他们先做了一件看起来有点粗暴、但很关键的事:把对接空间切成一小格一小格。你可以把它想成把一块地划成棋盘。钥匙只允许放在格点上,不许在缝里乱飘。


本质上:就是把【空间上的匹配好不好】,翻译成【选择哪些点,哪些点不要】,将化学问题转为了排列组合的数学问题


这一刀切下去,问题立刻从“无穷多种姿势”,变成了“有限个候选姿势”。


先用网格点,把蛋白口袋和药物可能出现的位置都标出来。然后假设这样一件事:如果药物的某个原子,落在蛋白口袋里一个“合适的格点附近”,那这是一个加分项。如果它落在不该去的地方,甚至撞进蛋白里,那这是一个扣分项。于是,每一个格点,背后都有一个简单判断。
选它,这个姿势就多一分好感。不选它,什么都不发生。


再往前一步,他们还要防止你乱选。比如你不能同时选两个互相冲突的位置。这时候就引入了“惩罚”的概念。你一旦做了不合逻辑的选择,总分就会被狠狠扣掉。由于还要引入真实世界的物理规则,因此必须加硬规矩进行约束



大盒子(D)
有限个格点(比如N个)
“开关”变量:x_{ij}
x_{ij} = 1 就表示:药丸子的第 i 个原子,放在了第 j 个格点上。


x_{ij} = 0 就表示:不放。


K_dist:专管“保形状”规矩。谁破坏了分子内部距离,就狠狠罚。


K_mono:专管“一对一”规矩。谁让两个原子撞在一个格点上,就狠狠罚。


每一项公式,翻成白话就是一句话。
如果你选了这个点,就加多少分。
如果你同时选了这两个不该同时选的点,就罚你多少分。
最后把所有加分减分算在一起,总分最低的那一组选择,就是机器眼里“最顺眼”的构象。


所以你看到的那些平方项、交叉项,在物理上你完全可以不理解。你只要知道,它们在逻辑上做的是三件事。
奖励合理匹配。
惩罚不可能的组合。
逼着解落在“看起来像一个完整分子姿势”的区域里。


这套建模,不是化学模型,而是翻译模型。
它做的事,是把人类直觉里的“这个姿势看着顺不顺”,翻译成机器能快速算的“是或否选择题”。


 


到这一步就知道那个原子应该放在哪个位点上了


接下来是进行摆好药物姿势的操作


 



算法会巧妙地计算出一个最佳的旋转角度(K_rot),让药丸子模型上所有的原子,在旋转后,与他们各自的目标格点距离的平方和最小。


他们用的这个 Kabsch算法,是个非常经典聪明的法子:


第一步:先找重心:


算出所有指定格点位置的平均中心(b里面那部分)。


也算出药丸子模型原来形状的平均中心。


把药丸子模型整体平移过去,让两个中心重合。这就先对上了“大位置”。


第二步:再找最佳旋转:


现在中心对齐了,但模型可能还是“歪的”。


算法会巧妙地计算出一个最佳的旋转角度(K_rot),让药丸子模型上所有的原子,在旋转后,与他们各自的目标格点距离的平方和最小。


这个“距离平方和”,就是 RMSD(均方根偏差)。RMSD越小,说明你“拧”得越准,摆的姿势和量子计算机指出的理想点位越吻合。


 


经过上面“一平移、二旋转”的调整,最终得到了:


药丸子每一个原子在三维空间中的最终坐标。这一整套坐标,就是一个完整的、具体的、可以拿来分析的 “对接构象”(Docking Pose)。


 


那么找好位置后,接下来就会进行摆放位置适配度进行打分,就像对模特所摆的姿势,是否符合最高要求的标准进行打分一样


 



他们发明了两种算法来算这个 w:


1.GPM(网格点匹配):看的是物理上的“挤不挤”


方法是:在蛋白口袋周围画格子,用经典工具(AutoGrid)提前算好每个格点对各种原子类型(碳、氧、氢等)的“范德华相互作用能”,最后直接查表匹配。


优点:非常物理直观,直接与基本的分子间作用力挂钩


妥协(忽略了静电和溶剂效应):在离散的格点体系中,这些更精细的效应反而容易因“格子太粗”而引入噪声和误差,导致结果更差。所以干脆不要,保核心。这是一种务实的“抓大放小”


 


2.FAM(特征原子匹配):看的是化学上的“合不合得来”


方法是:把格子变成特征原子(FA),然后计算药丸与这个格子的“投缘度”


优点:非常化学智能,抓住了药物结合中最关键的“氢键相互作用”这一环,用极简的规则描述


而且,因为把成千上万个格点“浓缩”成了少数几个特征原子,所以最终需要确定的变量(x_{ij})大大减少,需要的量子比特数也大大减少(见后面的结果分析)


妥协:完全忽略了范德华力等精细物理作用,只抓主要矛盾


 


为什么需要两种方法?
为了对比验证:看是“硬物理”方法好,还是“软化学”方法妙。


适应不同场景:GPM更通用精确,FAM更快速轻便。


探索边界:看看在量子计算资源有限的情况下,哪种编码策略更能取得好效果。


(后面会看到,在采样能力上,GPM这个‘硬实力派’确实更接近经典顶尖软件,而FAM这个‘软眼光派’则节省了大量计算资源。两者各有千秋。)


 


但是,他两因为因为做了大量简化,主要任务是在汪洋大海里快速捞出可能不错的姿势,而不是精确判断哪朵浪花最好看


所以当他们同时又担任上一个打分函数,用来给不同的药丸子姿势(构象)排名次、比高低的时候,就不太准。


这时候就引入经典计算机的构象打分



要打分就得先采样,他们的做法是


第一步:用量子计算机(CIM)构象采样   ,也就是利用QUBO模型(GPM/FAM),快速找出30个(举例)能量最低的可能姿势。


(这件事(NP-hard问题)是组合爆炸,传统计算机算得慢,正好是量子计算机的强项。它只需要一个粗略的打分函数(ΔG'_Bind)来指导搜索方向就行。)


 


第二步:用经典计算机(CPU/GPU)构象打分  ,也就是对量子计算机采样的30个姿势,用更精确、更复杂的经典打分函数(如AutoDock Vina, Glide等的全套算法)重新计算一遍结合能,然后精确排序。    


 (这件事计算量相对小,但需要很高的精度。经典计算机上有经过几十年验证的、考虑周全(范德华、静电、溶剂化、熵变…)的成熟打分函数,干这个最拿手。)



三、进行考试


他们用一个叫 CASF-2016 的“标准考题库”(里面是257个已知结构的药-蛋白配对)来考试。


考试题目:已知药丸子最终长什么样(晶体结构),看你的方法能不能“猜中”这个姿势。
评分标准:mRMSD(最小均方根偏差)。这个数越小,说明你猜的姿势和真实答案越像。


评分标准


< 2 Å(埃):就算“高质量”猜中(1埃是一亿分之一厘米,2埃大概比头发丝细几万倍)


> 2 Å:猜得有点走样


考试卷子































“考生”(方法) 猜对多少题? (高质量案例占比) 平均差多少? (平均mRMSD) 最差一回差多少? (最大mRMSD)
GPM(硬实力派) 225/257题 (87.5%) 1.1 Å ~5 Å
FAM(软眼光派) 173/257题 (67.3%) 1.8 Å ~9.4 Å
Glide SP(传统优等生) 240/257题 (93.4%) 1.0 Å 6.8 Å

 


这成绩说明啥?
1.GPM真不赖:作为量子计算的新方法,它猜对题目的能力(87.5%)已经非常接近目前最好的经典软件(93.4%)了。这说明它这个“硬碰硬”的思路很有效


2.FAM有潜力但稍弱:它只关注“氢键投缘”,所以猜中的题目少一些,而且偶尔会“跑偏”得比较厉害(最大误差9.4 Å)。但它已经能解决一大半问题了


结论:GPM这个量子快手找蛋白的本事,已经快赶上最好的经典快手了! 这是巨大的成功,这个发现非常宝贵,它告诉我们:量子计算这条新路本身没走错,瓶颈在于基础的“画格子”精度。 这就指明了未来改进的方向。


为啥考得好?为啥会丢分?(3.2 影响因素)
他们就像老师一样,开始分析:是什么决定了“考生”的分数(mRMSD)?


他们找了三个可能的原因:


药丸子大不大?(配体质量) → 结论:几乎无关。(R² ≈ 0)


用的量子算盘大不大?(量子比特数) → 结论:几乎无关。(R² ≈ 0)


棋盘格子画得粗不粗?(离散化误差) → 结论:关系极大!(R² > 0.9)


结论:丢分的主要原因,不是量子算法不聪明,而是‘画格子’这个基础步骤带来的信息损失。只要格子画得足够密(比如未来计算力更强了),结果就能无限接近完美。


 


干这活儿费不费劲?(3.3 计算成本)


1. 费不费“量子算盘”(量子比特需求)?
GPM:最多需要 13,908 个量子比特。


FAM:最多需要 3,640 个量子比特。


对比:现在实验室里最好的光量子计算机(CIM)已经有约10万个量子比特了!


结论:我们的方法只用了一小部分算力,“大马拉小车”,绰绰有余! 未来还有巨大空间算更复杂的药


 


2.干得有多快?(运行时间)
基于量子计算机(CIM)的特性,采样时间估计是毫秒级。


这比传统经典计算机快 至少1000倍(3个数量级)。


好比:经典计算机要算一个小时的话,它一秒钟就干完了。


 


现在能干什么活?(问题规模分析)
因为量子比特需求随原子数平方级增长,所以目前能算的药丸子大小有限制:


GPM:最多算约 156 个原子的分子(大概相当于15个氨基酸的小肽)。


FAM:最多算约 305 个原子的分子(大概相当于30个氨基酸的肽)。


还干不了:蛋白质和蛋白质之间的大对接(那需要几十万个原子,算不了)。


 


四、小结


整篇论文的结果部分,讲了这么个故事:


我们发明了两种让量子计算机快速‘猜药姿势’的新法子(GPM和FAM)


考得好:特别是GPM法,猜题能力直追世界顶尖软件


人实在:我们发现,没猜准 mainly 是因为“画格子”这步太粗糙,不是量子算法不行。这毛病好改


干得快、省力气:用现有的量子算盘,毫秒之间就能干完经典计算机要干很久的活儿,而且算盘还远远没使上全力


有局限但未来可期:目前只能算小药丸子,算不了大家伙。但随着量子算盘越来越大,能算的药也会越来越大

10
0
0
0
相关文章
  • CIM机器怎么理解人类语言的组合优化问题——内含公式拆解 ...
    旅行商问题(TSP)到底是啥?类似于:你是一位快递员,要开油车去好几个城市送快递,每个城市必 ...
    了解详情 
  • Ising(伊辛)模型&QUBO模型
    这两本质上是讲的一个东西,就像华氏度与摄氏度,不同的表示手段但都是在衡量温度Ising公式:用 ...
    了解详情 
  • 伊辛模型(Ising Model)的数学公式意义
    1.公式:假设我们有一群萤火虫矩阵,萤火虫发光为+1,不发光为-1我们像萤火虫群发出特定的图案, ...
    了解详情 
  • CIM(Ising/QUBO模型)的能力和边界在哪里
    所有问题都能拆成两两矩阵吗?比如细胞膜电位?简短的回答是:不,不是“所有”问题, ...
    了解详情 
联系我们
二维码
在本版发帖返回顶部
快速回复 返回顶部 返回列表
玻色有奖小调研
填写问卷,将免费赠送您5个100bit真机配额
(单选) 您是从哪个渠道得知我们的?*
您是从哪个社交媒体得知我们的?*
您是通过哪个学校的校园宣讲得知我们的呢?
取消

提交成功

真机配额已发放到您的账户,可前往【云平台】查看

量子AI开发者认证

考核目标

开发者能够成功搭建Kaiwu-PyTorch-Plugin项目基础环境,并成功运行示例代码,根据示例提示,输出指定的值并填写至相应的输入框中。

通过奖励

5个一年效期的1000量子比特真机配额

专属「量子AI开发者」社区认证标识

开发者权益

每月固定权益:5个550量子比特真机配额
前往考核

第一步

按照README提示成功安装Kaiwu-PyTorch-Plugin库环境依赖
前往GitHub

第二步

运行 community-assessment 分支下的 run_rbm.py 代码示例

第三步

理解示例代码,手动打印并填写如下数值:

正相采样的状态

负相采样的状态

正相的能量值

负相的能量值

*

提交答案

开发者权益

每月固定权益:5个550量子比特的真机配额

恭喜您完成考核

您将获得量子AI开发者认证标识及考核奖励

1000 bit*5

配额

Quantum AI Developer Certification

Assessment Objectives

Developers should successfully set up the basic environment for the Kaiwu-PyTorch-Plugin project, run the QBM-VAE sample code, and calculate the correct FID value based on the random seed value provided by the system.

Pass Rewards

10 quotas for 550-qubit real quantum machines with a one-year validity period

Exclusive "Quantum AI Developer" Community Certification Badge

Developer Benefits

Fixed Monthly Benefits: 5 quotas for 550-qubit real quantum machines
Proceed to Assessment

Step 1

Install the environment dependencies for the Kaiwu-PyTorch-Plugin library according to the README instructions
Go to GitHub

Step 2

Replace the Seed Value

Your seed value is

Step 3

Enter the FID Value You Calculated

*

Submit Answer

Developer Benefits

Fixed Monthly Benefits: 5 quotas of 550-qubit real machines

Congratulations on Completing the Assessment

You will receive the Quantum AI Developer Certification Badge and Assessment Rewards

550bit*10

Quotas