pymol教程-09.7.23 - 图文 下载本文

》》》PyMOL用户指南《《《 09.7.23

PyMOL用户指南

目录

一、 鼠标操作入门 4(这个数字是超链接,ctrl+左键) 1. 启动4 1) 通过鼠标4 2) 通过命令行4 2. PyMOL窗口4 1) Virewer窗口4 2) 外部GUI窗口5 3. 下载PDB文件5 4. 操控视图6

1) 基本鼠标控制6 2) 虚拟滚动球旋转7 3) 移动截面7

4) 改变旋转中心点8 5) 简单回顾9

二、 命令行操作入门9 1. 记录结果9 2. 载入数据9

3. 操控对象(Object)10 1) 原子选择11

2) 对象和选择的着色12 3) 对象和选择的on/off12 4. 改变视点13 5. 保存工作13

1) 脚本和日志文件13 2) 图像文件14 3) 会话文件14 6. 命令行快捷键14

1) 用TAB键完成命令15 2) 用TAB键完成文件名15 3) 自动推理15

7. 其他命令和帮助15

注:页面背景和页脚的图像分别是1GCL、111D的cartoon显示 山东大学 生命科学学院 lswang lab 1 / 39

》》》PyMOL用户指南《《《 09.7.23

三、 命令句法和原子选择16 1. 语法16

1) 选择表达16 2) 原子选择命名16 3) 单字选择符 4) 属性选择符18 5) 选择代数20 6) 宏指令21

2. 从PyMOL中读取Python 22

四、 卡通表示23 1. 背景23 1) 可达性23

2) 美化和精确23 2. 定制化25 1) 卡通类型25 2) 精美螺旋28 3. 二级结构归属29

五、 光线追踪30 1. 重要设置30 2. 保存图片31

六、 立体效果31 1. 支持的立体模式31 2. 制作立体图片31 3. 相关命令31

七、 动画32 1. 概念32

2. 重要命令32 1) Load 2) Mset 3) Mdo 4) Mmatrix 3. 简单举例33 4. 复杂举例33

5. 预览ray-traced动画图片34 1)

Cache_frames

山东大学 生命科学学院 lswang lab 2 / 39

》》》PyMOL用户指南《《《 09.7.23

2) mclear

6. 保存动画34

八、 高级鼠标控制34

1. 选择原子和键 34 2. “pk”原子选择的应用举例35 3. “lb”和“rb”选择 35 4. 构象编辑 35

九、 晶体应用35 1. 晶体对称性35 1) Load 2) Symexp

2. 电子密度图36 1) Load

2) Isomesh和isodot

十、 汇编图形对象(CGO)和Molscript ribbons 37 1. 简介 37 2. Molscript ribbons 37 1) Load

2) Using Molscript 3. 创建CGOs 38 4. CGO参考 38

NOTES:

? 本教程以PyMOL user’s guide为蓝本翻译而来,并引用了其他资料。 ? 本教程只介绍PyMOL在windows系统下的应用

? 本教程以edu1.1版本的PyMOL为准,大硬盘中有此软件

? 本教程是PyMOL的入门教材,故相关问题只是简单介绍而没有深入讲解

? 如果你有疑问或者想深入研究,可通过输入命令help,查看《PyMOL命令》,登陆

PyMOLwiki(http://PyMOLwiki.org)或咨询他人等途径解决疑难 ? 本教程极少的命令可能在你的PyMOL上运行不了,大多是版本问题 ? 译者知识水平有限,可能有不当甚至谬误之处,敬请指正! ? 本教程不断更新,最新版以文件名和页眉的日期为准。

山东大学 生命科学学院 lswang lab

3 / 39

》》》PyMOL用户指南《《《 09.7.23

一、 鼠标操作入门

1. 启动 1) 通过鼠标

打开开始菜单,在程序或所有程序中找到PyMOL并单击。

2) 通过命令行

在Windows下,打开文件和脚本有多种命令选项。 一般地,在“运行”或“命令提示符”中输入:

c:\\program files\\delano scientific\\PyMOL\\PyMOLwin.exe 如果PyMOL没有按默认路径安装,那么就输入正确的驱动器名和路径。 2. PyMOL窗口

PyMOL一般打开两个窗口:Viewer窗口和外部(Tcl/TK)GUI窗口。如下图所示:

PyMOL的两个窗口

GUI是图形用户界面(Graphical User Interface)的缩写,由菜单、按钮、正文框和其他小工具构成。PyMOL默认有两个GUI:内部GUI在Viewer窗口内显示;外部GUI在它自己的窗口显示。之所以这样的原因既烦琐又专业,但我们知道两个GUI最终会统一为一个界面。

1) Viewer窗口

PyMOL的Viewer是PyMOL系统的心脏。这是一个开放式图形语言(OpenGL)窗口,所有的3D图形在此展示,并且用户可直接操纵这些图形。

山东大学 生命科学学院 lswang lab

4 / 39

》》》PyMOL用户指南《《《 09.7.23

PyMOL的Viewer窗口和内部GUI(默认)

窗口内右边的内部GUI可使用户对特定对象(object)和特定原子选择(atom selection注意:原子选择是用户选择了的原子、残基、链、片段、对象等等,相对object而言)进行操作。从上到下,内部GUI包括对象列表、鼠标按钮配制矩阵、结构指示器和一套VCR(动画控制)。

窗口底部还有一个命令输入区。在Viewer窗口也能查看PyMOL的文本输出(text output),任何时候都可以按ESC在文本输出和图形模式间进行切换。

Viewer完全可以自己运行,它拥有PyMOL核心系统的全部功能。如果想这样的话,完全可去除命令和内部GUI。通过标准菜单和控制,许多任务能更简单高效的完成。在外部GUI可以找到绝大部分的功能选项。

2) 外部GUI窗口

默认的Tcl/TK外部GUI

默认状态下,外部GUI包括标准菜单栏、输出区、命令输入区和一系列按钮。外部GUI 窗口的一个好处是能够对正文进行剪切和粘贴,而在Viewer中却没有此功能。另外,必须用Ctrl?X、Ctrl?C和Ctrl?V进行剪切、复制和粘贴操作,因为在标准编辑菜单中没有这些功能。

3. 下载PDB文件

? 通过外部GUI菜单:默认的外部GUI在File菜单有Open选项,可由此打开选择的文件。 ? 通过命令:

语法 load #载入本地存在的PDB文件 fetch #直接从网上下载,不用加后缀

例如 load test/dat/pept.pdb fetch pept

山东大学 生命科学学院 lswang lab

5 / 39

》》》PyMOL用户指南《《《 09.7.23

载入pdb文件后的PyMOL

4. 操控视图

在PyMOL中,鼠标是主要的控制设备,键盘的修饰按键(SHIFT,CTRL,SHFIT+CTRL)在调整按钮操作时使用。为了有效使用PyMOL,建议选择带有三个按键的鼠标。

1) 基本的鼠标控制

鼠标的滚动轮的可当做中键使用。

下表是基本的鼠标按钮和键盘结合的操作功能:

键盘 Shift Ctrl 鼠标左键 中键 右键 旋转图像(虚拟滚在XY上移动图像在Z上移动图像动球rotate) (translate平移) (zoom变焦) 移动截面 山东大学 生命科学学院 lswang lab

6 / 39

》》》PyMOL用户指南《《《 09.7.23

Shift+Ctrl 2) 虚拟滚动球旋转 回到旋转起始

虚拟滚动球

虚拟滚动球犹如在视野中有个可见的球。当你在屏幕点击拖拽时,好像你的手指按在了球上进行相似的操作。如果在球体外点击拖动,仅能在Z轴上做环形旋转;在球体上点击拖动就能在XY面上旋转。

3) 移动截面

截面是在分子前后想象中的平面。截面外的分子部分将会被切除,从而显示出内部。在复杂或大分子中截面非常有用。

