它回答什么,不回答什么
地形扫描和交付构造是两件事;先分清,才不会拿地图当结构。
可达性与路线
目标构象在给定自由度下是否可达;哪条路径最不紧(bottleneck);卡在哪一段;值不值得进入构造。
不生成结构
不闭合、不收尾、不输出 PDB;不是动力学路径,不给速率;不覆盖未指定的自由度。
示例:AdK 的构型地形
拖动滑块或点热力图格子:看两个域怎么转、余量 φ 与新增接触数怎么变。441 格全部由引擎算出。
这是两自由度扫描(地形):只算余量 φ 与路径,不闭合、不收尾、不输出 PDB。 给定目标位姿的交付构造见 构造页——两者不是同一套方法。
CA 主链:灰 = CORE(不动)|青 = LID|黄 = NMP;淡点 = 闭合态(目标)
21×21 格点:颜色 = 余量 φ(越亮越紧);白线 = 最优路径;白框 = 当前格子
- φ
- —
- 新增接触(唯一对)
- —
正在加载数据…
数据 data/adk/view.json(引擎导出)|复跑 data/adk/repro.py(纯 numpy 独立实现,逐点偏差 0.00e+00)
怎么算
四步,全部是几何量;不跑时间、不用能量。
选自由度
指定两个铰链(如 LID / NMP)与范围、步长;只扫你关心的两个角。
网格扫描
21×21 = 441 格;每格做几何计算,得到余量 φ 与新增接触数 n_new。
最短路
8 邻域 Dijkstra,边权 = 变紧量;得到从开放到闭合的最优路径。
读瓶颈
路径上 φ 的最小处就是卡点;结合 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 与两个铰链的定义即可。