利用pymol画出ΠΠ堆叠效果图以及距离:
在这之前要在pymol下面放一个名为center_of_mass.py的脚本,或者复制下面命令行保存成center_of_mass.py也可以。
关于放脚本的文件夹:我是用conda安装python38环境,center_of_mass.py放到 path\anaconda\envs\python38\Lib 下即可
'''
See more here: http://www.pymolwiki.org/index.php/center_of_mass
DESCRIPTION
Places a pseudoatom at the center of mass
Author: Sean Law
Michigan State University
slaw (at) msu . edu
SEE ALSO
pseudoatom, get_com
'''
#from __future__ import print_function
from pymol import cmd
def com(selection, state=None, mass=None, object=None, quiet=1, **kwargs):
quiet = int(quiet)
if (object == None):
try:
object = cmd.get_legal_name(selection)
object = cmd.get_unused_name(object + "_COM", 0)
except AttributeError:
object = 'COM'
cmd.delete(object)
if (state != None):
x, y, z = get_com(selection, mass=mass, quiet=quiet)
if not quiet:
print("%f %f %f" % (x, y, z))
cmd.pseudoatom(object, pos=[x, y, z], **kwargs)
cmd.show("spheres", object)
else:
for i in range(cmd.count_states()):
x, y, z = get_com(selection, mass=mass, state=i + 1, quiet=quiet)
if not quiet:
print("State %d:%f %f %f" % (i + 1, x, y, z))
cmd.pseudoatom(object, pos=[x, y, z], state=i + 1, **kwargs)
cmd.show("spheres", 'last ' + object)
cmd.extend("com", com)
def get_com(selection, state=1, mass=None, quiet=1):
"""
DESCRIPTION
Calculates the center of mass
Author: Sean Law
Michigan State University
slaw (at) msu . edu
"""
quiet = int(quiet)
totmass = 0.0
if mass != None and not quiet:
print("Calculating mass-weighted COM")
state = int(state)
model = cmd.get_model(selection, state)
x, y, z = 0, 0, 0
for a in model.atom:
if (mass != None):
m = a.get_mass()
x += a.coord[0] * m
y += a.coord[1] * m
z += a.coord[2] * m
totmass += m
else:
x += a.coord[0]
y += a.coord[1]
z += a.coord[2]
if (mass != None):
return x / totmass, y / totmass, z / totmass
else:
return x / len(model.atom), y / len(model.atom), z / len(model.atom)
cmd.extend("get_com", get_com)
- 如下图所示,假设49PRO、50TRP两个残基有ΠΠ相互作用,想作图观看
- 任意选择每个环两个相对的原子,定义该环的几何中心
# 输入命令
import center_of_mass
com sele, object=p1 # 点击49PRO,环上相对的两个原子
com sele, object=p2 # 点击50TRP,环1上相对的两个原子
com sele, object=p3 # 点击50TRP,环2上相对的两个原子
set sphere_scale ,0.3 # 调节球的大小
注意图中右下角红框内,Selecting Atoms 才是选择原子
3. 点击菜单栏 Wizard > Measurement, 在右下角出现Measurement,分别点击两个球就能得到两个环之心间的距离,距离的数值也会给出。
点击50TRP、49pro一栏中 L > residue (one letter),会出现残基缩写+残基序号;
注意右下角Mouse Mode 3-Butoon Editing,出现Editing时,按住Ctrl + 鼠标左键,可以移动距离数值(4.8,5.8)以及残基缩写+残基序号,让图片更美观;
做完后点击Measurement 下面的done,以及点击 Mouse Mode 3-Butoon Editing,改成 Mouse Mode 3-Butoon Viewing
4. 出图
输入下面命令得到下图:
bg_color white #背景颜色调成白色
ray
png inter.png, 16.93cm, 16.93cm, dpi=300
save hbond.png