截面示意图(hither这边的近处的,yon那边的远处的)

PYMOL的截面控制需要鼠标和键盘结合,如下图示:SHIFT+右键,当鼠标上下拖动时会调

7 / 39

山东大学 生命科学学院 lswang lab

》》》PyMOL用户指南《《《 09.7.23

整前截面,左右拖动时调整后截面。

截面的控制

也可以对角线拖动改变截面的显示,如下图:

对角移动截面改变可见的“wedge”

4) 改变旋转中心点

观察分子图像时,常常需要改变旋转的中心点,快捷方式是“ctrl+shift+中键”点击目标原子。

山东大学 生命科学学院 lswang lab

8 / 39

》》》PyMOL用户指南《《《 09.7.23

5) 简单回顾

至此,应该能够完成如下任务: ? 载入PDB。

? 旋转、平移、缩放图像。

? 调整前截面和后截面,以便更清楚地观察分子的切片图。 ? 改变任何感兴趣的原子为选旋转中心。

二、 命令行操作入门

此部分介绍典型常用的命令,命令语法的详细内容见《PYMOL命令》 。 PYMOL语言是事件敏感的(case-sensitive),但是前一个事件不能应用到当前的命令中,所以谨记一定要对下一个事件输入必要的命令。 1. 记录结果

当在PYMOL上操作时,如果想记录下完成的操作步骤,可创建一个日志文件(log-file): 语法

log_open log-file-name 例如

PyMOL> log_open log1.pml

无论是输入的还是点击的命令都会记录在log-file中。文件扩展名是“.pml”,这样可以把文件作为脚本在新会话中打开。

输入log_close命令可以停止记录,如果不输入此命令,日志文件会一直记录存盘直到关闭PYMOL。

如果仅想保存PYMOL当前的状态而不关心操作步骤,可创建一个会话文件(session-file)。 2. 载入数据

山东大学 生命科学学院 lswang lab

9 / 39

》》》PyMOL用户指南《《《 09.7.23

从文件中载入PDB,命令如下 语法

load data-file-name 例如

PyMOL>load $PyMOL_path/test/dat/pept.pdb 命令输入后,PYMOL会打开读取“pept.pdb”,创建并命名相应的对象,在Viewer中显示图像并在控制板中添加对象。

默认状态下,PYMOL会在文件读取后命名对象,当然也可以重命名对象: 语法

load data-file-name,object-name 例如

PyMOL>load $PyMOL_path/test/dat/pept.pdb #对象命名为“pept” #文件扩展名不会出现在对象名中

PyMOL>load $PyMOL_path/test/dat/pept.pdb,test #对象命名为“test” (“#”是注释标志,在命令行中,#后输入任何信息都不会被PYMOL读取)

上面载入文件的命令是典型的PYMOL语法。load是关键词,它要求PYMOL去执行一定的功能。data-file-name和object-name是要load的参数,这些参数告诉PYMOL载入什么文件和命名文件。一般而言,参数对关键词来说仅提供运行命令需要的信息。

3. 操控对象(manipulating object)

对象的操控既可用鼠标,也可用命令。例如,改变默认的表示形式(representation)lines到sticks,首先删除lines然后显示sticks:

语法

hide representation hide representation 例如

PyMOL>hide lines #以lines显示的对象消失 PyMOL>show sticks #以sticks显示的对象出现

其他的表示形式还有cartoon,ribbons,dots,spheres,meshes和surfaces等(见“表示形式”)。

当用命令show时,新的表示形式出现,但原来的表示形式不消失,非常恼人,可用下面的命令解决这个问题:

语法

as representation 例如

PyMOL>as sticks #不论原来显示多少种表示形式,命令后只显示sticks一种

在显示有配体存在的对象时,有时显示不出配体,可通过下面方法解决: 例如

fetch 1biw #载入对象1biw,它有一个配体 as cartoon #配体存在但却没被显示

然后通过鼠标操作,点击内部GUI的S菜单 > organic > spheres,就可以看到配体了。

山东大学 生命科学学院 lswang lab

10 / 39

》》》PyMOL用户指南《《《 09.7.23

1) 原子选择

原子选择(atom selections)可以操控分子中一部分原子或化学键。PyMOL精于对原子或

残基的选择、分组和命名。你可以只用一次选择,也可以重命名以便再次使用。例如你可以缩放(zoom)选择的“on the fly”:

语法

zoom selection-expressions #选择原子进行缩放 例如

PyMOL>zoom resi 1-10 #resi是选择符

#选择氨基酸残基 #给出PDB序列号 #“1-10” 是标识符

Selection-expressions可以是单个词也可以是长复杂句。一个Object-name也可能是

selection-expression。默认的selection-expression是all,即当前载入的所有原子。如果命名选择,你将能够操作它任意次。对象(object)和选择(selection)的名字可以是大小写字母(A/a到Z/z)、数字(0到9)和下划线(_),下面的字符是不可以的:

! @ # $ % ^ &* ( ) ' \首先,命名选择: 语法

select selection-name,selection-expression 例如

PyMOL>select boy007,resi 1-10 #选择残基并命名为“boy007” 然后使用这个名称: 语法

zoom selection-name

hide representation,selection-name show representation,selection-name 例如

PyMOL>zoom boy007

PyMOL>hide everything,boy007 PyMOL>show spheres,boy007

当创建一个selection-name后,PYMOL会在控制面板显示出,以便利用面板里的控制功能(见“PYMOL命令”)。

命名的选择(named-selection)如“boy007”和PYMOL的对象(object)是有本质区别的。当载入文件时PYMOL创建object-name用来盛放数据,而选择是指向一组数据的方式。为了区别selection-names和object-names,在控制面板里selection-names用括号括起来。当删除了selection-name,在object-name下的数据仍然存在,但这些数据不再以selection组织起来。相反,当删除了object,必须重新载入数据才能再进行相关操作。

语法

delete selection-name delete object-name 例如

PyMOL> delete boy007 #boy007消失,object仍在

山东大学 生命科学学院 lswang lab

11 / 39

》》》PyMOL用户指南《《《 09.7.23

PyMOL> delete pept #“pept”里的所有原子和化学键都消失了

2) 对象和选择的着色

你可以对selections和objects应用不同的颜色。在settings/colors菜单里有预定义的color-names,也可以在控制面板里进行颜色选择。(更多颜色命令见“设置”部分)

语法

color color-name #整个object被着色 color color-name,selection-expression #selection被着色 例如

PyMOL>color white PyMOL>color orange,pept PyMOL>color green,resi 50+35+56 PyMOL>color yellow,resi 24-35 PyMOL>color blue,boy007 PyMOL>color red,ss h

PyMOL>color red,ss s PyMOL>color green,ss l+’’

最后三个例子中ss是二级结构的选择符,h表示helix,s表示beta sheet,l+’‘表示loops和非特定结构。

3) 对象和选择的on/off

PYMOL可同时呈现多个对象。disable和enable命令可以消除对象的显示,但仍能够通过命令控制它的属性。

语法

enable object-name 例如

PyMOL>load $PyMOL_path/test/dat/fc.pdb PyMOL>load $PyMOL_path/test/dat/pept.pdb

PyMOL>disable pept #pept完全从viewer中消失

PyMOL>color yellow,name c+o+n+ca #在fc和pept中的主链原子都被着为黄色,但是pept的原子仍然是不可见的。

PyMOL>enable pept #pept原子可见了并显示为黄色 通过disable命令可以删除命名选择时出现的粉红点(pink dots): 语法

disable selection-name 例如

PyMOL>select bb,name c+o+n+ca #选中的原子在viewer中以pink dots显示

PyMOL> disable bb #pink dots消失,命名选择“bb”仍可见 PyMOL>color red,bb #仍然可以操控 “bb”

