蛋白质作图软件pymol教程 Pymol学习笔记.doc
B2WS-6JGH-PV7G-PBKP什么是结构生物学结构生物学(Structural biology)是生物领域里面相对较新的一个分支。它主要以生物化学和生物物理学方法来研究生物大分子,特别是蛋白质和核酸,的三维结构,以及与结构相对应的功能。因为几乎所有的细胞内的生命活动都是通过生物大分子来完成的,并且这些大分子完成这些功能的前提是它们必须具有特定的三维结构,因此,对于生物化学家们,这是一个非常具有吸引力的领域。 该领域通常被认为开始于20世纪50年代,Max Perutzhe和Sir John Cowdery Kendrew于1959年各自利用X射线晶体学方法解析了肌红蛋白(Myoglobin)的三维结构,一种在肌肉中运输氧气的蛋白。他们因此分享了1962年的诺贝尔化学奖,并由此揭开了结构生物学的序幕。截止到2008年10月28日,已有53917个生物大分子结构在www.pdb.org(蛋白质数据库)登记在案。 目前用于研究生物大分子结构的常用方法有X射线晶体学(X-ray crystallography)、核磁共振(NMR)、电子显微学(electron microscopy)、冷冻电子显微学(electron cryomicroscopy = cryo-EM)、超快激光光谱(ultra fast laser spectroscopy)、双偏振极化干涉(Dual Polarisation Interferometry)以及圆二色谱(circular dichroism)等。当中又以X射线晶体学和核磁共振最为常用。 图一:肌红蛋白(Myoglobin)的三维结构,世界上第一个由X射线晶体学解出的蛋白质结构,该蛋白在肌肉中传输氧气。图二:蓝细菌(Cyanobacterium)的光系统II(Photosystem II)的三维结构,该蛋白位于细胞膜内,用以吸收光能参与光合作用。Pymol学习笔记(一):简介&安装Pymol是一个开放源码,由使用者赞助的分子三维结构显示软件,由Warren Lyford DeLano编写,并且由DeLano Scientific LLC负责商业发行。 Pymol被用来创作高品质的分子(特别是生物大分子如蛋白质)三维结构。据软件作者宣称,在所有正式发表的科学论文中的蛋白质结构图像中,有四分之一是使用Pymol来制作的。 Pymol名字的来源:“Py”表示该软件基于python这个计算机语言,“Mol”则是英文分子(molucule)的缩写,表示该软件用来显示分子结构。 由于实验需要,本人正在学习该软件,在这里把学习过程记录下来,希望对有需要的朋友有所帮助。今天先来说说安装吧。 自2006年8月1日起,DeLano Scientific 对事先编译好的PyMOL执行程序(包括beta版)采取限定下载的措施。目前,只有付费用户可以取得。不过源代码目前还是可以免费下载,供使用者编译。如果你和我一样,不想为此花钱的话: 1. 如果你是Windows用户,首先下载Pymol的源代码。然后安装CygWin,并且确保正确安装以下模块: § C+ (gcc or g+ package name) § Python § OpenGL § PNG 然后在源代码目录里面依次运行: 2. 如果你是Linux用户,首先确保以下东东已安装: § Python § Pmw § OpenGL driver(我用的是NVdia) § libpng § Subversion client(下载源代码需要) 然后下载Pymol的源代码$ mkdir pymol-src$ svn co pymol-src 然后进入源代码目录# cd pymol-src 开始依次编译# python setup.py install# python setup2.py install拷贝执行脚本到某个$PATH,安装就搞定了# cp ./pymol /usr/bin 如果运行时得到错误信息"ImportError: No module named Pmw",那么你应该运行# python setup2.py install pmw 如果你在使用Gentoo,请确保编译python时添加了tcl/tk支持,否则运行是会提示错误"ImportError: No module named _tkinter"# USE="tcl tk" emerge python 好了,下面我们就可以进入Pymol的世界了。 Pymol学习笔记(二):基本的鼠标操作这里主要介绍一下Pymol的基本操作,包括窗口菜单、加载文件、图像的基本鼠标操作等等。 当你打开Pymol后,你将会看到如下图所示的界面:该界面分为2窗口,上面的外部GUI窗口(External GUI)和下面的Viewer Window。Viewer Window又分为左右两块,左边用来显示结构图像的(Viewer),右边则是一个内部GUI窗口(Internal GUI)。Viewer自身包含一个命令行(如图中左下方的PyMOL>提示符),可以用来输入Pymol命令;在Inernal GUI中则可以选定一些特定的对象并完成一些操作。External GUI则包含一个标准菜单、一个输出区、一个命令行输入区以及右边的一些常用命令按钮。请注意,标准的“复制、剪切和粘贴”操作只能在External GUI中完成,并且必须使用“CtrlC、CtrlX以及CtrlV”来完成,这也是这个所谓的外部GUI的最重要的优点。 加载文件,有二种方法:1. 在External GUI中选择File Open 2. 使用命令行: load <filename>例如我们现在从www.pdb.org上下载了一个离子通道蛋白的pdb文件(PENTAMERIC LIGAND GATED ION CHANNEL FROM ERWINIA CHRYSANTHEMI),名字为2vl0.pdb,然后用pymol打开它: load 2vl0该蛋白质的结构就被显示出来啦,如下图:基本的图像操作:是不是觉得上面的那个三维结构图看起来乱七八糟的阿,那是因为蛋白质分子都是由成千上万个原子组成的,而Pymol打开pdb文件时是默认把所有的原子都显示在那个小小的Viewer窗口里面的,当然看起来就很乱了。这时候就需要我们对这个图像进行一些操作,来得到漂亮的清晰的蛋白质三维结构图。先说说鼠标吧。 · 任意旋转图像: 对准图像的任意处点住鼠标左键然后移动鼠标。 · 放大/缩小图像: 对准图像的任意处点住鼠标右键然后移动鼠标:向上是缩小,向下则是放大。 · 移动图像: 对准图像的任意处点住鼠标中键或者滚轮,然后移动鼠标。 · 设定图像旋转中心: CtrlShift鼠标中键或滚轮。 · 移动剪切平面: Shift鼠标右键。鼠标上下移动:调整前剪切平面(离你近的);鼠标左右移动:调整后剪切平面(离你远的)。 最后一项“移动剪切平面”有点不容易理解,需要多试几次。配合下面的示意图你会发现Pymol的这项设定其实很方便。今天没时间了,明天还要出远门,就学到这里吧,用下面这个图作为结束,其实就是用cartoon的形式显示了上面的那个蛋白质,不过还比较难看。Pymol学习笔记(三):基础Pymol命令这里主要介绍一下Pymol的一些基本命令操作。就像Linux一样,要想更好的操作Pymol,掌握一些常用的命令是必不可少的。 Pymol是区分大小写的,不过目前为止Pymol还是只用小写,所以记住,所有的命令都是使用小写字母的。 当你开始用Pymol来完成一个项目时,你也许想会让Pymol自动保存你所有输入过的命令,以方便日后你再次读取并修改。这个可以通过创建一个log文件来达到,该文件的后缀名应为.pml,记住,Pymol像Linux一样支持Tab键命令补全: Pymol> log_open log-file-name.pml 如果你想终止记录,只需要键入: Pymol> log_close 好了,现在载入pdb文件(继续前用的pdb文件): Pymol> load 2vlo.pdb 现在Pymol就创建了一个叫2vlo的对象,你可以在内部GUI窗口里面看见这个项目的名字。但是你也可以自己定义该项目的名字(如test): Pymol> load 2vlo.pdb, test 下面说说如何来操作你新建的对象。首先: Pymol> show representationPymol> hide representation 其中representation可以为:cartoon, ribbon, dots, spheres, surface和mesh。使用这2个命令可以让Pymol以不同的方式显示蛋白质结构。例如当我们键入: Pymol> hide linesPymol> show ribbon 我们将得到如下结果:也许你已经注意到结构中有2个一模一样的蛋白质分子,只是方向不同而已,那么如何让Pymol只显示当中的一个分子呢?首先输入如下命令: Pymol> label all, chains 这个命令的作用是让Pymol给蛋白质结构中的“链”编号,你会发现,第一个分子由“链”AE组成,第二个则由FJ组成。好了,如果我们想把一个蛋白质分子去掉,那么只要把“链”AE或者FJ去掉即可: Pymol> hide ribbon, chain f+g+h+i+j 上面的东东还可以这样完成: Pymol> select test, chain f+g+h+i+jPymol> hide ribbon, test 上面的第一句命令的作用是选择“链”FJ,并命名为test,然后在第二句命令中隐藏它。这样做的好处是,一旦你选择并命名了某个目标,你可以在后面随时对它进行各种操作。并且你在右边的控制面板里面也可以看到你选定的目标,并可以对其进行操作。比如你可以: Pymol> hide everything, testPymol> show cartoon, test 这样你会得到:说到这里就提到了Pymol的一个比较重要的东东,就是选择并命名目标,它的基本语法就是: Pymol> select selection-name, selection-expression 其中名字可以由字母A/aZ/z,数字09已经下划线_组成,但是要避免使用: ! # $ % & * ( ) ' " | < > ? / 如果你要删除你选定的目标或者整个对象,你可以: Pymol> delete selection-namePymol> delete object-name 下面讲讲如何给对象以及目标改变颜色。预定义的颜色名字可以在外部GUI窗口的Settings Colors中找到: Pymol> color color-namePymol> color color-name, selection-expression 比如我们可以: Pymol> color red, ss hPymol> color yellow, ss sPymol> color green, ss l+"" 其中“ss”代表secondary structure,“h”代表Helix,“s”代表Beta sheet,l+""代表Loop和所以其他结构。这3句的作用分别是把所有的Helix变成红色;把所有的Beta sheet变成黄色;把所有的Loop以及其他部分变成绿色,于是我们得到:Pymol可以同时打开多个pdb文件: Pymol> load object-name-1.pdbPymol> load object-name-2.pdb 如果你想暂时关闭/打开某个对象,可以这样: Pymol> disable object-name-1Pymol> enable object-name-1 你也可以用disable命令去除最后一个选择的目标上出现的粉红色的小点,但是该命令并不会使你选定的目标不可见。 Pymol> disable selection-name 使用鼠标通常是改变图像视角的最方便的办法,不过命令如zoom,orient等等有时候使用起来也是很有用的,它们提供了另一种改变图像视角的办法。 放大选定目标: Pymol> zoom selection-name 定向选定目标,可以使选定目标最大的尺寸水平显示,次大的尺寸竖直显示: Pymol> orient selection-name 你也可以用view命令保存你目前的视角,注意,该命令只保存视角,并不保存你的对象显示方式: Pymol> view key, action 其中“key”是你随便给当前视角定的名字,“action”可以为:store或者recall。如果不加任何“action”,则默认为recall: Pymol> view v1, storePymol> view v1, recallPymol> view v1 说了这么多,最后说说如何保存文件吧。Pymol有3个层面的保存方式,下面来分别说说。 1. 使用log_open命令把你所有使用过的命令记录为一个文本文档: Pymol> log_open script-file-name 这样以后当你再次调用该文档时,Pymol将执行上面的所有命令: Pymol> script-file-name 不过注意,如果你想记录当前视角,则必须使用get_view命令。你可以选择外部GUI窗口中的File Append/Resume/Close Log来分别暂停记录/恢复记录/停止记录该文档。你可以随时编辑该文档。在linux下,该文档的默认保存目录为当前用户的home目录。 2. 如果你想下次打开Pymol时直接回到当前所在的状态,那么你可以选择外部GUI窗口里面的File Save Session,创建一个会话文件(.pse)。 该会话文件和上面提到的文档文件的区别在于,首先文档文件可以编辑,但会话文件不可以;记录文档文件前必须先运行log_open命令,而会话文件可以随时创建;最后文档文件以文档形式运行(),而打开会话文件则必须选择外部GUI窗口中的File Open。 什么时候需要创建会话文件呢?比如当你在某时有多个选择时,你可以保存当前状态,然后一一尝试这些选择,不满意时只需要重新打开该会话文件即可。也就是说创建会话文件起到了“undo”的作用,这正是Pymol所缺少的。希望开发者能赶快加入该功能,那么这个会话文件好像就没什么大用了,呵呵。 3. 如果你觉得当前显示窗口里面显示的结构图像已经满足你的要求了,你可以把它保存为图片。在这之前你可以使用ray命令来优化你的图像,它可以使你的图像具有三维的反射及阴影特效: Pymol> rayPymol> pngyour_path/image_name 最后就用该命令导出的图片结束这次笔记吧。Pymol学习笔记(四):Pymol命令的语法与目标选择的表达上次介绍一些Pymol的基本命令。现在来具体说说Pymol命令的语法,还有在选择操作目标应该如果表达。个人觉得这部分内容对学习Pymol来说是至关重要的。 从上次讲的一些例子中不难看出,Pymol的命令都是由关键词(keyword)加上一些变量(argument)组成,格式如下: Pymol> keyword argument 其中关键词(keyword)当然是必须的,而变量则不是必须的,比如退出命令quit就不需要附加变量: Pymol> quit 当然更多的命令通常是需要加变量的,比如放大命令zoom,但是你会发现即使你不加任何变量该命令也可以被执行,这是因为Pymol的许多命令有一个默认变量,下面两个命令的作用是一样的,其中的目标选择all就是zoom的默认变量: Pymol> zoomPymol> zoom all还有些命令可以带多个参数,比如加色命令color,它的用法如下: Pymol> color color-namePymol> color color-name, selection-expression 第一个color虽然只带一个变量"color-name",但其实它包含了第二个默认变量all,所以它的作用是把整个结构变成"color-name"的颜色。第二个color带两个变量,和第一个的区别就是把默认的目标选择变量all变成了"selection-expression",也就是说只有被这个变量选中的部分才会被变成"color-name"定义的颜色。要注意的是,如果一个命令带多个变量,则这些变量之间必须用逗号","隔开。通过这个例子,大家可以发现,有些变量本身是很简单的,比如"color-name",就是一个颜色名字而已,没什么复杂的。另一些则不一样,比如"selection-expression",它可以很简单,也可以非常的复杂。这个东东,我称之为选择表达,对Pymol命令的使用非常重要,所以下面要详细的讲一下。 选择表达(selection-expression)表示的实际就是一些被选中的部分,它们可以是一些个原子,一些个Helix,一些个Beta sheet,或者它们的混合物。你可以给你的选择表达起个名字,以便可以多次使用它们。名字可以由大小写字母,数字以及下划线_组成,但是因避免使用下列符号: ! # $ % & * ( ) ' " | < > ? / 选择表达由所谓的"selector"加上"identifier"组成,其中"selector"定义了某类属性,而"identifier"则在该类属性下需要被选择的部分。如下例: Pymol> select test, name c+o+n+ca 其中"name"就是一个selector,它表示在pdb文件中描述的原子的名字;"c+o+n+ca"则是对应的"indentifier",它表示我们要选择pdb文件中名字叫"ca+cb"的原子(ca代表alphacarbon,cb代表betacarbon)。整个语句的作用就是选择上诉的原子并命名为"test",这样我们可以在后面继续使用它。 下表列出了大多数的selector: Selector简写Identifier及例子symbole.chemical-symbol-list周期表中的元素符号Pymol> select polar, symbol o+nnamen.atom-name-listpdb文件中的原子名字Pymol> select carbons, name ca+cb+cg+cdresnr.residue-name-list氨基酸的名字Pymol> select aas, resn asp+glu+asn+glnresii.residue-identifier-listpdb文件中基团的编号Pymol> select mults10, resi 1+10+100residue-identifier-rangePymol> select nterm, resi 1-10altaltalternate-conformation-identifier-list一些单字母的列表,选择具有2种构型的氨基酸Pymol> select altconf, alt a+bchainc.chain-identifier-list一些单字母或数字的列表Pymol> select firstch, chain asegis.segment-identifier-list一些字母(最多位)的列表Pymol> select ligand, segi ligflagf.flag-nummer一个整数()Pymol> select f1, flag 0numeric_typent.type-nummer一个整数Pymol> select type1, nt. 5text_typett.type-string一些字母(最多位)的列表Pymol> select subset, tt. HA+HCididexternal-index-number一个整数Pymol> select idno, id 23indexidx.internal-index-number一个整数Pymol> select intid, index 23sssssecondary-structure-type代表该类结构的单字母Pymol> select allstrs, ss h+s+l+""下表是另一些Selector,有关比较的: Selector简写Identifier及例子bbcomparison-operator b-factor-value一个实数,用来比较b-factorPymol> select fuzzy, b > 12qqcomparison-operator occupancy-value一个实数,用来比较occupancyPymol> select lowcharges, q > 0.5formal_chargefc.comparison-operator formal charge-value一个整数,用来比较formal chargePymol> select doubles, fc. = -1partial_chargepc.comparison-operator partial charge-value一个实数,用来比较partial chargePymol> select hicharges, pc. > -1另外有一些Selector是不需要Identifier的,它们被列在下表中: Selector简写描述all*所有当前被Pymol加载的原子nonenone什么也不选hydroh.所有当前被Pymol加载的氢原子hetatmhet所有从蛋白质数据库HETATM记录中加载的原子visiblev.所有在被“可见”的显示的对象中的原子presentpr.所有的具有定义坐标的原子在Identifier中用到的原子以及氨基酸的命名规则可以在下面的网址中找到:http:/www.wwpdb.org/docs.html 在选择表达中,selector还可以配合逻辑操作子(logical operator)使用,这样我们可以表达更加复杂的选择。这些操作子被列于下表中: Operator简写效果与例子not s1! s1选择原子但不包括s1中的Pymol> select sidechains, ! bbs1 and s2s1 & s2选择既在s1又在s2中的原子Pymol> select far_bb, bb & farfrm_tens1 or s2s1 | s2选择s1或者s2中的原子(也就是包含全部的s1和s2原子)Pymol> select all_prot, bb | sidechains1 in s2s1 in s2选择s1中的那些原子,其identifiers (name, resi, resn, chain, segi)全部符合s2中对应的原子Pymol> select same_atom, pept in prots1 like s2s1 l. s2选择s1中的那些原子,其identifiers (name, resi)符合s2中对应的原子Pymol> select similar_atom, pept like prots1 gap Xs1 gap X选择那些原子,其van der Waals半径至少和s1的van der Waals半径相差XPymol> select farfrm_ten, resi 10 gap 5s1 around Xs1 a. X选择以s1中任何原子为中心,X为半径,所包括的所有原子Pymol> select near_ten, resi 10 around 5s1 expand Xs1 e. X选择以s1中任何原子为中心,X为半径,然后把s1扩展至该新的范围所包含的所有原子Pymol> select near_ten_x, near10 expand 3s1 within X of s2s1 w. X of s2选择以s2为中心,X为半径,并包含在s1中的原子Pymol> select bbnearten, bb w. 4 of resi 10byres s1br. s1把选择扩展到全部residuePymol> select complete_res, br. bbnear10byobject s1bo. s1把选择扩展到全部objectPymol> select near_obj, bo. near_resneighbor s1nbr. s1选择直接和s1相连的原子Pymol> select vicinos, nbr. resi 10这些逻辑选择还可以组合使用。比如你想选择chain b,但是不选择其中的residue 88: Pymol> select chain b and (not resi 88) 在使用多重逻辑选择时,为了让Pymol正确处理顺序,请使用括号,这样最里层括号里面的内容将会被最先处理,以此类推。 好了,目标选择就先说到这里。其实关于目标选择还有所谓的“宏”可以用,可以简化表达式,准备下次说说。 Pymol学习笔记(五):Pymol的选择宏上次具体讲了如何在Pymol中怎么用selection-expression选取目标,其实在某些情况下,还可以用Pymol提供的宏来选择操作目标。使用这个选择宏往往可以是一个原本很复杂的表达变得简单紧凑。 例如我们想选择2vlo这个pdb文件中的"chain a"中的第100个基团的炭原子,如果用selection-expression来表达的话是这样: Pymol> select chain a and resi 100 and ca 如果用宏的,可以这样: Pymol> select a/100/ca 是不是觉得简单了很多。好了,下面就来详细讲讲这个宏吧。因为这个宏是用来选择目标的,所以我称之为选择宏,它用斜杠"/"来定义Identifier,并且它使用上次介绍过的逻辑操作子"and"。一个完整的,按顺序的选择宏的表达如下: /object-name/segi-identifier/chain-identifier/resi-identifier/name-identifier 之所以说选择宏是有顺序的,是因为Pymol就是靠顺序判断每个斜杠后面的东东都是什么东东。如果再细分一下的话,其实这个选择宏有2种写法,一个是带开头的斜杠,另一个是不带开头斜杠。区别是: 如果不以斜杠开头,那么Pymol则认为你的表达式的最后一项就是选择宏的末尾的最后一项,也就是name-identifier。例如: Pymol> show lines, a/100/caPymol> show lines, 100/ca 如过以斜杠开头,那么Pymol就认为你是从选择宏的表达式的顶端开始的,也就是从/object-name开始的。例如: Pymol> zoom /2vl0/a/100/caPymol> zoom /2vl0/a/100 细心的读者肯定发现了上面的例子中有两道斜杠中间什么内容也没有,不会是写错了吧?当然不是,其实在这种情况下Pymol会默认选择这个两道斜杠中被省略的Identifier列表中的全部元素,也就是说被省略的部分被Pymol当作了一个通配符。例如上例中我要选择全部的"segment",所以我就把它给省略不写了,呵呵,方便吧。在举些例子来说明一下: Pymol> color green, a/142/ 斜杠后面的"name-identifier"被省略了,所以第142号基团的素有原子都会变成绿色。 Pymol> shwo cartoon, a/ a斜杠后面的"resi-identifier"以及最后斜杠后面的"name-identifier"被省略了,所以整个a链将以cartoon的方式被显示。 Pymol> zoom /2vl0/b 2个斜杠间的"segi-identifier"被省略,所以所有的b链将被放大。 最后总结一下,Pymol的选择宏必须至少包含一个斜杠"/",以此来和Pymol的"select-expression"区分;并且不能包含空格,因为Pymol是把宏作为一个词来读取的;还有就是其实Pymol在执行宏的时候首先是把它翻译成正常的"select-expression",然后再执行的。 Pymol学习笔记(六):关于cartooncartoon经常被用来显示一个蛋白质的总体结构,看起来也很漂亮。这次就来说说它的具体用法。不久前本人刚搞定了一个Glucosyltransferase的结构,所以下面所有的例子都用来它来说明。 cartoon的命令格式如下: Pymol> cartoon type, (selection) 总结一下cartoon的显示类型: automatic:默认的显示方式looptube: 比loop粗点putty: 这个比较有趣,按照R-factor来显示,越高越粗ovalrectanglearrow:和rectangle几乎一样,就是多了个箭头dumbbell:在oval的基础上,在helix的边缘加上一个cylinderskip:隐藏,该图中隐藏了6120号氨基酸。下面说说如何设置cartoon的一些具体细节。比较下面的2幅图: 你会发现第一张图中sheets是平的,而当中的那个氨基酸的支链并没连接在sheet上,这是因为为了显示的漂亮,把sheet人为的抹平了。而第二张图中的sheets则表达了蛋白质的真实走向,所以氨基酸的支链也显示正常。也就是说,如果你想表达某个局部的具体细节的时候,最好采用第二张图中的显示方式。2张图对应的命令分别是: Pymol> set cartoon_flat_sheets, 1Pymol> set cartoon_flat_sheets, 0 类似的命令对应于loop,就不举例子了: Pymol> set cartoon_smooth_loops, 1Pymol> set cartoon_smooth_loops, 0 下面再说说cartoon尺寸。Helix的厚度和宽度: Pymol> set cartoon_oval_width, 0.2Pymol> set cartoon_oval_length, 1.5 sheet的厚度和宽度: Pymol> set cartoon_rect_width, 0.5Pymol> set cartoon_rect_length, 1.5 loop的半径: Pymol> set cartoon_loop_radius, 0.2 如果你设置了cartoon的显示风格为fancy Pymol> set cartoon_fancy_helices, 1Pymol> set cartoon_fancy_sheets, 1 这样你得到的helix的边上会带有一个很细的cylinder,也就是上面几张图中的显示方式。此时设置helix的厚度,宽度,以及这个cylinder的半径分别是: Pymol> set cartoon_dumbbell_width, 0.1Pymol> set cartoon_dumbbell_length, 2Pymol> set cartoon_dumbbell, 0.2 依此类推,还可以设置和putty,tube等等显示类型相关的尺寸,就不一一类举了。 最后再加几个还用的着的命令吧: 上色: Pymol> set cartoon_color, green 竟然还可以refine,呵呵,逗号后面可以接数字,好像120都可以,数字越大优化的越大,感觉的确能变漂亮点: Pymol> set cartoon_refine, 20 设置透明: Pymol> set cartoon_transparency, 0.5 关于cartoon还有些命令,感觉不怎么常用,有些我也不知道是干什么的。有兴趣再研究吧。 Pymol学习笔记(七):关于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, tmpPymol> extract upg, chain bPymol> extract pro, chain aPymol> delete tmpPymol> select near, pro within 4.5 of upgPymol> hide allPymol> show sticks, upgPymol> show lines, nearPymol> label near, ("%s/%s") % (resn, resi)#("%s/%s"): 设定显示格式。 上面的图看起来有点乱,因为默认Pymol在每个原子上都打上了标签。要想看起来顺眼点,需要一点加工。在这之前,让我们先看一下关于label的其他设置: 投影模式,可选值0(无投影),