Pymol(1.8.6)作图技巧之创建质心
【摘要】
一、首先,访问pymolwikiCenter of Mass,下载center_of_mass.py脚本;
或者把下面文件保存为center_of_mass.py文件。
See more here: http://www.pymolwiki.org/index.php/center_of_mass DESCRIPTION Places a pseudoa...
一、首先,访问pymolwikiCenter of Mass,下载center_of_mass.py脚本;
或者把下面文件保存为center_of_mass.py文件。
-
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)
-
-
# vi:expandtab:sw=3
二、将center_of_mass.py脚本放在pymol安装文件夹下的Lib文件夹。
三、创建质心操作
导入center of mass
import center_of_mass
创建质心球
修改质心球大小
set sphere_scale,0.4
创建质心的其他相关操作
文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。
原文链接:drugai.blog.csdn.net/article/details/77345827
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)