山东大学 生命科学学院 lswang lab

12 / 39

》》》PyMOL用户指南《《《 09.7.23

4. 改变视点

鼠标拖动分子往往是最简单的显示操纵方法,然而输入命令如zoom和orient却是一种

不同的方式。Zoom(变焦)命令可使对象或选择在视野中央显示:如果对象或选择没显示在当前的视野,命令会使它显示;如果当前视野仅显示了一小部分,命令会使它充满视野。

语法

zoom selection-expression

当你想重新查看分子时,Orient命令是十分有用的。它会调整对象或选择,使其最大维度水平显示,次最大维度垂直显示:

语法

orient selection-expression

你可以保存定向(store orientation)并在后面的新会话中通过命令view调用(recall)它,保存定向仅是保存viewer中对象的视角(viewpoint),不保存它的表示形式(representation)。为了在新会话中调用,需要命名保存的定向。

语法

view name,action #action是store或recall 例如

PyMOL>view v1,store #当前视野被命名为v1并保存 PyMOL>view v1,recall #调用保存的v1定向

PyMOL>view v1 #recall是默认的view语句,所以此命令行也是调用v1

关键词view仅是在当前会话中保存定向,后面的章节将会讲述如何在不同会话中保存定向。 5. 保存工作

PyMOL保存工作的种种过程:1.在给出一系列命令前,启动进程把命令记录在纯文本日志中,并作为脚本使用。2.在会话的任何时候,都可以创建一个会话文件保存程序的内存状态,供以后调用此状态。3.创建图形文件保存viewer中的图像。

1) 脚本和日志文件(Scripts and Log Files)

PyMOL的脚本只是个文本文件,如日志文件,它由被回车分隔的命令行组成。当PyMOL载入脚本时,其中的命令就会被执行。PyMOL脚本文件的扩展名是“.pml”,虽然此扩展名不是严格要求的,但也是最好的选择。

你可以把日志文件当脚本使用,也可以在文本编辑器如emacs,jot或notepad创建脚本。当在单独的窗口使用PyMOL时,打开文本编辑器往往十分有用,命令就可在这两个程序间复制粘贴。

你可以输入命令log_open log-file-name或点击“File”菜单的“log”创建新的日志文件。你也可以在“File”菜单选择“append(附加)”或“resume(重新开始)”,把命令行写入现有的日志文件中。如果点击“resume”,现有的日志文件是第一次作为脚本载入PyMOL,随后的命令会写入此文件。

一旦你创建了日志文件,PyMOL将会记录保存所有的命令信息,不论是输入的命令还是点击的按钮。

但是,为了把分子的定向保存在日志文件中,需输入命令get_view或使用GUI按钮。

13 / 39

山东大学 生命科学学院 lswang lab

》》》PyMOL用户指南《《《 09.7.23

在会话中get_view很方便,随后可编辑日志文件选择最好的定向。 Windows系统下,可以双击脚本图标,点击“File”菜单的“Run”选项或者输入命令”@”打开一个脚本:

语法

@scripe-file-name 例如

PyMOL>@my_script.pml

通过命令启动PyMOL时可同时打开目标脚本(在“运行”或“命令提示符”中) 语法

PyMOL scipt-file-name 例如(Windows)

C:\\>PyMOL.exe my_script.pml

2) 图像文件

当你想保存图片时,最好先光线追踪进行渲染来提高图片的质量。光线追踪(ray tracing)显示了在三维世界中光线是如何反射和影子是如何形成的。关键词ray要求PyMOL在viewer中重绘(redraw)和显示图片(详情见“光线追踪”部分)。

保存图片到文件,可点击“File”中的“Save image”或输入png命令: 语法

png file-name 例如

PyMOL>png pep #图片pep.png被保存在PyMOL安装默认的文件夹中。 PyMOL>png d:/boy/pep #图片pep.png被保存在d盘的boy文件夹里。 Png格式的图片还可通过ImageMagick等软件转换成其他格式。 注意:图片的大小是随viewer窗口的大小而变化的。

3) 会话文件(Session Files)

如果想返回到PyMOL当前的状态,可通过创建会话文件实现(点击File菜单中的Save Session,命名以“.pse”为扩展名的文件)。PyMOL的会话文件是对PyMOL存储状态的符号记录,包括载入或创建的对象、创建的选择和viewer中的显示。

当打开保存的会话文件,PyMOL会返回到保存的状态。因为一个会话文件代表了一个存储状态,所以打开一个会话文件意味着当前PyMOL存储的所有东西都会被清除并被来自会话文件的存储状态替代。

会话文件和日志文件或脚本有许多不同。日志文件必须在你想保存给出的命令前创建,而会话文件可以在任何时候创建。会话文件通过File菜单的Open选项调用,而日志文件被作为脚本通过Run选项启动。会话文件不能被人工编辑,而日志文件和脚本却可以。

在PyMOL会话中,关键点上创建会话文件是个好主意,例如当你决定探讨(explore)多种选项时。通过这种方式,会话文件可被用来替代PyMOL没有的“undo”程序。你完全可以通过连续的会话文件存储PyMOL任意数量的状态,然后由此恢复到这些状态或有效地撤销你的操作。

6. 命令行快捷键

山东大学 生命科学学院 lswang lab

14 / 39

》》》PyMOL用户指南《《《 09.7.23

1) 用TAB键完成命令

输入命令的前几个字母然后按Tab键,PyMOL就会自动完成命令或列出符合语法的命令表,例如:

PyMOL>sel

#按Tab键就会出现下面的显示 PyMOL>select

如果不输入命令直接按Tab键,那么PyMOL会输出全部命令的列表。

2) 用TAB键完成文件名

一些要载入的文件有非常长的路径和文件名,当你按Tab键,PyMOL会自动完成明确的路径和文件名,例如:

PyMOL>load cry

#如果cystal.pdb存在于当前工作目录中,按Tab键就会产生下面的命令行 PyMOL>load cystal.pdb 如果文件名含糊不清,PyMOL就会自动匹配并输出目录中匹配的文件名,然后选择一个输入。

3) 自动推理

在PyMOL命令中有一小部分的固定字符串,例如:

PyMOL>show sticks中,对show来说sticks就是一个固定的字符语句。因为跟在show后的语句有限,所以当你仅输入几个缩写字母PyMOL就能识别,例如:

PyMOL>show st 此命令和show sticks等效。 关键词也可缩写,PyMOL>sh st同样奏效。 注意:PyMOL的命令语言在不断地增长和发展,所以在脚本中使用全长的命令和字符语句非常重要。否则,以后的命令可能使缩写变得含糊不清。例如当“shutoff”加入命令语句后,“sh st”就不会奏效了。

7. 其他命令和帮助

此“入门”部分通过简单的例子介绍了常用的命令,在《PyMOL命令》中有全部命令的详细介绍。在PyMOL中可输入help按回车查看全部关键词(keyword)的列表,如果想查看某个命令的帮助:

语法

help keyword 例如

PyMOL>help load

PyMOL将会在外部GUI脚本语言和viewer中显示命令指南。

不必记住所有的关键词,输入help和关键词的前一个或几个字母,然后按Tab键,脚本语言就会显示可能的关键词列表。点击viewer再按Esc键会在分子图像和命令语言显示间来回切换。

山东大学 生命科学学院 lswang lab

15 / 39

》》》PyMOL用户指南《《《 09.7.23

三、 命令语法和原子选择

1. 语法

典型的PyMOL命令总是以指导PyMOL执行一定任务的关键词开始,以回车结束。 ? 最简单的命令仅有关键词,如输入quit将会强制结束PyMOL会话,quit后从不跟其他语句。

? 许多命令有默认语句,所以当你只输入关键词,PyMOL就会默认剩下的语句。如zoom的默认语句是选择(selection-expression)all,也就是说不用再输入all了。

