蛋白质作图软件pymol教程 Pymol学习笔记.docx
《蛋白质作图软件pymol教程 Pymol学习笔记.docx》由会员分享,可在线阅读,更多相关《蛋白质作图软件pymol教程 Pymol学习笔记.docx(35页珍藏版)》请在冰豆网上搜索。
蛋白质作图软件pymol教程Pymol学习笔记
B2WS-6JGH-PV7G-PBKP什么是结构生物学
结构生物学(Structuralbiology)是生物领域里面相对较新的一个分支。
它主要以生物化学和生物物理学方法来研究生物大分子,特别是蛋白质和核酸,的三维结构,以及与结构相对应的功能。
因为几乎所有的细胞内的生命活动都是通过生物大分子来完成的,并且这些大分子完成这些功能的前提是它们必须具有特定的三维结构,因此,对于生物化学家们,这是一个非常具有吸引力的领域。
该领域通常被认为开始于20世纪50年代,MaxPerutzhe和SirJohnCowdery
Kendrew于1959年各自利用X射线晶体学方法解析了肌红蛋白(Myoglobin)的三维结构,一种在肌肉中运输氧气的蛋白。
他们因此分享了1962年的诺贝尔化学奖,并由此揭开了结构生物学的序幕。
截止到2008年10月28日,已有53917个生物大分子结构在www.pdb.org(蛋白质数据库)登记在案。
目前用于研究生物大分子结构的常用方法有X射线晶体学(X-raycrystallography)、核磁共振(NMR)、电子显微学(electronmicroscopy)、冷冻电子显微学(electron
cryomicroscopy=cryo-EM)、超快激光光谱(ultrafastlaserspectroscopy)、双偏振极化干涉(DualPolarisationInterferometry)以及圆二色谱(circulardichroism)等。
当中又以X射线晶体学和核磁共振最为常用。
图一:
肌红蛋白(Myoglobin)的三维结构,世界上第一个由X射线晶体学解出的蛋白质结构,该蛋白在肌肉中传输氧气。
.
图二:
蓝细菌(Cyanobacterium)的光系统II(PhotosystemII)的三维结构,该蛋白位于细胞膜内,用以吸收光能参与光合作用。
Pymol学习笔记
(一):
简介&安装
Pymol是一个开放源码,由使用者赞助的分子三维结构显示软件,由WarrenLyford
负责商业发行。
DeLanoScientificLLC编写,并且由DeLano
Pymol被用来创作高品质的分子(特别是生物大分子如蛋白质)三维结构。
据软件作者宣称,在所有正式发表的科学论文中的蛋白质结构图像中,有四分之一是使用Pymol来制作的。
Pymol名字的来源:
“Py”表示该软件基于python这个计算机语言,“Mol”则是英文分子(molucule)的缩写,表示该软件用来显示分子结构。
由于实验需要,本人正在学习该软件,在这里把学习过程记录下来,希望对有需要的朋友有所帮助。
今天先来说说安装吧。
自2006年8月1日起,DeLanoScientific对事先编译好的PyMOL执行程序(包括beta版)采取限定下载的措施。
目前,只有付费用户可以取得。
不过源代码目前还是可以免费下载,供使用者编译。
如果你和我一样,不想为此花钱的话:
1.如果你是Windows用户,首先下载Pymol的源代码。
然后安装CygWin,并且确保正确安装以下模块:
C++(gccorg++packagename)?
Python?
OpenGL?
PNG?
然后在源代码目录里面依次运行:
2.如果你是Linux用户,首先确保以下东东已安装:
Python?
Pmw?
OpenGLdriver(我用的是NVdia)?
libpng?
Subversionclient(下载源代码需要)?
然后下载Pymol的源代码$mkdirpymol-src
$svncopymol-src
然后进入源代码目录#cdpymol-src
开始依次编译#pythonsetup.pyinstall
#pythonsetup2.pyinstall
拷贝执行脚本到某个$PATH,安装就搞定了#cp./pymol/usr/bin
?
灭牯?
牲牯?
潎洠摯汵?
慮敭?
浐屷,那么你应该运行如果运行时得到错误信息#pythonsetup2.pyinstallpmw
否则运行是会提示tcl/tk支持,时添加了请确保编译Gentoo如果你在使用,pythonImportError:
Nomodulenamed_tkinter
错误#USE=cltkemergepython
好了,下面我们就可以进入Pymol的世界了。
Pymol学习笔记
(二):
基本的鼠标操作
这里主要介绍一下Pymol的基本操作,包括窗口菜单、加载文件、图像的基本鼠标操作等等。
.
当你打开Pymol后,你将会看到如下图所示的界面:
该界面分为2窗口,上面的外部GUI窗口(ExternalGUI)和下面的ViewerWindow。
Viewer
GUI),右边则是一个内部Viewer又分为左右两块,左边用来显示结构图像的(Window
提示符),自身包含一个命令行(如图中左下方的PyMOL>窗口(InternalGUI)。
Viewer中则可以选定一些特定的对象并完成一些操作。
命令;在InernalGUI可以用来输入Pymol一个命令行输入区以及右边的一些常用命一个输出区、ExternalGUI则包含一个标准菜单、中完成,并且必须使ExternalGUI“复制、剪切和粘贴”操作只能在令按钮。
请注意,标准的的最重要的优点。
GUIX以及Ctrl+V”来完成,这也是这个所谓的外部Ctrl“Ctrl用+C、+加载文件,有二种方法:
Open中选择File-ExternalGUI1.在使用命令行:
2.
load
PENTAMERIC文件(pdb例如我们现在从www.pdb.org上下载了一个离子通道蛋白的,2vl0.pdb),名字为LIGANDGATEDIONCHANNELFROMERWINIACHRYSANTHEMI打开它:
然后用pymol
load2vl0
该蛋白质的结构就被显示出来啦,如下图:
基本的图像操作:
是不是觉得上面的那个三维结构图看起来乱七八糟的阿,那是因为蛋白质分子都是由成千上万个原子组成的,而Pymol打开pdb文件时是默认把所有的原子都显示在那个小小的Viewer窗口里面的,当然看起来就很乱了。
这时候就需要我们对这个图像进行一些操作,来得到漂亮的清晰的蛋白质三维结构图。
先说说鼠标吧。
对准图像的任意处点住鼠标左键然后移动鼠标。
任意旋转图像:
?
.
放大/缩小图像:
对准图像的任意处点住鼠标右键然后移动鼠标:
向上是缩小,向?
下则是放大。
移动图像:
对准图像的任意处点住鼠标中键或者滚轮,然后移动鼠标。
?
设定图像旋转中心:
Ctrl+Shift+鼠标中键或滚轮。
?
移动剪切平面:
Shift+鼠标右键。
鼠标上下移动:
调整前剪切平面(离你近的);?
鼠标左右移动:
调整后剪切平面(离你远的)。
最后一项“移动剪切平面”有点不容易理解,需要多试几次。
配合下面的示意图你会发现Pymol的这项设定其实很方便。
今天没时间了,明天还要出远门,就学到这里吧,用下面这个图作为结束,其实就是用cartoon的形式显示了上面的那个蛋白质,不过还比较难看。
。
。
Pymol学习笔记(三):
基础Pymol命令
这里主要介绍一下Pymol的一些基本命令操作。
就像Linux一样,要想更好的操作Pymol,掌握一些常用的命令是必不可少的。
Pymol是区分大小写的,不过目前为止Pymol还是只用小写,所以记住,所有的命令都是使用小写字母的。
当你开始用Pymol来完成一个项目时,你也许想会让Pymol自动保存你所有输入过的命令,以方便日后你再次读取并修改。
这个可以通过创建一个log文件来达到,该文件的后键命令补全:
Tab一样支持Linux像Pymol,记住,.pml缀名应为
Pymol>log_openlog-file-name.pml如果你想终止记录,只需要键入:
Pymol>log_close
好了,现在载入pdb文件(继续前用的pdb文件):
Pymol>load2vlo.pdb
窗口里面看见这个项目的名字。
2vlo现在Pymol就创建了一个叫的对象,你可以在内部GUI但是你也可以自己定义该项目的名字(如test):
Pymol>load2vlo.pdb,test
下面说说如何来操作你新建的对象。
首先:
Pymol>showrepresentationrepresentationPymol>hide
。
meshrepresentation其中可以为:
cartoon,ribbon,dots,spheres,surface和个命令可以让Pymol以不同的方式显示蛋白质结构。
2使用这例如当我们键入:
Pymol>hidelines
Pymol>showribbon
我们将得到如下结果:
个一模一样的蛋白质分子,只是方向不同而已,那么如何让也许你已经注意到结构中有2Pymol只显示当中的一个分子呢?
首先输入如下命令:
Pymol>labelall,chains
E-”A第一个分子由“链你会发现,“这个命令的作用是让Pymol给蛋白质结构中的链”编号,组成。
-JF组成,第二个则由JFE”A“好了,如果我们想把一个蛋白质分子去掉,那么只要把链-或者-去掉即可:
Pymol>hideribbon,chainf+g+h+i+j
上面的东东还可以这样完成:
Pymol>selecttest,chainf+g+h+i+j
Pymol>hideribbon,test
,然后在第二句命令中隐藏它。
这test,并命名为链上面的第一句命令的作用是选择“”F-J并且一旦你选择并命名了某个目标,样做的好处是,你可以在后面随时对它进行各种操作。
你在右边的控制面板里面也可以看到你选定的目标,并可以对其进行操作。
比如你可以:
Pymol>hideeverything,test
Pymol>showcartoon,test
这样你会得到:
的一个比较重要的东东,就是选择并命名目标,它的基本语法Pymol说到这里就提到了就是:
Pymol>selectselection-name,selection-expression组成,但是要避免使用:
[_]已经下划线-,数字-其中名字可以由字母[A/aZ/z][09]!
@#$%^&*()'[]{}\|~`<>?
/
如果你要删除你选定的目标或者整个对象,你可以:
Pymol>deleteselection-nameobject-namePymol>delete
Settings窗口的GUI下面讲讲如何给对象以及目标改变颜色。
预定义的颜色名字可以在外部-Colors中找到:
color-namePymol>color
color-name,selection-expressionPymol>color
比如我们可以:
Pymol>colorred,ssh
Pymol>coloryellow,sss
Pymol>colorgreen,ssl+\
其中“ss”代表secondarystructure,“h”代表Helix,“s”代表Betasheet,l+\代表Loop和所以其他结构。
这3句的作用分别是把所有的Helix变成红色;把所有的Betasheet变成黄色;把所有的以及其他部分变成绿色,于是我们得到:
Loop
可以同时打开多个pdb文件:
PymolPymol>loadobject-name-1.pdbPymol>loadobject-name-2.pdb
打开某个对象,可以这样:
如果你想暂时关闭/Pymol>disableobject-name-1Pymol>enableobject-name-1
你也可以用disable命令去除最后一个选择的目标上出现的粉红色的小点,但是该命令并不会使你选定的目标不可见。
.
Pymol>disableselection-name
等等有时候,orient使用鼠标通常是改变图像视角的最方便的办法,不过命令如zoom使用起来也是很有用的,它们提供了另一种改变图像视角的办法。
放大选定目标:
selection-namePymol>zoom
定向选定目标,可以使选定目标最大的尺寸水平显示,次大的尺寸竖直显示:
:
selection-namePymol>orient
命令保存你目前的视角,注意,该命令只保存视角,并不保存你的对象显view你也可以用示方式:
key,actionPymol>view
。
如果不加任何store是你随便给当前视角定的名字,“action”可以为:
或者recall“key”其中,则默认为recall:
“action”Pymol>viewv1,store
Pymol>viewv1,recall
Pymol>viewv1
个层面的保存方式,下面来分别3说了这么多,最后说说如何保存文件吧。
Pymol有说说。
命令把你所有使用过的命令记录为一个文本文档:
1.使用log_openPymol>log_openscript-file-name
将执行上面的所有命令:
Pymol这样以后当你再次调用该文档时,
Pymol>@script-file-name
不过注意,如果你想记录当前视角,则必须使用get_view命令。
你可以选择外部GUI窗口中的File-Append/Resume/CloseLog来分别暂停记录/恢复记录/停止记录该文档。
你可以随时编辑该文档。
在linux下,该文档的默认保存目录为当前用户的home目录。
2.如果你想下次打开Pymol时直接回到当前所在的状态,那么你可以选择外部GUI窗口里面的File-SaveSession,创建一个会话文件(.pse)。
该会话文件和上面提到的文档文件的区别在于,首先文档文件可以编辑,但会话文件不可以;记录文档文件前必须先运行log_open命令,而会话文件可以随时创建;最后文档文件以文档形式运行(@),而打开会话文件则必须选择外部GUI窗口中的File-Open。
什么时候需要创建会话文件呢?
比如当你在某时有多个选择时,你可以保存当前状态,然后一一尝试这些选择,不满意时只需要重新打开该会话文件即可。
也就是说创建会话文件起到了“undo”的作用,这正是Pymol所缺少的。
希望开发者能赶快加入该功能,那么这个会话文件好像就没什么大用了,呵呵。
3.如果你觉得当前显示窗口里面显示的结构图像已经满足你的要求了,你可以把它保存为图片。
在这之前你可以使用ray命令来优化你的图像,它可以使你的图像具有三维的反射及阴影特效:
Pymol>ray
Pymol>pngyour_path/image_name
最后就用该命令导出的图片结束这次笔记吧。
Pymol学习笔记(四):
Pymol命令的语法与目标选择的表达
上次介绍一些Pymol的基本命令。
现在来具体说说Pymol命令的语法,还有在选择操来说是至关重要的。
Pymol作目标应该如果表达。
个人觉得这部分内容对学习.
)加上一些变量的命令都是由关键词(keyword从上次讲的一些例子中不难看出,Pymol(argument)组成,格式如下:
Pymol>keywordargument就不需要quit其中关键词(keyword)当然是必须的,而变量则不是必须的,比如退出命令附加变量:
Pymol>quit
,但是你会发现即使你不加任何当然更多的命令通常是需要加变量的,比如放大命令zoom的许多命令有一个默认变量,下面两个命令的Pymol变量该命令也可以被执行,这是因为的默认变量:
zoom作用是一样的,其中的目标选择all就是Pymol>zoom
Pymol>zoomall
color还有些命令可以带多个参数,比如加色命令,它的用法如下:
color-namePymol>color
Pymol>colorcolor-name,selection-expression
第一个color虽然只带一个变量捜汯牯渭浡履,但其实它包含了第二个默认变量all,所以它的作用是把整个结构变成捜汯牯渭浡履的颜色。
第二个color带两个变量,和第一个的区别就是把默认的目标选择变量all变成了獜汥捥楴湯攭灸敲獳潩屮,也就是说只有被这个变量选中的部分才会被变成捜汯牯渭浡履定义的颜色。
要注意的是,如果一个命令带多个变量,则这些变量之间必须用逗号?
隔开。
通过这个例子,大家可以发现,有些变量本身是很简单的,比如捜汯牯渭浡履,就是一个颜它可以很简单,,獜汥捥楴湯攭灸敲獳潩屮比如另一些则不一样,没什么复杂的。
色名字而已,
命令的使用非常重要,所以Pymol也可以非常的复杂。
这个东东,我称之为选择表达,对下面要详细的讲一下。
)表示的实际就是一些被选中的部分,它们可以是一些个选择表达(selection-expression,或者它们的混合物。
你可以给你的选择表达起个Helix,一些个Betasheet原子,一些个组成,但是因名字,以便可以多次使用它们。
名字可以由大小写字母,数字以及下划线[_]避免使用下列符号:
!
@#$%^&*()'[]{}\|~`<>?
/
定义了某类属性,而獜汥捥潴屲楜敤瑮晩敩屲组成,其中选择表达由所谓的獜汥捥潴屲加上楜敤瑮晩敩屲则在该类属性下需要被选择的部分。
如下例:
Pymol>selecttest,namec+o+n+ca
其中湜浡履就是一个selector,它表示在pdb文件中描述的原子的名字;捜漫渫挫屡则是对应的楜摮湥楴楦牥,它表示我们要选择pdb文件中名字叫捜?
扣的原子(ca代表alpha
carbon,cb代表betacarbon)。
整个语句的作用就是选择上诉的原子并命名为瑜獥屴,这样我们可以在后面继续使用它。
下表列出了大多数的selector:
Selector
简写Identifier及例子
chemical-symbol-list
symbole.
周期表中的元素符号Pymol>selectpolar,symbolo+n
atom-name-list
name文件中的原子名字pdbn.
Pymol>selectcarbons,nameca+cb+cg+cd
residue-name-list
r.
氨基酸的名字resn
Pymol>selectaas,resnasp+glu+asn+gln
residue-identifier-list
pdb文件中基团的编号
i.
resiPymol>selectmults10,resi1+10+100
residue-identifier-range
Pymol>selectnterm,resi1-10altchainsegiflagnumeric_typetext_typeidindexss
alternate-conformation-identifier-list
alt
一些单字母的列表,选择具有
Pymol>selectaltconf,alta+b
2
种构型的氨基酸
Pymol>selectfirstch,chaina一些字母(最多4位)的列表Pymol>selectligand,segilig一些字母(最多4位)的列表
chain-identifier-listsegment-identifier-listinternal-index-number
flag-nummertype-nummer一个整数type-string一个整数
Pymol>selectsubset,tt.HA+HC
一些单字母或数字的列表一个整数(0-31)Pymol>selectf1,flag0Pymol>selecttype1,nt.5
c.
s.
f.
nt.
tt.
external-index-numberPymol>selectidno,id23
id