pymol作图-ΠΠ堆叠

利用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)


  1. 如下图所示,假设49PRO、50TRP两个残基有ΠΠ相互作用,想作图观看
    在这里插入图片描述
  2. 任意选择每个环两个相对的原子,定义该环的几何中心
# 输入命令
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

在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值