? 有些关键词,需要部分语句,而其余语句被默认。如关键词color需要color—name语句,而默认语句是all:

语法

Color color-name

Color color-name, selection-expression 例如

PyMOL>color red #所有的显示被着为红色

PyMOL>color red,name ca #仅C-alpha原子被着为红色

当输入一个命令有多个语句时,要用逗号隔开。一次输入多个命令时要用分号隔开。

1) 选择表达(selection-expressions)

selection-expressions指PyMOL命令中语句的原子列表,描述了指定引用的一组原子,这些原子大多需要标识符(identifier)来完成指定。如选择符(selector)resi指定残基,标识符给出序列号;选择符name指定原子,标识符给出PDB中描述的名字(ca代表alpha碳,cb代表beta碳)。只有一小部分selection-expressions不需要标识符,但大部分都要。

PyMOL应用逻辑算符增加selection-expressions的一般性和特殊性。选择符逻辑组合能变得很复杂,所以PyMOL能够识别以最少击键输入的缩略语和宏指令。这个部分讲述如何命名选择,然后讲述用缩略语和宏指令做选择的语法。

2) 原子选择命名

select命令命名原子选择: 语法

select selection-name, selection-expression

# selection-name和 selection-expression是select的两个语句,需用逗号隔开 例如

PyMOL>select bb,name c+o+n+ca PyMOL>color red,bb PyMOL>hide lines,bb PyMOL>show sticks,bb PyMOL>zoom bb

此例中,selection-expression是属性选择符name,它选择标识符c+o+n+ca完成指定。属性选择符和它的标识符在下面讨论。

命名的原子选择(atom-selections)出现在控制面板的名称列表中,它们被括号括起来以

山东大学 生命科学学院 lswang lab

16 / 39

》》》PyMOL用户指南《《《 09.7.23

区别于对象(objects)。控制面板的菜单选项对原子选择和对象是不同的,因为两者的功能有

微小的差别。选择是建立在对象下的一组数据的指向,当删除对象,数据就不再可用,任何指向这些数据的选择也都不再可用。但是当删除选择,数据仍然可用。Disable对象是从viewer显示中删除它,而disable选择仅是关闭viewer中高亮显示选择的粉红点。

原子选择无论命名与否,都能跨越多个对象: PyMOL>load fc.pdb PyMOL>load pept.pdb

PyMOL>select alpha_c,name ca #选择包括了两个对象中的原子 PyMOL>color red,name ca

原子选择在分子结构改变后仍然奏效: PyMOL>load pept.pdb

PyMOL>select bb,name c+n+o+ca

PyMOL>count_atoms bb #bb中数有52个原子

PyMOL>remove resi 5 #从对象中删除残基5中的所有原子 PyMOL>count_atoms bb #现在bb中数有48个原子

原子选择是静态的(static),选择所包含的原子仅仅是选择被定义时刻存在的原子,而不包括其他,即使是在选择范围内后来被载入的原子也不行:

PyMOL>load pept.pdb

PyMOL>select 007,pept #创建选择“007”包括所有的原子 PyMOL>count_atoms 007 #“007”中数有107个原子 PyMOL>h_add #PyMOL在合适的位置加氢 PyMOL>count_atoms 007 #“007”中数有107个原子

PyMOL>count_atoms #而“pept”中却数有200个原子

原子选择能够被后面的原子选择利用:

PyMOL>select bb,name n #选择“bb”包含所有氮原子

PyMOL>select cc,bb or name o #选择“cc”包含所有氮原子和氧原子 注意:逻辑运算符“or” “and”的含义等同于代数中的“或”“且”。

3) 单字(single-word)选择符

最简单的selection-expression是单字选择符,这些选择符没有标识符。 单字选择符 缩略选择符 描述 all * 当前载入PyMOL的所有原子 none none 没有原子,空选择 hydro h. 当前载入PyMOL的所有氢原子 山东大学 生命科学学院 lswang lab

17 / 39

》》》PyMOL用户指南《《《 09.7.23

从Protein Data Bank HETATM records中载入的所有原子 visible v. 至少有一种可见表示形式的enabled对象中的所有原子 present pr. 当前状态下有确定坐标的所有原子(用于创建动画) 选择符none在向PyMOL直接输入命令时不会出现,但在程序脚本中十分有用。 单字选择符有缩略形式,一些缩略词后必须跟着圆点或空格,用来界定字符。缩略词和长字符等效,选择你自己喜欢的形式即可:

PyMOL>color blue,all

PyMOL>color blue,* #所有原子变成蓝色

PyMOL>hide hydro

PyMOL>hide h. #所有的氢原子的表示形式被隐藏

PyMOL>show cartoon,hetatm #PDB输入文件中被定义为HETATM的 PyMOL>show cartoon,het #所有原子显示为cartoon

4) 属性选择符

PyMOL能够读取PDB,MOL/SDF,Macromodel,ChemPy Model和Tinker XYZ格式的数据文件。这些格式文件的某些数据区允许PyMOL为原子指定属性。根据这些属性,你可以应用属性选择符和标识符对原子进行分组和选择:选择符对应于数据文件的这些数据区,标识符对应于匹配的目标词或目标数字。

在标识符列表中不同的项目仅用“+”连接,不要有空格,连续的选择用“-”连接: PyMOL>select boy,resi 1+2+3 #残基1、2和3被选择 PyMOL>select 007,resi 1-10 #残基1到10被选择 谨记在同一标识符后不可同时出现“+”“-”,如“select bad,resi 1-4+9”。

对于空白数据区,标识符是一对空的双引号:

PyMOL>select blank,ss “” #blank包含非二级结构的所有原子

大多数的属性选择符匹配它的标识符: 属性选择符 缩略形式 标识符和举例 symbol e. Chemical-symbol-list 单字母或双字母的化学元素符号 PyMOL>select polar,symbol o+n name n. Atom-name-list 蛋白和核酸中至多4字母的原子符号 PyMOL>select carbons,name ca+cb+cg resn r. Residue-name-list hetatm het 山东大学 生命科学学院 lswang lab

18 / 39

》》》PyMOL用户指南《《《 09.7.23

3字母的氨基酸符号 PyMOL>select aas,resn asp+glu+asn+gln 或至多2字母的核苷酸符号 PyMOL>select bases,resn a+g resi i. Residue-identifier-list 至多4位数的残基号 PyMOL>select boy,resi 1+10+100+1000 Residue-identifier-range PyMOL>select boy,resi 1-10 alt alt Alternate-conformation-identifier-list 单字母 PyMOL>select altconf,alt a+’‘ chain c. Chain-identifier-list 单字母或有时是数字 PyMOL>select 007,chain a segi s. Segment-identifier-list 至多4字母 PyMOL>select ligand,segi lig flag f. Flag-number 从0到31的单整数 PyMOL>select f1,flag 0 numeric_type nt. Type-number 单整数 PyMOL>select f1,nt. 5 text_type tt. Type-string 至多4字母 PyMOL>select subset,text_type HA+HC id id External-index-number 单整数 PyMOL>select idno,id 23 index idx. Internal-index-number 单整数 PyMOL>select intid,index 11 ss ss Secondary-structure-type 单字母 PyMOL>select allstrs,ss h+s+l+’‘ 其他的选择符对应于数字标识符: 数字选择符 缩略形式 语句和举例 b b Comparison-operator b-factor –value 实数 PyMOL>select fuzzy,b>10 Comparison-operator occupancy-value 实数 19 / 39

q q 山东大学 生命科学学院 lswang lab

》》》PyMOL用户指南《《《 09.7.23

formal_charge fc. partial_charge pc. PyMOL>select lowcharges,q<0.5 Comparison-operator formal charge-value 整数 PyMOL>select doubles,fc.=-1 Comparison-operator partial charge-value 实数 PyMOL>select hicharges,pc.>1

