1、Pymol学习笔记(一):简介&安装Pymol是一个开放源码,由使用者赞助的分子三维结构显示软件,由Warren Lyford DeLano编写,并且由DeLano Scientific LLC负责商业发行。 Pymol被用来创作高品质的分子(特别是生物大分子如蛋白质)三维结构。据软件作者宣称,在所有正式发表的科学论文中的蛋白质结构图像中,有四分之一是使用Pymol来制作的。 Pymol名字的来源:“Py”表达该软件基于python这个计算机语言,“Mol”则是英文分子(molucule)的缩写,表达该软件用来显示分子结构。 由于实验需要,本人正在学习该软件,在这里把学习过程记录下来,希望对有
2、需要的朋友有所帮助。今天先来说说安装吧。 自2023年8月1日起,DeLano Scientific 对事先编译好的PyMOL执行程序(涉及beta版)采用限定下载的措施。目前,只有付费用户可以取得。但是源代码目前还是可以免费下载,供使用者编译。假如你和我同样,不想为此花钱的话: 1. 假如你是Windows用户,一方面下载Pymol的源代码。然后安装CygWin,并且保证对的安装以下模块: C+ (gcc or g+ package name) Python OpenGL PNG然后在源代码目录里面依次运营: 2. 假如你是Linux用户,一方面保证以下东东已安装: Python Pmw O
3、penGL driver(我用的是NVdia) libpng Subversion client(下载源代码需要)然后下载Pymol的源代码$ mkdir pymol-src$ svn co 然后进入源代码目录# 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 pm
4、w 假如你在使用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又分为左右两块,左边用来
5、显示结构图像的(Viewer),右边则是一个内部GUI窗口(Internal GUI)。Viewer自身包含一个命令行(如图中左下方的PyMOL提醒符),可以用来输入Pymol命令;在Inernal GUI中则可以选定一些特定的对象并完毕一些操作。External GUI则包含一个标准菜单、一个输出区、一个命令行输入区以及右边的一些常用命令按钮。请注意,标准的“复制、剪切和粘贴”操作只能在External GUI中完毕,并且必须使用“CtrlC、CtrlX以及CtrlV”来完毕,这也是这个所谓的外部GUI的最重要的优点。 加载文献,有二种方法:1. 在External GUI中选择File O
6、pen2. 使用命令行: load 例如我们现在从.org上下载了一个离子通道蛋白的pdb文献(PENTAMERIC LIGAND GATED ION CHANNEL FROM ERWINIA CHRYSANTHEMI),名字为2vl0.pdb,然后用pymol打开它: load 2vl0该蛋白质的结构就被显示出来啦,如下图:基本的图像操作:是不是觉得上面的那个三维结构图看起来乱七八糟的阿,那是由于蛋白质分子都是由成千上万个原子组成的,而Pymol打开pdb文献时是默认把所有的原子都显示在那个小小的Viewer窗口里面的,当然看起来就很乱了。这时候就需要我们对这个图像进行一些操作,来得到美丽的
7、清楚的蛋白质三维结构图。先说说鼠标吧。 任意旋转图像: 对准图像的任意处点住鼠标左键然后移动鼠标。 放大/缩小图像: 对准图像的任意处点住鼠标右键然后移动鼠标:向上是缩小,向下则是放大。 移动图像: 对准图像的任意处点住鼠标中键或者滚轮,然后移动鼠标。 设定图像旋转中心: CtrlShift鼠标中键或滚轮。 移动剪切平面: Shift鼠标右键。鼠标上下移动:调整前剪切平面(离你近的);鼠标左右移动:调整后剪切平面(离你远的)。 最后一项“移动剪切平面”有点不容易理解,需要多试几次。配合下面的示意图你会发现Pymol的这项设定其实很方便。今天没时间了,明天还要出远门,就学到这里吧,用下面这个图作
8、为结束,其实就是用cartoon的形式显示了上面的那个蛋白质,但是还比较难看。Pymol学习笔记(三):基础Pymol命令这里重要介绍一下Pymol的一些基本命令操作。就像Linux同样,要想更好的操作Pymol,掌握一些常用的命令是必不可少的。 Pymol是区分大小写的,但是目前为止Pymol还是只用小写,所以记住,所有的命令都是使用小写字母的。 当你开始用Pymol来完毕一个项目时,你也许想会让Pymol自动保存你所有输入过的命令,以方便日后你再次读取并修改。这个可以通过创建一个log文献来达成,该文献的后缀名应为.pml,记住,Pymol像Linux同样支持Tab键命令补全: Pymol
9、 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可认为:cartoo
10、n, ribbon, dots, spheres, surface和mesh。使用这2个命令可以让Pymol以不同的方式显示蛋白质结构。例如当我们键入: Pymol hide linesPymol show ribbon 我们将得到如下结果:也许你已经注意到结构中有2个一模同样的蛋白质分子,只是方向不同而已,那么如何让Pymol只显示当中的一个分子呢?一方面输入如下命令: Pymol label all, chains 这个命令的作用是让Pymol给蛋白质结构中的“链”编号,你会发现,第一个分子由“链”AE组成,第二个则由FJ组成。好了,假如我们想把一个蛋白质分子去掉,那么只要把“链”AE或者
11、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 这样你会得到:说到这
12、里就提到了Pymol的一个比较重要的东东,就是选择并命名目的,它的基本语法就是: Pymol select selection-name, selection-expression 其中名字可以由字母A/aZ/z,数字09已经下划线_组成,但是要避免使用: ! # $ % & * ( ) | ? / 假如你要删除你选定的目的或者整个对象,你可以: Pymol delete selection-namePymol delete object-name 下面讲讲如何给对象以及目的改变颜色。预定义的颜色名字可以在外部GUI窗口的Settings Colors中找到: Pymol color colo
13、r-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 o
14、bject-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 sel
15、ection-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个层
16、面的保存方式,下面来分别说说。 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时直接回到当前
17、所在的状态,那么你可以选择外部GUI窗口里面的File Save Session,创建一个会话文献(.pse)。 该会话文献和上面提到的文档文献的区别在于,一方面文档文献可以编辑,但会话文献不可以;记录文档文献前必须先运营log_open命令,而会话文献可以随时创建;最后文档文献以文档形式运营(),而打开会话文献则必须选择外部GUI窗口中的File Open。 什么时候需要创建会话文献呢?比如当你在某时有多个选择时,你可以保存当前状态,然后一一尝试这些选择,不满意时只需要重新打开该会话文献即可。也就是说创建会话文献起到了“undo”的作用,这正是Pymol所缺少的。希望开发者能赶紧加入该功能,
18、那么这个会话文献仿佛就没什么大用了,呵呵。 3. 假如你觉得当前显示窗口里面显示的结构图像已经满足你的规定了,你可以把它保存为图片。在这之前你可以使用ray命令来优化你的图像,它可以使你的图像具有三维的反射及阴影特效: Pymol rayPymol pngyour_path/image_name 最后就用该命令导出的图片结束这次笔记吧。Pymol学习笔记(四):Pymol命令的语法与目的选择的表达上次介绍一些Pymol的基本命令。现在来具体说说Pymol命令的语法,尚有在选择操作目的应当假如表达。个人觉得这部分内容对学习Pymol来说是至关重要的。 从上次讲的一些例子中不难看出,Pymol的命
19、令都是由关键词(keyword)加上一些变量(argument)组成,格式如下: Pymol keyword argument 其中关键词(keyword)当然是必须的,而变量则不是必须的,比如退出命令quit就不需要附加变量: Pymol quit 当然更多的命令通常是需要加变量的,比如放大命令zoom,但是你会发现即使你不加任何变量该命令也可以被执行,这是由于Pymol的许多命令有一个默认变量,下面两个命令的作用是同样的,其中的目的选择all就是zoom的默认变量: Pymol zoomPymol zoom all尚有些命令可以带多个参数,比如加色命令color,它的用法如下: Pymol
20、 color color-namePymol color color-name, selection-expression 第一个color虽然只带一个变量color-name,但其实它包含了第二个默认变量all,所以它的作用是把整个结构变成color-name的颜色。第二个color带两个变量,和第一个的区别就是把默认的目的选择变量all变成了selection-expression,也就是说只有被这个变量选中的部分才会被变成color-name定义的颜色。要注意的是,假如一个命令带多个变量,则这些变量之间必须用逗号,隔开。通过这个例子,大家可以发现,有些变量自身是很简朴的,比如color-
21、name,就是一个颜色名字而已,没什么复杂的。另一些则不同样,比如selection-expression,它可以很简朴,也可以非常的复杂。这个东东,我称之为选择表达,对Pymol命令的使用非常重要,所以下面要具体的讲一下。 选择表达(selection-expression)表达的实际就是一些被选中的部分,它们可以是一些个原子,一些个Helix,一些个Beta sheet,或者它们的混合物。你可以给你的选择表达起个名字,以便可以多次使用它们。名字可以由大小写字母,数字以及下划线_组成,但是因避免使用下列符号: ! # $ % & * ( ) | ? / 选择表达由所谓的selector加上i
22、dentifier组成,其中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及例子s
23、ymbole.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-rang
24、ePymol 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
25、, 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 allstr
26、s, 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_parison-operator formal charge-value一个整数,用来比较formal chargePymol select dou
27、bles, fc. = -1partial_parison-operator partial charge-value一个实数,用来比较partial chargePymol select hicharges, pc. -1此外有一些Selector是不需要Identifier的,它们被列在下表中: Selector简写描述all*所有当前被Pymol加载的原子nonenone什么也不选hydroh.所有当前被Pymol加载的氢原子hetatmhet所有从蛋白质数据库HETATM记录中加载的原子visiblev.所有在被“可见”的显示的对象中的原子presentpr.所有的具有定义坐标的原子在
28、Identifier中用到的原子以及氨基酸的命名规则可以在下面的网址中找到: 在选择表达中,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 sele
29、ct 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
30、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
31、 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
32、 (not resi 88) 在使用多重逻辑选择时,为了让Pymol对的解决顺序,请使用括号,这样最里层括号里面的内容将会被最先解决,以此类推。 好了,目的选择就先说到这里。其实关于目的选择尚有所谓的“宏”可以用,可以简化表达式,准备下次说说。Pymol学习笔记(五):Pymol的选择宏上次具体讲了如何在Pymol中怎么用selection-expression选取目的,其实在某些情况下,还可以用Pymol提供的宏来选择操作目的。使用这个选择宏往往可以是一个原本很复杂的表达变得简朴紧凑。 例如我们想选择2vlo这个pdb文献中的chain a中的第100个基团的炭原子,假如用selection
33、-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 之所以说选择宏是有顺序的,是由于
34、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
35、 细心的读者肯定发现了上面的例子中有两道斜杠中间什么内容也没有,不会是写错了吧?当然不是,其实在这种情况下Pymol会默认选择这个两道斜杠中被省略的Identifier列表中的所有元素,也就是说被省略的部分被Pymol当作了一个通配符。例如上例中我要选择所有的segment,所以我就把它给省略不写了,呵呵,方便吧。在举些例子来说明一下: Pymol color green, a/142/ 斜杠后面的name-identifier被省略了,所以第142号基团的素有原子都会变成绿色。 Pymol shwo cartoon, a/ a斜杠后面的resi-identifier以及最后斜杠后面的name
36、-identifier被省略了,所以整个a链将以cartoon的方式被显示。 Pymol zoom /2vl0/b 2个斜杠间的segi-identifier被省略,所以所有的b链将被放大。 最后总结一下,Pymol的选择宏必须至少包含一个斜杠/,以此来和Pymol的select-expression区分;并且不能包含空格,由于Pymol是把宏作为一个词来读取的;尚有就是其实Pymol在执行宏的时候一方面是把它翻译成正常的select-expression,然后再执行的。Pymol学习笔记(六):关于cartooncartoon经常被用来显示一个蛋白质的总体结构,看起来也很美丽。这次就来说说它
37、的具体用法。不久前本人刚搞定了一个Glucosyltransferase的结构,所以下面所有的例子都用来它来说明。 cartoon的命令格式如下: Pymol cartoon type, (selection) 总结一下cartoon的显示类型: automatic:默认的显示方式looptube: 比loop粗点putty: 这个比较有趣,按照R-factor来显示,越高越粗ovalrectanglearrow:和rectangle几乎同样,就是多了个箭头dumbbell:在oval的基础上,在helix的边沿加上一个cylinderskip:隐藏,该图中隐藏了6120号氨基酸。下面说说如何
38、设立cartoon的一些具体细节。比较下面的2幅图: 你会发现第一张图中sheets是平的,而当中的那个氨基酸的支链并没连接在sheet上,这是由于为了显示的美丽,把sheet人为的抹平了。而第二张图中的sheets则表达了蛋白质的真实走向,所以氨基酸的支链也显示正常。也就是说,假如你想表达某个局部的具体细节的时候,最佳采用第二张图中的显示方式。2张图相应的命令分别是: Pymol set cartoon_flat_sheets, 1Pymol set cartoon_flat_sheets, 0 类似的命令相应于loop,就不举例子了: Pymol set cartoon_smooth_lo
39、ops, 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 cart
40、oon_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等等显示类型相关的尺寸,就不一一类举了。 最后再加几个还用的着的命令吧: 上
41、色: Pymol set cartoon_color, green 居然还可以refine,呵呵,逗号后面可以接数字,仿佛120都可以,数字越大优化的越大,感觉的确能变美丽点: Pymol set cartoon_refine, 20 设立透明: Pymol set cartoon_transparency, 0.5 关于cartoon尚有些命令,感觉不怎么常用,有些我也不知道是干什么的。有爱好再研究吧。 Pymol学习笔记(七):关于label在显示一个蛋白结构的某个细节的时候,经常会需要给某些重要的氨基酸打上标签,这就需要用到label命令。 label的命令格式如下: Pymol lab
42、el 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。 Py
43、mol 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在每个原子上都打上了标签。要想看起来顺
44、眼点,需要一点加工。在这之前,让我们先看一下关于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-
45、name, selection 字体,pymol内置了12种字体,编号从516。15号和16号字体是unicode的: Pymol set label_font_id, 5 字体大小,假如为正值,则单位就是正常的px。你也可以用负值,则单位是: Pymol set label_size, -0.5Pymol set label_size, 4 设立label位置,用下列命令可以设立label离默认位置的三维偏移值,在需要给spheres加标签的时候有用: Pymol set label_position, (x,y,z)最后说说如何用单个字母标注氨基酸。一方面在$HOME/.pymolrc中加入: # start $HOME/.pymolrc modificationsingle =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, SE