当前位置:首页 >> 生物学 >>

pymol教程-09.7.23


》》PyMOL 用户指南《《 》 《

09.7.23

PyMOL 用户指南
目录
一、 1. 1) 2) 2. 1) 2) 3. 4. 1) 2) 3) 4) 5) 鼠标操作入门 4(这个数字是超链接,ctrl+左键) 启动 4 通过鼠标 4 通过命令行 4 PyMOL 窗口 4 Virewer 窗口 4 外部 GUI 窗口 5 下载 PDB 文件 5 操控视图 6 基本鼠标控制 6 虚拟滚动球旋转 7 移动截面 7 改变旋转中心点 8 简单回顾 9 命令行操作入门 9

二、 1. 2. 3. 1) 2) 3) 4. 5. 1) 2) 3) 6. 1) 2) 3) 7.

记录结果 9 载入数据 9 操控对象(Object)10 原子选择 11 对象和选择的着色 12 对象和选择的 on/off12 改变视点 13 保存工作 13 脚本和日志文件 13 图像文件 14 会话文件 14 命令行快捷键 14 用 TAB 键完成命令 15 用 TAB 键完成文件名 15 自动推理 15 其他命令和帮助 15

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

1 / 39

》》PyMOL 用户指南《《 》 《

09.7.23

三、 1. 1) 2) 3) 4) 5) 6) 2.

命令句法和原子选择 16

语法 16 选择表达 16 原子选择命名 16 单字选择符 属性选择符 18 选择代数 20 宏指令 21 从 PyMOL 中读取 Python 卡通表示 23

22

四、 1. 1) 2) 2. 1) 2) 3.

背景 23 可达性 23 美化和精确 23 定制化 25 卡通类型 25 精美螺旋 28 二级结构归属 29 光线追踪 30

五、

1. 重要设置 30 2. 保存图片 31 六、 立体效果 31

1. 支持的立体模式 31 2. 制作立体图片 31 3. 相关命令 31 七、 1. 2. 1) 2) 3) 4) 3. 4. 5. 1) 动画 32

概念 32 重要命令 32 Load Mset Mdo Mmatrix 简单举例 33 复杂举例 33 预览 ray-traced 动画图片 34 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 <filename> #载入本地存在的 PDB 文件 fetch <object> #直接从网上下载,不用加后缀 例如 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) 基本的鼠标控制 鼠标的滚动轮的可当做中键使用。

下表是基本的鼠标按钮和键盘结合的操作功能: 键盘 鼠标左键 中键 旋转图像(虚拟滚 在 XY 上移动图像 动球 rotate) (translate 平移) 右键 在 Z 上移动图像 (zoom 变焦) 移动截面

Shift Ctrl

山东大学

生命科学学院

lswang lab

6 / 39

》》PyMOL 用户指南《《 》 《

09.7.23

Shift+Ctrl 2) 虚拟滚动球旋转

回到旋转起始

虚拟滚动球 虚拟滚动球犹如在视野中有个可见的球。当你在屏幕点击拖拽时,好像你的手指按在了球 上进行相似的操作。 如果在球体外点击拖动,仅能在 Z 轴上做环形旋转; 在球体上点击拖动就能 在 XY 面上旋转。 3) 移动截面 截面是在分子前后想象中的平面。截面外的分子部分将会被切除,从而显示 出内部。在复杂或大分子中截面非常有用。

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

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

山东大学

生命科学学院

lswang lab

7 / 39

》》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 按钮。
山东大学 生命科学学院

lswang lab

13 / 39

》》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 none hydro 缩略选择符 * none h. 描述 当前载入 PyMOL 的所 有原子 没有原子,空选择 当前载入 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,* #所有原子变成蓝色 hetatm het PyMOL>hide hydro PyMOL>hide h. PyMOL>show cartoon,hetatm PyMOL>show cartoon,het

#所有的氢原子的表示形式被隐藏 #PDB 输入文件中被定义为 HETATM 的 #所有原子显示为 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

山东大学

生命科学学院

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 实数

q

q

山东大学

生命科学学院

lswang lab

19 / 39

》》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 "A" 显示为cartoon. PyMOL> color pink, pept//b # object "pept" 的Chain "B"着为粉红色 为了区别于选择中的其他词,宏指令必须至少包含一个正斜杠。作为一个完整的词,中间 不能有空格。宏指令转换成长复杂语句形式后才被提交执行,懂得这点对理解错误信息很有帮 助。 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 15 24
山东大学 生命科学学院 lswang lab

22 / 39

》》PyMOL 用户指南《《 》 《

09.7.23

33 42 51 注意: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

"molauto ?nice ... | molscript ?r > ..."

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的禁用"flat sheets"或输入命令 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/ cartoon arrow, 50:99/
山东大学

#前两个命令等效:残基1到49显示为cartoon tube

生命科学学院

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' alter 52?65/, ss='S' alter 65?72/, ss='H' rebuild