5) 选择代数

通过逻辑运算符的组合,选择更富有精确性或包含性,这些算符即布尔算符包括and,or和not,它们的含义和代数中的“且”“或”“非”同义。

运算符:

选择运算符和标识符列表如下。虚设的变量s1和s2代表selection-expressions. 运算符 缩略形式 效果 选择不在s1中的原子 not s1 ! s1 PyMOL>select sidechains,! bb 选择s1和s2中共有的原子 s1 and s2 s1 & s2 PyMOL>select far_bb,bb&farfrm_ten s1︱s2 选择s1和s2中的所有原子 s1 or s2 PyMOL>select all_prot,bb︱sidechain 选择s1中标识符name,resi,resn,chain,segi全匹s1 in s2 s1 in s2 配s2的原子 PyMOL>select same_atms,pept in prot 选择s1中标识符name和resi匹配s2的原子 s1 like s2 s1 l. s2 PyMOL>select similar_atms,pept like prot 选择范德华半径与s1的范德华半径 s1 gap x s1 gap x 以最小距离x埃分离的所有原子 PyMOL>select farfrm_ten,resi 10 gap 5 选择中心在以s1任何原子为中心,以x埃为半径的s1 around x s1 a. x 范围内的所有原子 PyMOL>select near_ten,resi 10 around 5 通过在以s1任何原子为中心,以x埃为半径的范围s1 expand x s1 e. x 内的所有原子扩充s1 PyMOL>select near_ten_x,near 10 expand 3 s1 within x of s2 s1 w. x of 选择s1中在s2 x埃范围内的原子 山东大学 生命科学学院 lswang lab

20 / 39

》》》PyMOL用户指南《《《 09.7.23

byres s1 byobject s1 neighbor s1 s2 br. s1 bo. s1 nbr.s1 PyMOL>select bbnearten,bb w. 4 of resi 10 扩充s1到残基 PyMOL>select complete_res,br. bbnear10 扩充s1到对象 PyMOL>select near_obj,bo. Near_res 选择直接以化学键连接s1的原子 PyMOL>select vicions,neighbor resi 10 逻辑选择可被组合。例如,你可以选择部分链a的原子,但不包括残基125: PyMOL>select 007,chain a and (not resi 125)

PyMOL>select boy,(name cb or name cg1 or name cg2) and chain a #这两个 PyMOL>select girl,name cb+cg1+cg2 and chain a #命令是等效的

逻辑运算像算术运算一样是有顺序的,为确保操作正确执行,必要时使用括号: Byres((chain a or (chain b and (not resi 125))) around 5) PyMOL是从最内的括号向外逻辑选择的。

6) 宏指令

宏指令使表达长复杂语句的原子选择成为可能,如:

PyMOL>select boy,pept and segi lig and chain b and resi 142 and name ca 用精简方式表示:

PyMOL>select boy, /pept/lig/b/142/ca 宏指令用正斜杠来界定标识符。

宏指令通过布尔算符“and”选择原子,也就是说,选择的原子必须全部匹配标识符: /object-name/segi-identifier/chian-identifier/resi-identifier/name-identifier

这些标识符形成了一个等级串,以object-name 为首,以name-identifier为尾。PyMOL将宏指令当做一个词来识别,所以宏指令中不能有空格。

宏指令有两种形式:以正斜杠开头的和不以正斜杠开头的。宏指令开头正斜杠的存在与否决定了宏指令的读取方式。

如果以正斜杠开头,PyMOL按从头到尾的方式读取:

/object?name/segi?identifier/chain?identifier/resi?identifier/name?identifier /object?name/segi?identifier/chain?identifier/resi?identifier /object?name/segi?identifier/chain?identifier /object?name/segi?identifier /object?name 例如

PyMOL> zoom /pept

PyMOL> show spheres, /pept/lig/ PyMOL> show cartoon, /pept/lig/a PyMOL> color pink, /pept/lig/a/10

PyMOL> color yellow, /pept/lig/a/10/ca

山东大学 生命科学学院 lswang lab

21 / 39

》》》PyMOL用户指南《《《 09.7.23

如果不以正斜杠开头,PyMOL按从尾到头的方式读取: resi?identifier/name?identifier

chain?identifier/resi?identifier/name?identifier

segi?identifier/chain?identifier/resi?identifier/name?identifier

object?name/segi?identifier/chain?identifier/resi?identifier/name?identifier 例如

PyMOL> zoom 10/cb

PyMOL> show spheres, a/10?12/ca PyMOL> show cartoon, lig/b/6+8/c+o PyMOL> color pink, pept/enz/c/3/n

你也可以忽略正斜杠间的内容, 忽略的内容将会被当做通配符,如下所示: resi?identifier/

resi?identifier/name?identifier chain?identifier//

object?name//chain?identifier 例如

PyMOL> zoom 142/ # 残基142充满viewer.

PyMOL> show spheres, 156/ca #残基156的alpha碳以sphere显示 PyMOL> show cartoon, a// # Chain \显示为cartoon.

PyMOL> color pink, pept//b # object \的Chain \着为粉红色

为了区别于选择中的其他词,宏指令必须至少包含一个正斜杠。作为一个完整的词,中间不能有空格。宏指令转换成长复杂语句形式后才被提交执行,懂得这点对理解错误信息很有帮助。

2. 从PyMOL中读取Python

Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言。

单行的Python命令语句可以直接从PyMOL中发出,如: PyMOL>print 1+2 3

充分利用Python标准库函数,你可以给符号(symbols)指定结果: PyMOL>import time

PyMOL>now = time.time() PyMOL>print now 1052982734.94

在PyMOL命令脚本中可以有多行的Python模块,这些命令行(除了最后一行)以反斜杠('\\')结尾表示命令继续:

PyMOL> for a in range(1,6): \\ PyMOL> b = 6 ? a \\ PyMOL> print a, b 1 5 2 4

山东大学 生命科学学院 lswang lab

22 / 39

》》》PyMOL用户指南《《《 09.7.23

3 3 4 2 5 1

注意:Python命令语言仅能在当前PyMOL支持的Python版本上使用,通过在PyMOL中输入命令print sys.version查看支持的Python版本,也可以确定输入的Python命令是否被当前PyMOL支持。

四、 卡通表示

1. 背景 1) 可达性

PyMOL的竞争对手如流行的Molscript/Raster3D软件中也有Cartoon ribbons,但PyMOL却能非常容易地制作高质量的图片。由于PyMOL能直接读取Molscript的结果(见Molscript章节),所以能很方便的使用PyMOL的Cartoon ribbon功能:

PyMOL的ribbon \

Molscript的Cartoon更理想一点点,但PyMOL却相当缜密。 注意:本章节的所有的图片都用rainbow和ray-trace处理了。

2) 美化和精确

PyMOL cartoon ribbon功能的一大好处是很容易的在二级结构平滑(smoothed)版本间转换和精确(correct)表现实际主链的坐标。Cartoons常作为蛋白结构的示意图,有时就希望它能够在特定位点展现原子分辨率级别的图形。然而,除非碳骨架有alpha?carbon位点,否则结果图形会看起来有点愚蠢:

山东大学 生命科学学院 lswang lab

23 / 39

》》》PyMOL用户指南《《《 09.7.23

在上图中,侧链浮离到了空间。点击setting菜单cartoon的禁用\或输入命令 set cartoon_flat_sheets, 0

将会使beta条带沿骨架的正确路径延伸并给出更精确的结构描述

当关闭smoothing功能后,整个分子的cartoon表现将会有实质性的改变: 例如当smoothing开启时: set cartoon_flat_sheets, 1 set cartoon_smooth_loops, 1

山东大学 生命科学学院 lswang lab

24 / 39

》》》PyMOL用户指南《《《 09.7.23

