生物大分子三维结构显示技术讲义PyMOL使用入门耿存亮gengcunliang@gmail.com2012年10月09日PyMOL使用入门11.PyMOL简介PyMOL是一款生物大分子三维结构显示软件,其中“Py”是指此软件使用Python语言编写,“MOL”是指Molecule。PyMOL官网是,发展历史和软件更新动态可在此查询。PyMOL的学习网站是,若想用好PyMOL,此网站是必上网站,其实这一个也就够了。2.PyMOL入门2.1模式显示及颜色显示PyMOL既可以鼠标操作也可以命令操作,但是命令操作可以完成许多鼠标难以完成的任务。下面就以实例来认识一下PyMOL。打开PyMOL软件后,首先要特别注意的是当前工作路径。在命令框输入命令并回车pwd即可显示当前工作路径,默认路径是PyMOL的安装路径。一般不把文件保存在安装路径下,所以需修改当前工作路径,而且路径不能有汉字,比如改为D盘,输入命令并回车cdd:再用pwd命令查看一下当前工作路径。如下图所示:pwd:printworkingdirectioncd:changedirection命令很方便很简单很神奇吧O(∩_∩)O~其次要注意的是保证鼠标是三键式的,滚轮可用作中键。如果像苹果机一样PyMOL使用入门2只有一个按键或没有中键的话,还是赶紧换个鼠标吧。好了,现在下载一个PDB文件,如何下载呢?当然可以去PDB网站下载,但是打开网页多麻烦啊,如果能用PyMOL直接下载该多好啊,那就试一试fetch命令吧!下载纤维素外切酶CBHI和纤维素糖链的复合物晶体结构,PDB号是7cel,输入命令fetch7cel稍等片刻,就会下载完毕并显示如下:刚才说到三键式鼠标,那么三个键都有什么用呢?按住左键滑动会旋转结构(rotate),按住中键滑动会移动结构(move),按住右键滑动会缩放结构(movezoom)。这个不用记,多按几下就熟了,实在忘了在右下角有提示的,如下图下载打开7cel的pdb文件后,在all小框下面会出现7cel小框,后面还跟着几个按键ASHLC,这几个按键后面会一点点介绍。先左键点击一下7cel小框,会发现结构消失了,被点击的小框也变暗了,这就是隐藏功能,再点击一下就会恢复,如下图所示PyMOL使用入门3看到恢复后的结构你一定感到一团糟吧,这都神马呀!上过王禄山老师的课后,应该清楚PDB文件就是具有一定格式的文本文档,里面记录着每个原子的三维坐标值,不信的话可用记事本打开PDB文件看一看。PyMOL所谓的结构显示就是读取每个原子的三维坐标,然后用一个点(球)来显示出来,原子之间的化学键用线表示。当然还可以用其他模式的显示,比如大家很熟悉的螺旋飘带模型,在PyMOL中叫cartoon模式,输入命令并回车ascartoon看着熟悉的α螺旋和β折叠,是不是感觉清爽多了?刚才的操作也可用鼠标完成,如下图所示点击7cel小框中的S按键,然后再点击cartoon或者lines、sticks、ribbon等等。假如点击了lines,你会发现一团糟的结构又回来了,而cartoon模式没有7cel小框PyMOL使用入门4消失。是的,这就是show和as的不同,show是指显示一种或多种模式,而as是指只显示为一种模式。as该点击哪里呢?仔细看一下上图就明了了。同时你也可能明白了S按键是Show的意思。命令显示多种模式showlinesshowsticksshowribbon怎么隐藏不想显示的模式呢?H按键就能办到,H是Hide的意思。点击H中的相应模式,就能使其隐藏。当然了命令也能办到,比如隐藏lines模式hidelines好了,现在输入ascartoon只显示cartoon模式,蛋白的三级结构显示地很清楚,二级结构中的α螺旋、β折叠和无规则卷曲也很清楚地显示了。咦?怎么蛋白是绿色的?难道蛋白真的是绿色的吗?蛋白到底是什么颜色我不清楚,这里显示的颜色是软件设置的默认颜色,既然是软件设置,那么当然可以改成其他颜色。这就要用到C按键,C是Color的意思。点击C按键你会看到下图所示的工具框,其中byelement指按元素类型着色,bychain按肽链着色,byss按二级结构着色(secondarystructure),spectrum是指渐变色,还有red、green等等各种颜色。点击一下byss,你会发现α螺旋、β折叠和无规则卷曲显示成了不同的颜色,这样显示整个结构是不是更清楚了。PyMOL使用入门5那么怎么用命令实现着色呢?比如整个蛋白显示绿色,命令是colorgreen对α螺旋、β折叠和无规则卷曲着不同的颜色怎么实现呢?比如α螺旋(helix)显示红色,β折叠(sheet)显示绿色,无规则卷曲(loop)显示蓝色,命令是colorred,sshcolorgreen,ssscolorblue,ssl+’’想必你猜出来ssh,sss的意思了,其实就是选择二级结构α-helix或β-sheet,那么ssl+””(这里单引号和双引号都行)为什么还要写+””呢?因为二级结构的分类不仅仅只有这三种,PyMOL为了简化,就把不是α-helix和β-sheet的结构全部归为loop和其他无规则结构了,所以这里得用l+””表示。文献上的结构图一般都是白色背景,怎么设置背景颜色呢?命令是bg_colorwhite也可以改成其他颜色,但是发文章默认都是白色背景,在电脑上看一般是黑色背景,这样设置是有道理的,喜欢探究的同学可以查一下印刷和屏幕的颜色显示原理。学到此,先复习一下,温故而知新模式显示或隐藏ascartoon(lines、sticks、ribbon、surface、spheres、mesh等等)showcartoonhidecartoon颜色设置PyMOL使用入门6colorredcolorblue,sss背景颜色设置bg_colorwhite2.2选择命令如果只想选一个原子或一个残基或一段结构,然后突出显示,这该怎么办呢?这个问题很关键,这涉及到PyMOL中很重要的选择命令。比如选择7cel中的一个催化残基212位的谷氨酸GLU,命令如下selectgeng,resi212Select是选择命令,后面紧跟一个名字geng,就是给所选择的残基起个名字,这个随便起,然后resi212是指残基号为212的残基,resi是residueid的缩写。输入命令并回车后,结构上会显示出一些粉红色的点,7cel框下面会出现一个geng框。但是你还是没看到212GLU的样子,怎么办呢?点击geng框后S按键中的sticks,212GLU残基就会显示出sticks模式,再点击C按键中的oranges改为桔色,如下图。这一切也可用命令实现showsticks,gengcolororange,geng看出来给所选残基起名字的好处了吧,这样就可以在命令中指定对谁操作,如果什么都不指定那就是对所有原子进行操作,也就是上一节学的对整个蛋白改模式改颜色。刚才选择了212GLU,如何突出显示并标记出来呢?点击geng小框L按键中的residues,这样就对212GLU加上了标签,L就是Label的意思。PyMOL使用入门7然后输入命令zoomgeng这样就突出显示212GLU残基了,如图点击上图右下角的S按键,S指sequence,点击后会显示出蛋白序列。刚才选择残基是用命令实现的,也可以用鼠标左键在蛋白结构或蛋白序列上点击,点击中的残基就会被选中并起名为sele,然后使用A按键中的renameselection修改名称即可,你会发现被点中的残基都会显示出粉红色的小点。可是到目前为止,所选择的最小单位都是残基,如果只想选择一个原子或者一条肽链,怎么做?鼠标操作的话,首先要修改选择的单位,仔细看一下右下角是不是有SelectingResidues,点击Resdiues,看看都有什么。如果想选择单个原子,那么点击到显示Atoms的时候停下来,如图然后再在结构上点击某个原子,就选中它了。此时不能在序列上点击了,因为序列只有残基名没有原子名。举一反三,你也可以选择一个分子、一条链、一个Cα原子等等。用命令怎么实现自由选择呢?除了能够根据残基号resi进行选择,还应该有其他的吧?是的,这东西叫属性选择符,列表如下属性选择符缩略形式标识符和举例symbole.Chemical-symbol-list单字母或双字母的化学元素符号PyMOLselectpolar,symbolo+nnamen.Atom-name-list蛋白和核酸中至多4字母的原子符号PyMOLselectcarbons,nameca+cb+cgresnr.Residue-name-listPyMOL使用入门83字母的氨基酸符号PyMOLselectaas,resnasp+glu+asn+gln或至多2字母的核苷酸符号PyMOLselectbases,resna+gresii.Residue-identifier-list至多4位数的残基号PyMOLselectboy,resi1+10+100+1000Residue-identifier-rangePyMOLselectboy,resi1-10altaltAlternate-conformation-identifier-list单字母PyMOLselectaltconf,alta+’‘chainc.Chain-identifier-list单字母或有时是数字PyMOLselect007,chainasegis.Segment-identifier-list至多4字母PyMOLselectligand,segiligflagf.Flag-number从0到31的单整数PyMOLselectf1,flag0numeric_typent.Type-number单整数PyMOLselectf1,nt.5text_typett.Type-string至多4字母PyMOLselectsubset,text_typeHA+HCididExternal-index-number单整数PyMOLselectidno,id23indexidx.Internal-index-number单整数PyMOLselectintid,index11ssssSecondary-structure-type单字母PyMOLselectallstrs,ssh+s+l+’‘学到此,先复习一下,温故而知新嘛选择操作selectgeng,resi212selectgeng,resnglu选择所有glu残基并起名为gengselectgeng,namec+n+o选择所有c、n、o原子并起名为gengselectgeng,chaina选择a链并起名为gengPyMOL使用入门9……突出显示zoomresi212突出显示212号残基2.3布尔算符和标签命令中学时学过布尔算符and/or/not,在PyMOL的选择命令中布尔算符非常有用。比如选择7cel中212GLU残基的Cα原子,怎么选?selectgeng,resi212和selectgeng,nameca两个命令显然不行,因为它们分别对212残基的所有原子以及蛋白的所有Cα原子进行了选择,而不只是212GLU的Cα原子。可以这样做selectgeng,resi212andnameca那么如何选择212和214号残基的所有原子呢?selectgeng,resi212orresi214选择除200-400号残基外的所有残基selectgeng,notresi200-400colorwhite,geng显示一下被选中的残基选择212和214号残基的非Cα原子selectgeng,resi212+214andnotnamecahideallshowsticks,gengl