2025年Pymol用法

Pymol用法基础 pymol 命令 Pymol 是区分大小写的 不过目前为止 Pymol 还是只用小写 所以记住 所有的命令都是使用小写字母的 当你开始用 Pymol 来完成一个项目时 你也许想会让 Pymol 自动保存你所有输入过的命令 以方便日后你再次读取并修改 这个可以通过创建一个 log 文件来达到 该文件的后缀名应为

大家好,我是讯享网,很高兴认识大家。

基础pymol命令

Pymol> log_open log-file-name.pml 

讯享网

如果你想终止记录,只需要键入:

讯享网Pymol> log_close 

好了,现在载入pdb文件:

Pymol> load 2vlo.pdb 

现在Pymol就创建了一个叫2vlo的对象,你可以在内部GUI 窗口里面看见这个项目的名字。但是你也可以自己定义该项目的名字(如test):

讯享网Pymol> load 2vlo.pdb, test 
Pymol> show representation Pymol> hide representation 

其中representation可以为:cartoon, ribbon,

dots, spheres, surface和mesh。

使用这2个命令可以让Pymol以不同的方式显示蛋白质结构。

例如当我们键入:

讯享网Pymol> hide lines Pymol> show ribbon 

我们将得到如下结果:也许你已经注意到结构中有2个一模一样的蛋白质分子,只是方向不同而已,那么如何让Pymol 只显示当中的一个分子呢?首先输入如下命令:

Pymol> label all, chains 
讯享网Pymol> hide ribbon, chain f+g+h+i+j 

上面的东东还可以这样完成:

Pymol> select test, chain f+g+h+i+j Pymol> hide ribbon, test 

上面的第一句命令的作用是选择“链”F-J,并命名为test,然后在第二句命令中隐藏它。这样做的好处是,一旦你选择并命名了某个目标,你可以在后面随时对它进行各种操作。并且你在右边的控制面板里面也可以看到你选定的目标,并可以对其进行操作。

比如你可以:

讯享网Pymol> hide everything,test Pymol> show cartoon, test 

这样你会得到:说到这里就提到了Pymol的一个比较重要的东西,就是选择并命名目标,它的基本语法就是:

Pymol> select selection-name,selection-expression 

其中名字可以由字母[A/a-Z/z],数字[0-9]已经下划线[_]组成,但是要避免使用:

! @ # $ % ^ & * ( ) ’ " [ ] { }