关闭后:

set cartoon_flat_sheets, 0 set cartoon_smooth_loops, 0

这更精确反应了肽骨架的正确路径:

记住:真正的结构比你看到的更复杂一些。

2. 定制化(customization) 1) 卡通类型(cartoon types)

当分子二级结构所有残基的信息被定义后就能得到最好的结果,在这种情况下,PyMOL将

山东大学 生命科学学院 lswang lab

25 / 39

》》》PyMOL用户指南《《《 09.7.23

会保证螺旋区域被高标准地计算并在合适的位置表现出平滑的环(loop)。

同样在这种情况下,自动模式会指定二级结构类型为cartoon。但是,你可以命令PyMOL忽略这些信息,并人工操纵表示形式。

Show cartoon

Cartoon automatic #默认的

Cartoon loop(环形)

Cartoon rect(矩形)

山东大学 生命科学学院 lswang lab 26 / 39

》》》PyMOL用户指南《《《 09.7.23

Cartoon oval(椭圆)

Cartoon tube(管状)

cartoon tube, 1:49/

cartoon tube,1-49/ #前两个命令等效:残基1到49显示为cartoon tube cartoon arrow, 50:99/

山东大学 生命科学学院 lswang lab

27 / 39

》》》PyMOL用户指南《《《 09.7.23

cartoon loop, 100:149/ cartoon oval, 150:199/ cartoon rect, 200:250/

所有的cartoon ribbons通过set命令可设定相应的参数来改变它们的显示,详情见“设置”。

2) 精美螺旋(fancy helices)

set cartoon_fancy_helices,0 #关闭fancy helices

有管状边的Ribbon螺旋:

set cartoon_fancy_helices, 1 #开启fancy helices

山东大学 生命科学学院 lswang lab

28 / 39

》》》PyMOL用户指南《《《 09.7.23

3. 二级结构归属(assignment)

建议你使用有正确二级结构归属的PDB文件,这些归属来自像DSSP的程序。但是,PyMOL也有快速合理的二级结构归属算法,即“dss”。需要清楚的一点是由于两可案例中对二级结构归属的主观因素,dss的结果可能会不同于DSSP:

语法

dss selection 例如 dss 1dfr

通过下面的命令,你可以对比一下dss和PDB二级结构的不同: fetch 2bya #载入对象2bya

copy boy,2bya #复制对象,命名为boy as cartoon #显示cartoon color red,boy color green,2bya

dss boy #对boy计算二级结构 然后你就会看出boy和2bya的不同之处了。

如果你在看动画,可能会希望从动画的某一特定状态得到二级结构归属,可以这样做到: 语法

dss selection, state 例如

dss mov, 1

为了人工改变属性,最好的方式是使用alter命令: show cartoon

alter 11?40/, ss='H' #指定residues 11?40 为helix

山东大学 生命科学学院 lswang lab

29 / 39

》》》PyMOL用户指南《《《 09.7.23

alter 40?52/, ss='L' #指定residues 40?52为loop alter 52?65/, ss='S' #指定residues 52?65为sheet alter 65?72/, ss='H' #指定residues 65?72为helix rebuild #重建cartoon

五、 光线追踪(ray tracing)

光线追踪能制作出最高质量的分子图像。PyMOL是第一个拥有高速光线追踪器的全功能分子图像程序。

OpenGL Rendering (real?time manipulation) Ray?traced Rendering (seconds or minutes per frame)

通过ray命令或点击“Ray Trace”按钮,可以光线追踪PyMOL内的任意图像。内置的光线追踪器也使组配高质量的动画成为可能。

1. 重要设置

通过\命令可以改变设置。除非另外说明,否则这些设置只应用到光线追踪器而不是OpenGL渲染器。以后这两种渲染器会进行一些调和,所以值得提醒的是将来这些设置可能会改变。

一般情况下,你需要改的设置仅是orthoscopic(正视的), antialias(普通显示效果), gamma(灰度系数)。如果你对酶活性位点的阴影不满意,可以增大direct值到0.5—0.7,这样就能提高亮度和反差。

orthoscopic (0 or 1) 控制着OpenGL 渲染器是否和光线追踪器使用同样的正视变换(orthoscopic transformation)。当设置为1时OpenGL和raytracing图像的像素是匹配的

ambient (0.0?1.0) 控制OpenGL和ray?tracer的环境光强度。

ambient_scale (float:单精度浮点数表示) 控制OpenGL和ray?tracer的相对环境光强度。

antialias (0 or 1) 产生一个\图片 (质量最好, 但加长4倍).

direct (0.0?1.0) 由相机(camera)产生的planer light(面板灯?or刨光灯?)强度。 gamma (0.1?2.0) 渲染完成后应用玻璃转换(gamma transformation)。

山东大学 生命科学学院 lswang lab

30 / 39

》》》PyMOL用户指南《《《 09.7.23

light (vector:矢量表示) 光线的照射方向.

例如:set light,(1,1,1) #光线沿矢量(1,1,1)射向对象

set light,(0,0,0) #光线消失或者全方位照射?实际是图像变暗 reflect (0.0?1.0) 由光源产生的planer light强度。

spec_reflect (0.0?1.0)光镜面反射(specular reflection)的强度。

spec_power (1?100) how localized is the specular reflection (higher=smaller).

2. 保存图片

所有的图片都能保存为PNG格式,通过\命令或\菜单的\选项。图片通常被保存为和viewer 窗口一样的大小:

ray

png my_image.png

通过下面的命令可改变图片大小: 语法

ray width,height #宽和高都必须是整数,它们的默认是零或当前窗口大小 例如

ray 1024,480

更多关于ray的信息通过命令“help ray”获得。

六、 立体效果

PyMOL能够支持几种不同的立体图形模式。

1. 支持的立体模式 Crosseye stereo Walleye stereo Hardware stereo Geowall stereo Sidebyside stereo Quadbuffer stereo

2. 制作立体图形

为达到立体三维效果,必须注意保证立体对(stereo pairs)产生时有合适的转换,印刷时图像间有一定的距离。

准备立体图像的真正难点在于在印刷前纸张常常缩小图片,所以很必要准备图像时使你的草图和最终的印刷大小一致。

3. 相关命令

stereo on #开启立体效果 stereo off

山东大学 生命科学学院 lswang lab

31 / 39

》》》PyMOL用户指南《《《 09.7.23

stereo crosseye #开启crosseye立体模式,

注意:如果hardware stereo 可用,那么quadbuffer stereo 是默认的立体模式,否则 crosseye stereo是默认的。

七、 动画

1. 概念:

PyMOL有强大的分子动画制作功能。为了使用此功能,首先有必要了解几个概念: States(状态):状态指对象(object)某一个时间点特定的原子坐标。例如,它可由分子动力学模拟的步(steps)或坐标插值(coordinate interpolation)的独立点构成。如果是在制作静态坐标设置的动画(如一个单独的晶体结构),就只能有一个状态。由NMR得到的晶体结构,对象只有一个,但却包含多种不同状态,可以在PyMOL中直接放映。注意:状态并不存储对象的表示形式(如cartoons、sticks、ribbon等等)。

Sences(场景):场景存储镜头(camera)的位置和定向、对象的活动信息、原子的可见性(visibility)、着色、表示形式和全局帧索引(global frame index)

Frames(帧):帧就像电影胶片中一个个单独的图片,在PyMOL中,帧是由状态(states)而不是图片构成的,而且对帧可以进行相关操作(如camera的选转)。帧存储状态信息和场景信息。

场景、状态和帧三者关系的图解

注意:状态和帧的值(index)由1开始。如果用状态值0把状态载入到对象中,那表明让此状态附加到对象的上一个状态后。

2. 重要命令 1) 下载

