可行域与路径

先看地图,再构造

两自由度扫描:能不能到、哪条路最紧、卡在哪

441 格约 7 秒 | 余量 φ + 最短路 | 不输出 PDB

它回答什么,不回答什么

地形扫描和交付构造是两件事;先分清,才不会拿地图当结构。

它回答

可达性与路线

目标构象在给定自由度下是否可达;哪条路径最不紧(bottleneck);卡在哪一段;值不值得进入构造。

它不回答

不生成结构

不闭合、不收尾、不输出 PDB;不是动力学路径,不给速率;不覆盖未指定的自由度。

示例:AdK 的构型地形

拖动滑块或点热力图格子:看两个域怎么转、余量 φ 与新增接触数怎么变。441 格全部由引擎算出。

这是两自由度扫描(地形):只算余量 φ 与路径,不闭合、不收尾、不输出 PDB。 给定目标位姿的交付构造见 构造页——两者不是同一套方法。

CA 主链:灰 = CORE(不动)|青 = LID|黄 = NMP;淡点 = 闭合态(目标)

21×21 格点:颜色 = 余量 φ(越亮越紧);白线 = 最优路径;白框 = 当前格子

0.00
0.00
φ
—
新增接触(唯一对)
—

正在加载数据…

数据 data/adk/view.json(引擎导出)|复跑 data/adk/repro.py(纯 numpy 独立实现,逐点偏差 0.00e+00)

怎么算

四步,全部是几何量;不跑时间、不用能量。

01

选自由度

指定两个铰链(如 LID / NMP)与范围、步长;只扫你关心的两个角。

02

网格扫描

21×21 = 441 格;每格做几何计算,得到余量 φ 与新增接触数 n_new。

03

最短路

8 邻域 Dijkstra,边权 = 变紧量;得到从开放到闭合的最优路径。

04

读瓶颈

路径上 φ 的最小处就是卡点;结合 n_new 判断是“紧”还是“撞”。

怎么读图

颜色

越亮越紧

颜色 = 余量 φ;越亮表示越紧(接近 0 或负值)。

白线

最优路径

从 (0,0) 到 (20,20) 的最短路;白框 = 当前格。

读数只有两个:φ(余量)与 n_new(新增接触唯一对)。前者看“还有多少余地”,后者看“有没有撞上”。

和交付构造的关系

地图负责“要不要造、从哪条路造”;构造负责“把结构做出来”。

第一步 · 地形

7 秒看可行性

扫描 → 路径 → bottleneck;不可达就停,不进入构造。

第二步 · 构造

30 秒–3 分钟出结构

6-DOF + 闭合 + OpenMM 收尾;输出 PDB 与指标。

规格与边界

输入模板 PDB + 两个自由度的定义(铰链、范围、步长)
输出view.json(φ / n_new / 最优路径)、热图、bottleneck;不输出 PDB
耗时441 格约 7 秒(单核;随格点数线性增长)
复算repro.py 独立实现,逐点偏差 0.00e+00
边界只扫指定自由度;φ 是余量,不等于全链冲突;路径是几何最短路,不是动力学路径;不含能量

想把你的结构做成地形?提交(内测),附 PDB 与两个铰链的定义即可。