本文主要记录 PyMOL 中的一些命令行操作,PyMOL 的主界面虽然有两个输入指令的窗口,但个人认为 External GUI 里面的指令输入框更为方便,不仅能查看输入的记录,也能在分离出主界面后放大并置于合适的位置进行命令行操作。另外 PyMOL 自带 tab 键补齐的功能,所以 PyMOL 对命令行操作还是比较友好的。

1.查看指令的帮助文档(help and ?

  下面两种方式都可以查看指令的帮助文档,区别是前者比后者给出的信息更加全面。

help command
command ?

  PyMOL 的所有指令都可以通过点击 Help - PyMOL Command Reference 在如下网址中显示。
PyMOL Command Reference: http://pymol.org/pymol-command-ref.html

2.查看和切换工作路径(pwdcd and ls

pwd:查看当前路径
cd C:/Users/DELL/Desktop/pymol/test:切换到 test 文件夹中
ls:查看当前路径中的文件

注意:Windows 系统中默认的路径中的反斜杠可以使用 / 来替换。

3.下载和载入蛋白结构(fetch and load

  使用 fetch ID 下载蛋白结构。默认从 pdb 网站下载,并且下载完成后自动载入。

fetch 6MVD # 下载格式为cif的6MVD的结构

fetch 6MVD, type=pdb # 下载格6MVD的结构,但格式指定为pdb

fetch 6MVD, type=pdb, name="6MVD-test" # 下载格式为pdb的6MVD的结构,但命名为 6MVD-test

  使用 load filename 载入蛋白结构,其后也可以使用结构对应的 url 来下载并载入,所以其同 fetch 的差别在于不能根据 ID 搜索。

load http://files.rcsb.org/download/6MVD.pdb # 从URL下载6MVD后载入

load 6MVD.pdb # 载入存在于当前目录下的6MVD.pd

注意:虽然两个指令都可以下载结构文件,但是不建议使用 PyMOL 来下载。

4.object 的排序、隐藏、保存和删除(orderdisableenabledeletesave and remove

  依次载入 6mvd4hbk 后进行如下操作,同时主要观察对象和显示窗口中 object 的变化:

order *,yes # 根据 object 名字进行排序

order 6mvd 4hbk # 根据设定的顺序排序

disable 6mvd # 隐藏 6mvd

enable 6mvd # 显示 6mvd

delete 6mvd # 删除 6mvd

remove resn hoh # 删除水分子,由于并没有删除水分子的选项,此处是基于残基匹配水分子来删除的

save 4hbk.cif # 保存 4hbk

disable all # 删除所有object

load 4hbk.cif # 载入 4hbk 查看水分子

注意:载入多个结构时,由于缩放问题,显示窗口只会显示最后一个载入的结构,这时使用 resetorient 就可以显示载入的所有结构。

5.保存图片相关设置(pngray and bg_color

使用 png 来输出 png 格式的图片,有如下可控参数。
png filename [, width [, height [, dpi [, ray]]]]
filename:输出图片的名字
widthheight:提供 pixels(默认), inches (in) 和 centimeters (cm)三种单位
dpi:dots-per-inch
ray:0 或 1,默认为 0,表示不使用,当设置为 1 时,之前需运行 ray 渲染光线

使用 ray 来制作光线追踪的效果,可以使照片更加美观和真实,具体是否使用根据需求选择。
ray [width [,height [,antialias [,angle [,shift [,renderer [,quiet[,async ]]]]]]]]]
widthheight:含义同上
antialias:抗锯齿,使曲线部分更加平滑
renderer: 渲染器,提供 -1, 0, 1, or 2 四种模式,分别代表 default, built-in,pov-ray, or dry-run,其中 0 是默认模式。

  输出图片的背景一般为白色,可以运行 bg_color white 轻松修改。注意仅支持颜色的英文拼写,不支持 16 进制或 RGB 格式的颜色,但是部分支持颜色通过在字母后加数字来修改颜色的透明度,如 grey30 。

下面提供几个示例注意输出图片的区别。

png image1.png, width=1000, height=1000,dpi=300
png image2.png, 1000, 1000,dpi=300
ray 
png image3.png, 1000, 1000, dpi=300, ray=1

  输出的 3 张图片中 image1 和 image2 完全一样,下图展示 image3 与它们的区别。可以明显看出运行 ray 后输出的图片,具有阴影效果,并且曲线部分更加平滑,同时没有背景,总体感觉右边的比左边的图片更加美观,所以推荐使用。

pymol-2-1.png

6.蛋白的展现形式指令(show and as

  使用 showas 均可更改蛋白的外观,其用法也相同。 准确的来说 as更改外观,而 show展示外观,言外之意就是可以叠加多种形式。

as/show representation [, selection ]

  若不知道 as/show 可以填写什么形式,按一下 tab 键会显示全部可以输入的形式;selection 则是填写选择需要改变的部分,其写法非常多,可以在接着前面补全之后,再按 tab 键 一次,感受一下有啥选项,默认为 all。以之前的两个结构为例,依次运行下面指令并观察所产生的变化。

load 6mvd.pdb
as sticks
show cartoon
load 4hbk.cif
reset
show cartoon, 4hbk

7.设置双键显示及小球大小(valence and sphere_scale

load 4hbk.cif
as sticks
set valence, 0  #关闭双键显示

set valence, 1  #开启双键显示


as sphere
set sphere_scale, 0.5

8.cartoon 模式设置(cartoon

  可以使用 cartoon type, selection 来设置。type 中内置 10 种方案以供选择,其中 selection 参数说明同上。

as cartoon
cartoon loop
cartoon tube
cartoon putty
cartoon automatic 

  其中 automatic 模式中还内置了三种模式(defaultFancy HelicesCylindrical Helices),运行下面命令观察变化。

# 开启 Fancy 模式

set cartoon_fancy_helices, 1

# 开启 cylindrcal 模式

set cartoon_cylindrical_helices, 1

# 设置圆柱的粗细

set cartoon_helix_radius,0.9
set cartoon_helix_radius,2.5

FancyCylindrical 关闭(后面参数设置为 0),返回 default 模式。

default 模式下还可以设置 α-helix 的长宽。

set cartoon_oval_length, 0.8 # default is 1.20

set cartoon_oval_width, 0.2 # default is 0.25

9.设置颜色和透明度(color and transparency

  使用 color color [, selection ] 来设置颜色。 而透明度一般会用在 surfacecartoon 同时存在的时候置,按照如下指令操作并观察变化,最后通过鼠标旋转可以获得如下图片。

load 6mvd.pdb
color cyan # 修改整体颜色为cyan

color yellow, chain A # 将A链颜色改为yellow

show cartoon #显示cartoon

show surface #显示表面

hide lines #隐藏lines

set surface_color,green #修改surface颜色为green

set transparency,0.6 #设置表面透明度为0.6

set surface_quality,1 #设置表面质量

pymol-2-2.png

10.选择命令(select

  使用方法为:select name, selection [, enable [, quiet [, merge [, state [, domain ]]]]]

select chA, chain A # 选择A链,命名为chA
select ( resn HIS ) # 选择HIS
select near142, resi 142 around 5 # 选择142位附近的5个残基,命名为near142
select catoms, elem C # 选择所有的碳原子基,命名为catoms
select protein, (byres polymer & name CA) # 选择蛋白,命名为protein
select nucleic, (byres polymer & name P) # 选择核酸,命名为nucleic
select rna, (byres polymer & name O2) # 选择RNA,命名为rna
select dna, (nucleic & !rna) # 选择DNA,命名为dna

11.查看二硫键及删除配体分子5A以外的水分子

load 6mvd.pdb
show sticks, (cys/ca+cb+sg) and byres (cys/sg and bound_to cys/sg)

load 4hbk.cif
remove resn hoh and (resi 307 gap 5)

12.叠合两个object (super and align)

  可以使用superalign 进行担保叠合。两者用法基本一致,但针对的叠合的情况有所不同,super 主要基于结构进行叠合,序列相似度较低时效果较好,align 主要基于序列进行叠合,当序列相似性大于 30 % 效果较好。

# super自动叠合4hbk和6mvd

super 4hbk, 6mvd

# 指定4hbk的A链的2-191位残基和6mvd的B链的2-191位残基进行叠合

super 4hbk & resi 2-191 & chain A, 6mvd & resi 2-191 & chain B, object=supeAB

# align自动叠合4hbk和6mvd

align 4hbk, 6mvd

参考资料:
1.PyMOL中文教程
2.PyMOL Command Reference
3.Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型