#指定 residues 40?52 为 loop #指定 residues 52?65 为 sheet #指定 residues 65?72 为 helix #重建cartoon

五、

光线追踪(ray tracing)

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

OpenGL Rendering (real?time manipulation)

Ray?traced Rendering (seconds or minutes per frame)

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

1. 重要设置 通过"set"命令可以改变设置。除非另外说明,否则这些设置只应用到光线追踪器而不是 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) 产生一个"smooth"图片 (质量最好, 但加长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格式,通过"png"命令或"File"菜单的"Save Image"选项。图片 通常被保存为和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 到"mov"的状态 1. load foo2.pdb,mov #载入 foo2.pdb 到"mov"状态 2 ". load foo3.pdb,mov,3 #载入 foo3.pdb 到"mov"状态 3. load foo4.pdb,mov,4 #载入 foo4.pdb 到"mov"状态 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”选择。 一些命令在设计时就把"(lb)" 和"(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 "CRYST1" 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


相关文章:
pymol教程-09.7.23_图文.doc
pymol教程-09.7.23_计算机软件及应用_IT/计算机_专业资料。生物软
pymol教程-09.7_图文.pdf
pymol教程-09.7 - 》》》PYMOL 用户指南《 《《 09.7.23 PYMOL 用户指南 目录 一、 1. 1) 2) 2. 1) 2) 3. 4. 1) 2) 3) 4...
pymol教程_图文.doc
pymol教程 - 》》》PyMOL 用户指南《 《《 09.7.23 PyMO
pymol教程-09.7.23_图文.doc
pymol教程-09.7.23 - 》 PYMOL 用户指南《 》》PYMOL
pymol使用教程_图文.doc
pymol使用教程_计算机软件及应用_IT/计算机_专业资料...是不是觉得上面的那个三维结构图看起来乱七八糟的阿...idno, id 23 id index internal-index-number idx...
pymol使用教程_图文.doc
HA+HC id external-index-number 一个整数 Pymol> select idno, id 23 id...Pymol教程 暂无评价 1页 5下载券 pymol教程-09.7 42页 2下载券 喜欢...
pymol做图简单教程.doc
pymol做图简单教程_计算机软件及应用_IT/计算机_专业资料。1. 将对接好的 ligand...pymol教程-09.7.23 39页 免费 pymol使用教程 29页 1下载券 pymol作图的...
《pymol使用教程》.doc
pymol使用教程》_计算机软件及应用_IT/计算机_专业资料。简介&安装 Pymol 是一个开放源码,由使用者赞助的分子三维结构显示软件,由 Warren Lyford DeLano 编写,并...
非常好的pymol教程.pdf
pymol教程-09.7.23 39页 5下载券 pymol做图简单教程 11页
PyMOL简介与使用说明_图文.pdf
PyMOL简介及相关操作报告人:丁洁女 组员:廖杨洁、杨承峰、段博、谭菲 组号:G...pymol教程-09.7.23 39页 1下载券 pymol教程 39页 1下载券 ...
PyMOL使用入门_图文.doc
PyMOL使用入门_计算机软件及应用_IT/计算机_专业资料。生物大分子三维结构显示...pymol学习笔记 34页 3下载券 pymol教程-09.7.23 39页 1下载券 ...
APBS教程.doc
pymol教程-09.7.23 39页 免费 Pymol 学习笔记 30页 5财
PyMOL的应用简介_图文.pdf
PyMOL的应用简介 Brief-instruction of PyMOL 报告人:王帅 组员:孙亮、高明、...pymol教程-09.7.23 39页 1下载券 pymol教程 39页 1下载券 PyMOL简介与...
pymol用法(教程二).doc
pymol用法(教程二) - [转载]PyMOL 用法(教程二) 基础 Pymol 命令 这里主要介绍一下 Pymol 的一些基本命令操作。就像 Linux 一样,要想更好的操作 Pymol,...
pymol使用笔记.doc
前年为了发文章, 自学了 pymol,也能做一些图。结构解析自学比较困难,网上资料...pymol教程-09.7 42页 2下载券 非常好的pymol教程 39页 5下载券 ...
APBS教程_图文.doc
怎样阅读教程 怎样阅读教程 这本教程是以"怎样做 怎样做"的形式设计的,使读者...pymol教程-09.7.23 39页 1下载券 pymol使用教程 29页 1下载券 VMD教程...
PyMOL用法(修订版1.0)_图文.doc
PyMOL用法(修订版1.0) - PyMOL 用法(教程一) 简介&安装 Pymol 是一个开放源码, 由使用者赞助的分子三维结构显示软件, 由 Warren Lyford DeLano 编...
pymol使用教程.doc
pymol使用教程_计算机软件及应用_IT/计算机_专业资料。简介&安装 Pymol 是一个...pymol常用操作 3页 免费 pymol教程-09.7.23 39页 免费 ...
更多相关文章: