2015-05-20 42 views
0

我想要一個PyMOL腳本來自動繪製給定結構的鍵,例如所有鈀原子之間或所有鈀原子和硫原子之間。如何讓PyMOL在控制檯/腳本中的原子之間繪製鍵?

我可以通過bond命令手動做到這一點,但需要知道原子的標識符:

bond id 3, id 4 
bond id 2, id 6 
... 
  • 我怎樣才能一次創建了所有需要的債券呢?
  • 如果只創建一個鍵,如果原子之間的距離在特定的截止半徑範圍內,這也會有幫助。

回答

0

抓取PyMol mailinglist後,我設法連接所有的原子。例如

bond (elem pd), (elem pd) 

在所有Pd原子之間繪製bonds


現在到cuttoff半徑:

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

繪製所有的Pd原子和所有S的任何鈀原子的2.5的範圍內的原子之間的鍵。這導致了一個非常長的債券結構weired。

我認爲有必要通過 iterate這兩種選擇中的一種來產生僅在期望的截止半徑內的鍵。

取而代之,我利用pymol的find_pairs函數(這是僅API,因此必須在python script中使用)。

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])