下载命令用来填充对象的状态。默认状态下,每个载入的新文件都会被附加到对象状态。然而,下载命令第三个语句(可选语句)是文件被载入的帧指数。

load foo1.pdb,mov #载入foo1.pdb 到\的状态1. load foo2.pdb,mov #载入 foo2.pdb 到\状态2 \load foo3.pdb,mov,3 #载入 foo3.pdb 到\状态3. load foo4.pdb,mov,4 #载入foo4.pdb 到\状态4.

2) Mset

Mest命令用来指定那些状态作为动画的帧而被包括。如果mset命令没被应用,PyMOL将会默认地按顺序(sequential order)放映动画。然而,若想使用其他动画命令(如mdo),有必要直接使用mset命令创建PyMOL内的动画定义。

Mset命令后紧跟定义整个动画的状态列表。每个状态采用以下形式之一:

山东大学 生命科学学院 lswang lab

32 / 39

》》》PyMOL用户指南《《《 09.7.23

# 一个数字:指定下一个放映的状态 x# 一个数字紧随小写“x”(无空格):指定状态总共该重复的次数 -# 一个数字紧随连字号(无空格):指定状态按载入的顺序的放映。 例如:

mset 1 x30 # 创建一个由状态1放映30遍组成的30帧的动画

mset 1 ?30 # 创建一个30帧的动画: 从状态1到30,“?”是“到或至”的意思,但其前必须有空格.

mset 1 ?30 ?2 # 58帧: 从状态1到30,然后从29到2. mset 1 6 5 2 3 #5帧:状态1, 6, 5, 2, 3放映

注意:当只有一个状态时,状态1到状态x(x>=1)只能显示状态1;当n(n>=2)个状态时,若设定的x>n,那么不存在的状态不显示任何对象,而不是一直显示状态n。

3) Mdo

Mdo命令可以把一系列的PyMOL命令捆绑到帧上。例如你可以让每一帧的坐标轴旋转从而对对象进行扫描。

注意:“util”组件为产生mdo命令有两个脚本命令,“util.mrock”和“util.mroll”。这些功能还没入档,但源程序可在modules/PyMOL/util.py找到。由于它们是实际的脚本语言功能,要用括号括起来。

util.mrock(start,finish,angle,phase,loop-flag) util.mroll(start,finish,loop-flag)

4) Mmatrix

Mmatrix 命令可以保存和调用一个特殊查看矩阵,用来创建动画帧1。当在同一个对话中既做着其他操作又想保存动画的定向时,这一命令十分有帮助。

3. 简单举例

这里受温和摇摆的静态结构。下面命令创建了一个60帧的动画,此动画10度摇摆蛋白。 load test/dat/pept.pdb #载入结构 mset 1 x60 #定义动画

util.mrock 1,60,10,1,1 #mdo命令创建摇摆+/-10度的60帧动画 下面的例子中,蛋白质在120帧中沿y轴旋转360度: load test/dat/pept.pdb #载入结构 mset 1 x120 #定义动画

util.mroll 1,120,1 #mdo命令创建旋转360度的120帧动画

4. 复杂举例

下面的例子是Python程序(.py 或.pym为扩展名)应用Python loop载入一系列编好号的PDB文件,然后配置PyMOL显示它们向前和向后:

from glob import glob from PyMOL import cmd file_list = glob(“mov*.pdb”): for file in file_list

山东大学 生命科学学院 lswang lab

33 / 39

》》》PyMOL用户指南《《《 09.7.23

cmd.load(file,“mov”)

cmd.mset(“1 -%d -2”%len(file_list))

5. 预览ray-traced动画图片

PyMOL能够在RAM中缓存一系列图片,然后以比它们渲染时高很多的速度放映。这对ray-traced图片和OpenGL图片都很有用。

1) Cache_frames

Cache_frames控制PyMOL是否把帧保存到内存。注意:缓存的图片占很大的内存空间,所以在使用此功能前先用“viewport”命令缩小窗口:

viewport 320,240 load test/dat/pept.dpb orient hide

show sph mset 1 x30

util.mrock 1,30,3,1,1 set ray_trace_frames=1 set cache_frames=1 mplay

2) Mclear

一旦把一系列帧载入RAM,这些帧会一直存在,即使操纵这个模型。通过“mclear”命令或mclear按钮可清楚缓存:

Mclear #清除帧的缓存

6. 保存动画

你可以保存动画图片到编号的PNG文件。如果想每帧都被光线追踪,应打开帧的光线追踪,关闭并清除缓存:

set ray_trace_frames=1 set cache_frames=0 mclear

通过“mpng”命令或“File”菜单可保存动画,无论哪种方式,都需要在创建的PNG文件前加前缀(prefix):

Mpng mov #将自动创建mov0001.png mov0002.png??

如果你用Adobe Premiere(强烈推荐)压缩动画,需要通过ImageMagick或相似的软件将文件格式转换为Premiere可读的格式(如“.tga”)。

八、 高级鼠标控制

1. 选择(pick)原子和键

当前鼠标配置在屏幕右下角可见。在默认鼠标配置下: viewing模式:

山东大学 生命科学学院 lswang lab

34 / 39

》》》PyMOL用户指南《《《 09.7.23

? CTRL/右键单击可选择单个原子(Pk1功能)。

? CTRL/右键-中键点击可选择多个原子(至多4个)(PkAt功能)。

editing模式:

? CTRL/右键单击可选择一个键(PkTB功能)

? CTRL/右键-中键点击可选择多个键(至多4个)(PkAt功能)。

无论原子还是化学键被选择,这些选择将会被自动定义为以下名称: ? (pk1) 被选中的原子或键选择中第一个被选中的原子 ? (pk2) 键选择中第二个被选中的原子 ? (pkfrag#)所在的分子片段。

? (pkchain) 被选中的原子或键所在的链。 ? (pkresi) 被选中的原子或键所在的残基。

点击这些名称可以直观看到选择所包括的原子。所有这些选择像人工用select命令创建的一样可以被使用和操作。但是要注意,这些选择十分脆弱,当一些普通操作发生时它们会被自动删除,如载入新对象。

2. “pk”原子选择的应用举例 假定你选择了原子或键:

show sticks,(pkresi) #将选中的残基显示为sticks color red,(pkchain) #将选中的链着为红色

remove (byres pk1) #移除选中的残基里的所有原子

3. “lb”和“rb”选择 大多时候,“pk”原子选择就足够了。但有些时候需要对原子选择做两个或更多设置,这时“left-button or ‘lb’ selection”和“right-button or ‘rb’selection”就派上用场了(因为pk原子选择很脆弱,极易自动删除),在默认鼠标配置下:

CTRL?SHIFT/左键点击是“lb”功能,重定义“lb”选择。 CTRL/左键点击是“+lb”功能,扩充“lb”选择。

CTRL?SHIFT/右键点击是“rb”功能,重定义“rb”选择。 一些命令在设计时就把\和\作为默认语句。例如,“distance”命令,如果被调用而没有任何语句,将会在(lb)和(rb)中间显示距离值:

#定义(lb): 通过 CTRL?SHIFT/左键点击一个原子 # 定义(rb) 通过CTRL?SHIFT/右键点击另一个 dist # 将会在两原子间显示距离值

4. 构象编辑 抱歉,这部分没有相关内容。只有PyMOL和能量最小化引擎(energy minimiation engine)相关联,构象编辑功能才能使用。

九、 晶体应用

1. 晶体对称性

Ralf Grosse?Kunstleve提供了SgLite模型使PyMOL能通过标准空间群和晶胞信息推算

山东大学 生命科学学院 lswang lab

35 / 39

》》》PyMOL用户指南《《《 09.7.23

出对称性关系。目前这些信息只能作为PDB文件(包括准确的空间群标识符)中的CRYST1

记录提供给PyMOL。从API直接把一种指定的晶胞和对称性添加到任何分子对象中是需要解决的任务。

CRYST1记录格式如下:

1? 6 Record name \

7 ? 15 Real(9.3) a a (Angstroms). 16 – 24 Real(9.3) b b (Angstroms). 25 ? 33 Real(9.3) c c (Angstroms). 34 ? 40 Real(7.2) alpha alpha (degrees). 41 ? 47 Real(7.2) beta beta (degrees). 48 ? 54 Real(7.2) gamma gamma (degrees). 56 ? 66 LString sGroup Space group.

67 – 70 Integer z Z value. # PyMOL忽略

1) 载入

