|
首先需要理解这个关键词TRIANGLE_STRIP,
http://blog.csdn.net/xiajun07061225/article/details/7455283
http://game.ceeger.com/Script/GL/GL.TRIANGLE_STRIP.html
通过4个点来定义三角形带,来创建4个点的平面。
4个点的顺序是BACD,这样就能定义出上面的3角型条带。
###################################################
在autodock,autodock vina等对接的时候口袋的定义是立方体
通过定义立方体的中心,以及边长来定义的。
我们希望在pymol中表示口袋的时候除了表示位置大小还可以自定义颜色,以及透明度
##################################################
gridbox.py
#######################################################
# Copyright (c) 2014 Chen Zhaoqiang DDDC SIMM
#qq 744891290 qqgroup 144539789
# A PyMOL script for drawing a CGO box by the coordinate of the center,and the size of box
#center_x,center_y,center_z,size_x,size_y,size_z,
import pymol
from pymol import cmd
from pymol.wizard import Wizard
from chempy import cpv
from pymol.cgo import *
def gridbox(center_x,center_y,center_z,size_x,size_y,size_z,name="gridbox",r1=0,g1=0,b1=1,trasp=0.2):
"""
DESCRIPTION
Create a box from the center coordinate of the box and the size of box
USAGE
run gridbox.py
1the simplest
gridbox center_x,center_y,center_z,size_x,size_y,size_z
2rename the box object
gridbox center_x,center_y,center_z,size_x,size_y,size_z,name,
3set the color of the box object
gridbox center_x,center_y,center_z,size_x,size_y,size_z,name,r1,g1,b1
4set the trasp of the box
gridbox center_x,center_y,center_z,size_x,size_y,size_z,name,r1,g1,b1,trasp
ps:the value of r1,g1,b1 trasp range is 0-1
trasp=1,no trasprent
"""
center_x=float(center_x)
center_y=float(center_y)
center_z=float(center_z)
size_x=float(size_x)
size_y=float(size_y)
size_z=float(size_z)
r1=float(r1)
g1=float(g1)
b1=float(b1)
trasp=float(trasp)
p1=[center_x-size_x/2,center_y-size_y/2,center_z+size_z/2]
p2=[center_x-size_x/2,center_y+size_y/2,center_z+size_z/2]
p3=[center_x+size_x/2,center_y+size_y/2,center_z+size_z/2]
p4=[center_x+size_x/2,center_y-size_y/2,center_z+size_z/2]
p5=[center_x-size_x/2,center_y-size_y/2,center_z-size_z/2]
p6=[center_x-size_x/2,center_y+size_y/2,center_z-size_z/2]
p7=[center_x+size_x/2,center_y+size_y/2,center_z-size_z/2]
p8=[center_x+size_x/2,center_y-size_y/2,center_z-size_z/2]
obj=[
ALPHA,trasp,
COLOR,r1,g1,b1,
BEGIN, TRIANGLE_STRIP,
VERTEX,p1[0],p1[1],p1[2],
VERTEX,p2[0],p2[1],p2[2],
VERTEX,p4[0],p4[1],p4[2],
VERTEX,p3[0],p3[1],p3[2],
END,
BEGIN, TRIANGLE_STRIP,
# COLOR,1,0,0,
VERTEX,p1[0], p1[1], p1[2],
VERTEX,p5[0], p5[1], p5[2],
VERTEX,p4[0], p4[1], p4[2],
VERTEX,p8[0], p8[1], p8[2],
END,
BEGIN, TRIANGLE_STRIP,
VERTEX,p4[0],p4[1],p4[2],
VERTEX,p8[0],p8[1],p8[2],
VERTEX,p3[0],p3[1],p3[2],
VERTEX,p7[0],p7[1],p7[2],
END,
BEGIN, TRIANGLE_STRIP,
VERTEX,p7[0],p7[1],p7[2],
VERTEX,p3[0],p3[1],p3[2],
VERTEX,p6[0],p6[1],p6[2],
VERTEX,p2[0],p2[1],p2[2],
END,
BEGIN, TRIANGLE_STRIP,
# COLOR,0,1,0,
VERTEX,p2[0],p2[1],p2[2],
VERTEX,p6[0],p6[1],p6[2],
VERTEX,p1[0],p1[1],p1[2],
VERTEX,p5[0],p5[1],p5[2],
END,
BEGIN, TRIANGLE_STRIP,
VERTEX,p1[0],p1[1],p1[2],
VERTEX,p5[0],p5[1],p5[2],
VERTEX,p4[0],p4[1],p4[2],
VERTEX,p8[0],p8[1],p8[2],
END,
BEGIN, TRIANGLE_STRIP,
VERTEX,p5[0],p5[1],p5[2],
VERTEX,p8[0],p8[1],p8[2],
VERTEX,p6[0],p6[1],p6[2],
VERTEX,p7[0],p7[1],p7[2],
END,
]
cmd.load_cgo(obj, name)
cmd.extend('gridbox', gridbox)
##################################################################################
实践:
相同的蛋白,设置不同的口袋,对接的结果差别较大。
观察口袋的差异。
###################口袋1###################
receptor = NLxxx.pdbqt
center_x = 8.6
center_y = -5.025
center_z = -12.576
size_x = 28.5
size_y = 24
size_z = 24
exhaustiveness = 16
###############################################
gridbox 8.6,-5.025,-12.576,28.5,24,24,"17nl",1,0,0.3,0.8
###########################口袋2#####################################
receptor = L.pdbqt
center_x = 8.6
center_y = -11.978
center_z = -12.576
size_x = 28.5
size_y = 44.25
size_z = 24
exhaustiveness = 16
###############################################################
gridbox 8.6,-11.978,-12.576,28.5,44.25,24,"17l",0,0,1.3,0.4
结果展示:
我们可以看到红色的盒子包含了重要的氨基酸的位置
蓝色的盒子包含了辅酶的位置
蓝色包含红色
从对接的结果来看,在我们这个体系中蓝色的盒子更符合实验的结果
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-26 11:53
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社