新浪博客

PyMOL用法(教程四)

2010-09-02 15:06阅读:
关于label
在显示一个蛋白结构的某个细节的时候,常常会需要给某些重要的氨基酸打上标签,这就需要用到label命令。
label的命令格式如下:
Pymol> label [selection, [expression]]
selection当然就是你要加标签的对象,expression就是标签的内容,可选的有:name, resn, resi, chain等等。你也可以组合使用它们。expression也可以是你自定义的一段内容,这时候只要把内容用引号包含起来就行:
Pymol> label selection, 'user-defined expression'
在下面这个例子中,我想把glucosyltransferase中UDP-Glucose的binding pocket标注出来:
首先说明一下,该pdb文件中A链是蛋白质,B链是UDP-Glucose。
Pymol> load glucosyltransferase.pdb, tmp
Pymol> extract upg, chain b
Pymol> extract pro, chain a
Pymol> delete tmp
Pymol> select near, pro within 4.5 of upg
Pymol> hide all
Pymol> show sticks, upg
Pymol> show lines, near
Pymol> label near, ('%s/%s') % (resn, resi)#('%s/%s'): 设定显示格式。
PyMOL用法(教程四)
上面的图看起来
有点乱,因为默认Pymol在每个原子上都打上了标签。要想看起来顺眼点,需要一点加工。
在这之前,让我们先看一下关于label的其他设置:
投影模式,可选值0(无投影),1(object有投影到label上,但是label本身无投影),2(object有投影到label上,label也有投影),3(object不投影到label上,label本身有投影):
Pymol> set label_shadow_mode, 3
文字颜色
Pymol> set label_color, color-name, selection
标签文字的轮廓的颜色,这样就让在例如白色背景上加白色标签成为了可能:
Pymol> set label_outline_color, [color-name, [selection]]
字体,pymol内置了12种字体,编号从5-16。15号和16号字体是unicode的:
Pymol> set label_font_id, 5
字体大小,如果为正值,则单位就是正常的px。你也可以用负值,则单位是Å:
Pymol> set label_size, -0.5
Pymol> set label_size, 4
设置label位置,用下列命令可以设置label离默认位置的三维偏移值,在需要给spheres加标签的时候有用:
Pymol> set label_position, (x,y,z)
最后说说怎样用单个字母标注氨基酸
首先在$HOME/.pymolrc中加入:
# start $HOME/.pymolrc modification
single ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \
'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y', \
'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A', \
'GLY':'G', 'PRO':'P', 'CYS':'C'}
# end modification
用法,用single[resn]代替resn:
Pymol> label n. CG and i. 230+246, single[resn]
下面是改进过的图片:
PyMOL用法(教程四)
是不是看起来好多了,下面是具体的代码,其中关于电子密度图的设置请见下一节:
Pymol> select near, resi 139+229+230+233+246+499+519+520
Pymol> as cartoon, pro
Pymol> 鼠标操作:显示near的sidechain
Pymol> set_color grey1, [224,224,224]
Pymol> set cartoon_color, grey1
Pymol> set cartoon_transparency, 0.3
Pymol> set cartoon_fancy_helices, 1
Pymol> label n. CB and near, ('%s%s') % (single[resn], resi)
Pymol> 进入Editing模式,按住ctrl+鼠标右键移动label到合适位置
Pymol> set cartoon_transparency, 0.3
Pymol> set label_font_id, 13
Pymol> set label_size, 26
Pymol> bg_color white
Pymol> 进入measurement模式测量我们所需要的距离
Pymol> set dash_length, 0.015
Pymol> set dash_radius, 0.015
Pymol> set dash_gap, 0.6
Pymol> set dash_color, grey
在pymol中导入电子密度图
假设我们已经有了一个蛋白质的pdb文件(protein.pdb)和mtz(protein.mtz)文件,这样我们就可以用fft(Fast Fourier Transform)命令生成electron density map,以便在pymol中导入。
fft的命令格式如下:
fft HKLIN protein.mtz XYZIN protein.pdb MAPOUT 2fofc.ccp4
回车后进入fft环境,还需要指定一些参数:
LABIN F1=FWT PHI=PHWT
GRID SAMPLE 5
END
上诉第2句“GRID...”用来指定生成电子密度图的精细程度。默认值是3,表示生成的“网格”大小是最大分辨率的三分之一,以此类推。
回车之后电子密度图就搞定了,名字叫2fofc.ccp4
然后就可以在pymol中导入了。首先导入pdb文件glucosyltransferase.pdb,然后电子密度图:
首先说明一下,该pdb文件中A链是蛋白质,B链是UDP-Glucose。
Pymol> load glucosyltransferase.pdb, pro
Pymol> load 2fofc.ccp4
你会发现,还看不见density。打开Wizard -- Density,怎么样,看见了吧。按住ctrl键和鼠标右键可以移动density,或者点击Density Map Wizard中的'Next Res.'和'Previous Res.'。
不过显示全部的density map并不是我们的目的,因为这样显的很乱,也看不到什么细节。下面的例子是仅仅显示UDP-Glucose的电子密度图。
Pymol> remove resn HOH
Pymol> select upg, chain b
Pymol> as cartoon, pro
Pymol> as stick, upg
Pymol> orient, upg
Pymol> isomesh upg-d, 2fofc, 2.0, upg, carve=1.5
Pymol> set stick_radius, 0.2
Pymol> set mesh_radius, 0.01#让电子密度图的网格细一点,好看
效果图如下:
PyMOL用法(教程四)
上诉命令中,其余设置请见上一节label,和显示电子密度相关的就是isomesh了,它的用法如下:
Pymol> isomesh name, map, level [,(selection) [,buffer [,state [,carve ]]]]
  • name: 给这个mesh isosurface随便起个名字。
  • map: 就是刚才load的那个2fofc。
  • level: 轮廓值,越大轮廓越细。
  • selection: 要表达的对象
  • buffer: 没用过
  • state: 没用过
  • carve: 以selection中的任何原子为中心,半径为该值,所包含的全部原子,画出他们的density

OK!搞定。

我的更多文章

下载客户端阅读体验更佳

APP专享