当用“load”命令读取带有对称信息的PDB文件时,矩阵信息就被输出。这证实了在显示对称相关分子前,矩阵信息就产生了。

2) Symexp

“symexp”命令用来显示原子选择中晶胞的对称相关分子。这个命令创建了一套有公共前缀的对象。每个对象都对应一个能被独立对待的对称性关联对象。见“help symexp”或参考部分的用法信息。

为了在给定距离内仅可视对称相关原子,你需要将过程拆成两步。首先,用symexp命令创建完整的对称相关对象;然后用hide命令限定仅是感兴趣的区域显示

load foo.pdb #下载有cryst记录的pdb文件 symexp sym,foo,(foo),5.0 #创建对称相关的“foo”对象, hide (not(foo expand 5)) #隐藏距离foo 大于5埃的原子, #这些原子在foo 5埃的范围内 #应用前缀“sym”

注意:symexp命令潜在地创建大量对象。用“delete”命令和一个通配符可移除有公共前缀的所有对象:

Delete sym* #删除所有以“.syn”开头的对象

2. 电子密度图

目前PyMOL仅支持CNS和XPLOR ASCⅡ格式的图文件(map file)。

1) 载入

PyMOL给XPLOR/CNS图文件加“.xplor”的扩展名,通过“load”命令: load 2fofc.xplor,map1 #从扩展名推断出的类型 load 2fofc.map,map1,1,xplor #明确提供类型

2) Isomesh和isodot

图文件用来储存数据,并以空间中的线框块来表示图的范围。通过“isomesh”“isodot”命令对一个给定的图可创建任意任意数量的mesh和dots对象:

山东大学 生命科学学院 lswang lab

36 / 39

》》》PyMOL用户指南《《《 09.7.23

Isomesh msh1,map1,1.0 #整个图对象“map1”展现为等值面网 #等势值设为1

Isomesh msh2,map1,1.0,(chain A),3.0 #链A有3埃的边框, #展现为等值面网,等势值为1

见“help isomesh”或参考部分见更多信息。

十、 汇编图形对象(CGOs)和Molscript ribbons

1. 简介

虽然PyMOL能应用OpenGL进行所有的实时渲染,但PyMOL内置的光线追踪器无法胜任任意的OpenGL命令。这样,任何图形都必须先转换成一套基元(spheres,cylinders和triangles),然后才能被供给光线追踪器用来制作高质量的图片。

汇编图形对象是PyMOL的一种特别格式,它能够使任何Python程序员创建三维几何和模拟,并能提供OpenGL高速显示,也能通过光线追踪器直接渲染成最高质量的图片。

2. Molscript ribbons

注意:Molscript是商业软件(对学术免费),在http://www.avatar.se/molscript/可下载。 PyMOL可自动将Molscript的Raster3D 格式输入文件结果(通过“-r”选项)转换成汇编图形对象,用来在PyMOL内显示和渲染。PyMOL期望这些文件扩展名是“.r3d”。注意:Raster3D-to-CGO转换器是赤裸-最低Python用具,不会包括超出需读取的文件结果的任何东西。

1) 载入

load test/dat/pept.r3d #载入一个raster3d文件

2) 应用Molscript Molauto

当用molauto准备输入文件时,首先要使用“-nocentre”选项避免蛋白质的任何变形。这样PDB文件和Molscript 丝带才会在同一参考框架。

Unix> molauto –nocentre 3all.pdb ∣molscript –r > test1.r3d

Unix> molauto –nocentre –nice 3all.pdb ∣molscript –r > test2.r3d 也可以直接将PDB和丝带文件载入PyMOL作为独立的对象: Load 3all.pdb #载入坐标

Load test1.r3d #载入molscript丝带

Molscript Input Files

很不幸,PyMOL不能自己编辑反映当前原子着色和可视度的molscript输入文件,因此需人工完成,以下是一些建议:

? 为了保存参考框架,从当前molscript输入文件通过“transform atom”移除任何的line开端,例如:

Transform atom * by centre position atom *

? 鉴于显示的原因,在实时操作molscript丝带时,可能你会设置线段为小号。随后你可以增大,重建和重载入“.r3d”文件:

Set segments 2 #适于实时图形 Set segments 8 #适于渲染

山东大学 生命科学学院 lswang lab

37 / 39

》》》PyMOL用户指南《《《 09.7.23

重建新丝带最简单的方法是用“save”命令输出一个包含原子选择的PDB文件。应用

“system”命令启动molauto和molscript,然后把Raste载回PyMOL:

Save tmp.pdb,(chain c)

System molauto –nocentre tmp.pdb∣molscript –r >tmp.r3d Load tmp.r3d

3. 创建CGOs

汇编图形对象包括OpenGL中标准line和triangle基元的对等物,也包括spheres和cylinders基元。

在Python水平,CGOs被构建成Python浮点数字的线性列表,这在概念上等同于OpenGL数据流。

from PyMOL.cgo import * # 得到常量 from PyMOL import cmd obj = [

BEGIN, LINES,

COLOR, 1.0, 1.0, 1.0, VERTEX, 0.0, 0.0, 0.0, VERTEX, 1.0, 0.0, 0.0, VERTEX, 0.0, 0.0, 0.0, VERTEX, 0.0, 2.0, 0.0, VERTEX, 0.0, 0.0, 0.0, VERTEX, 00, 0.0, 3.0, END ]

cmd.load_cgo(obj,'cgo01')

CGOs支持标准OpenGL BEGIN/END形式和一些独立基元

(SPHERE,CYLINDER,TRIANGLE),这些基元不能在BEGIN/END 程序块内出现。

4. CGO参考:

CGO仅仅是一个Python浮点数字列表,能够被PyMOL汇编并和给定的状态相联系。 下面的小写名称应被浮点数字替代。一般地,TRIANGLE基元作为最后一个恢复(restore)被应用,因为它在渲染上比BEGIN/END的一系列顶点(vertices)效果差很多。

BEGIN, { POINTS | LINES | LINE_LOOP | LINE_STRIP | TRIANGLES | TRIANGLE_STRIP | TRIANGLE_FAN },

VERTEX, x, y, z,

COLOR, red, green, blue,

NORMAL, normal?x, normal?y, normal?z, END,

LINEWIDTH, line?width,

WIDTHSCALE, width?scale, # 用来光线追踪 SPHERE, x, y, z, radius #应用当前着色 CYLINDER, x1, y1, z1, x2, y2, z2, radius, red1, green1, blue1, red2, green2, blue2, TRIANGLE, x1, y1, z1,

山东大学 生命科学学院 lswang lab

38 / 39

》》》PyMOL用户指南《《《 09.7.23

x2, y2, z2, x3, y3, z3,

normal?x1, normal?y1, normal?z1, normal?x2, normal?y2, normal?z2, normal?x3, normal?y3, normal?z3, red1, green1, blue1, red2, green2, blue2, red3, green3, blue3, load_cgo

CGOs列表通过“load_cgo”命令载入PyMOL cmd.load_cgo(list,name,state)

通过把CGOs载入给定对象的连续状态可以创建任意的三维模拟。下面的例子就是来自“examples/devel/cgo03.py”cgo模拟范例的静态图片:

山东大学 生命科学学院 lswang lab

39 / 39