0

我想要一个 PyMOL 脚本来自动绘制给定结构的键,例如在所有钯原子之间,或在所有钯和硫原子之间。

我可以通过bond命令手动执行此操作,但需要知道原子的标识符:

bond id 3, id 4
bond id 2, id 6
...
  • 如何一次创建所有所需的键?
  • 如果仅创建键,如果原子之间的距离在特定的截止半径内,这也是有帮助的。
4

2 回答 2

1

在爬取PyMol 邮件列表后,我设法连接了所有原子。例如

bond (elem pd), (elem pd)

绘制所有 Pd 原子之间的键。


现在到截止半径:

bond (elem pd), (elem s) within 2.5 of (elem pd)

在任何 Pd 原子的 2.5 范围内绘制所有 Pd 原子和所有 S 原子之间的键。这导致具有非常长的键的怪异结构。

我认为有必要对这两种选择之一进行迭代,以仅在所需的截止半径内产生债券。

相反,我使用了 pymol 的find_pairs函数(这只是 API,因此必须在python 脚本中使用)。

from pymol import cmd, stored

pd_s_bonds = cmd.find_pairs('n. pd', 'n. s', cutoff=2.5)
for pair in pd_s_bonds:
    cmd.bond('index %s' % pair[0][6], 'index %s' % pair[1][7])
于 2015-05-28T08:57:04.353 回答
0

我遇到了同样的问题。

如果将索引附加到名称,则可以使用以下语法:

(elem P) within 2.5 of (name Ru1)
(elem P) within 2.5 of (name Ru2)
于 2022-02-21T22:47:05.827 回答