| ~ ` < > ? /

如果你要删除你选定的目标或者整个对象,你可以:

讯享网Pymol> delete selection-name #删除选定目标 Pymol> delete object-name # 删除整个对象 

下面讲讲如何给对象以及目标改变颜色。预定义的颜色名字可以在外部GUI窗口的Settings -Colors中找到:

Pymol> color color-name Pymol> color color-name, selection-expression 

比如我们可以:

讯享网Pymol> color red, ss h Pymol> color yellow, ss s Pymol> 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.pdb Pymol> load object-name-2.pdb 

如果你想暂时关闭/打开某个对象,可以这样:

讯享网Pymol> disable object-name-1 Pymol> 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, store

Pymol> view v1, recall Pymol> view v1 

说了这么多,最后说说如何保存文件吧。Pymol有3个层面的保存方式,下面来分别说说。

使用log_open命令把你所有使用过的命令记录为一个文本文档:

讯享网Pymol> log_open script-file-name 

这样以后当你再次调用该文档时,Pymol将执行上面的所有命令:

Pymol> @script-file-name 

不过注意,如果你想记录当前视角,则必须使用get_view命令。

你可以选择外部GUI窗口中的File -Append/Resume/Close Log来分别暂停记录/恢复记录/停止记录该文档。

你可以随时编辑该文档。


讯享网

在linux下,该文档的默认保存目录为当前用户的home目录。

如果你想下次打开Pymol时直接回到当前所在的状态,那么可以选择外部GUI窗口里面的File -Save Session,创建一个会话文件(.pse)。

该会话文件和上面提到的文档文件的区别在于,首先文档文件可以编辑,但会话文件不可以;记录文档文件前必须先运行log_open命令,而会话文件可以随时创建;最后文档文件以文档形式运行(@),而打开会话文件则必须选择外部GUI窗口中的File-Open。

什么时候需要创建会话文件呢?比如当你在某时有多个选择时,你可以保存当前状态,然后一一尝试这些选择,不满意时只需要重新打开该会话文件即可。也就是说创建会话文件起到了“undo”的作用,这正是Pymol所缺少的。希望开发者能赶快加入该功能,那么这个会话文件好像就没什么大用了。

如果你觉得当前显示窗口里面显示的结构图像已经满足你的要求了,你可以把它保存为图片。在这之前你可以使用ray 命令来优化你的图像,它可以使你的图像具有三维的反射及阴影特效:

讯享网Pymol> ray 2000,2000 # 数值可以依据电脑性能自己调 Pymol> png your_path/image_name 

最后就用该命令导出的图片结束这次笔记吧。

Pymol命令的语法与目标选择的表达

上次介绍一些Pymol的基本命令。现在来具体说说Pymol 命令的语法,还有在选择操作目标应该如果表达。个人觉得这部分内容对学习Pymol来说是至关重要的。

从上次讲的一些例子中不难看出,Pymol的命令都是由关键词(keyword)加上一些变量(argument)组成,格式如下:Pymol> keyword argument

其中关键词(keyword)当然是必须的,而变量则不是必须的,比如退出命令quit就不需要附加变量:

Pymol> quit 

当然更多的命令通常是需要加变量的,比如放大命令zoom,但是你会发现即使你不加任何变量该命令也可以被执行,这是因为Pymol的许多命令有一个默认变量,下面两个命令的作用是一样的,其中的目标选择 all 就是 zoom 的默认变量:

讯享网Pymol> zoom Pymol> zoom all 

还有些命令可以带多个参数,比如加色命令color,它的用法如下:

Pymol> color color-name

Pymol> 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 
讯享网symbol e. chemical-symbol-list 周期表中的元素符号 Pymol> select polar, symbol o+n 
name n. atom-name-list pdb文件中的原子名字 Pymol> select carbons, name ca+cb+cg+cd 
讯享网resn r. residue-name-list 氨基酸的名字 Pymol> select aas, resn asp+glu+asn+gln 
resi i. residue-identifier-list pdb文件中基团的编号 Pymol> select mults10, resi 1+10+100 residue-identifier-range Pymol> select nterm, resi 1-10 
讯享网alt alt alternate-conformation-identifier-list 一些单字母的列表,选择具有2种构型的氨基酸 Pymol> select altconf, alt a+b 
chain c. chain-identifier-list 一些单字母或数字的列表 Pymol> select firstch, chain a 
讯享网segi s. segment-identifier-list 一些字母(最多4位)的列表 Pymol> select ligand, segi lig 
flag f. flag-nummer 一个整数(0-31) Pymol> select f1, flag 0 
讯享网numeric_type nt. type-nummer 一个整数 Pymol> select type1, nt. 5 
text_type tt. type-string 一些字母(最多4位)的列表 Pymol> select subset, tt. HA+HC 
讯享网id id external-index-number 一个整数 Pymol> select idno, id 23 
index idx. internal-index-number 一个整数 Pymol> select intid, index 23 
讯享网ss ss secondary-structure-type 代表该类结构的单字母 Pymol> select allstrs, ss h+s+l+"" 

布尔运算符和标签命令

在这里插入图片描述
在这里插入图片描述

将.cif文件改为.pdb文件的方法

用pymol打开.cif/.sdf文件,然后依次点击file→Export Molecule→Pdb options→save→更改路径,文件名,文件类型→保存即可。

超强笔记:https://www.renrendoc.com/paper/109175605.html

获取蛋白残基序列信息

print(cmd.get_fastastr("xxxx")) 

获取蛋白中某条链的残基序列信息

讯享网print(cmd.get_fastastr("model 6A2B and chain C")) 

cmd.identify()

获取原子序号

cmd.identify("sele", 0) # 先选中原子,输出结果是原子序号组成的列表 

cmd.alter()

简介:改变,在pymol中进行各种修改。

(1) 更改残基编号,将对象object的残基编号5改成3

讯享网cmd.alter("mode object and resi 5", "resi=3") 

cmd.iterate()

(1) 获取对象object中所有的残基编号和对应的残基名称

lst = [] cmd.iterate("name ca and model object","lst.append((resi,resn))") # 因为一个残基中只有一个α碳,所以以α碳为定位获取所有残基的编号和名称。 

or

讯享网lst = [] cmd.iterate("name ca and sele","lst.append((resi,resn))") # 获得选中区域sele的编号和名称 

or

cmd.iterate("name ca and sele","print((resi+'A'),end=' ')") 输出:164A 212A 213A 214A 217A 

(2) 使用全局字典的形式定义变量

讯享网myspace = {"lst":[]} cmd.iterate("name ca and model 1a2b","lst.append((resi,resn))",space = myspace) 

cmd.select()

(1) 选择蛋白的某一条链

cmd.select("chain A") 

(2) 选择某个残基

讯享网cmd.select("resn F90") # F90是残基名称。 

(3) 选择某残基一定距离范围内的所有残基

cmd.select("(br. all within 1 of resn %s) and (not resn %s)"%(i[2],i[2])) 

(4) 选择一个object中的一个残基和另一个object

讯享网cmd.select("(model %s and resn %s) or (model %s)"%(i[1], i[2], i[0])) 

(5) 3个object (object_a, object_b, object_c),寻找 object_c 上与 object_a 和 object_b 残基距离在4埃内的残基

cmd.select("(br. all within 4 of (mode object_a or mode object_b))") 

(6) 选择某个object中的一段连续残基

讯享网cmd.select("resi 1-7 and mode object_b") 

select 起名字,指定要选的范围(对象)

select NAP3A, resn NAP around 2.6 #选择离NAP2.6A范围内的原子 select NAP3Aress,byres NAP3A #选择离NAP2.6A范围内的氨基酸残基(不可单独使用) 
小讯
上一篇 2025-02-26 07:02
下一篇 2025-04-02 19:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15426.html