安装
pymol有两个版本,官网:
- 官方商业版
- 开源版
安装方法wiki上有:Windows Install - PyMOL Wiki
- 直接使用一键安装(只试了这种方法)
软件界面

- ① 菜单栏
- 红框部分为 External GUI,可以点击
Display-External GUI-Toggle Floating或使用快捷键Ctrl + E将该部分与初始界面分离或合并。- ② 操作记录窗口
- ③ 常用命令窗口
- ④ 命令输入窗口
- ⑤ 可视化窗口
- ⑥ 对象窗口,显示编辑的文件,类似于图层的概念。
- ⑦ 模式窗口,主要控制鼠标的控制模式
① 菜单栏
File
Get PDB:直接通过PDB序列号载入文件,只需在红框中填入 四字母的 PDB ID(如 4hbk),点击下方的 Download 即可。

Display
- Background:设置背景颜色
⑥ 对象窗口

all代表的是其中包含的所有项目4hbk是载入的蛋白(sele)是鼠标目前选中的氨基酸
每个项目中后面均有A、S、H、L 和 C 五个选项,意义如下:
- A: Action,包含放大、剧中,复制,显示及比对等一系列的操作。
- S: Show,设置不同的显示方式。
as:改变外观为 xxx- 其他选项:在原有的基础上,添加XXX这一层外观
- H: Hide,隐藏显示的方式,与 S 基本对应。
- L: Label,设置不同的标记方式。
- C: Color,设置不同的着色方式。
A: Action

preset 可以便捷的修改显示方式,主要有以下几种显示方式:
simple:简单形式
ball and stick:球棍模型
b-factor putty:基于 b-factor 数值显示蛋白的柔性
ligand sites:查看小分子和蛋白的氢键作用
pretty:美观的 cartoon 样式
publication:高质量出版标准
generate:显示蛋白的静电势图
- vacuum_electrostatics - protein contact potentia
- rename object:重命名
- Copy to object:复制
- delete object:删除
- Hydrogens:氢原子的相关操作
add:增加所有氢原子add polar:增加极性氢原子remove:删除所有氢原子remove non polar:删除所有非极性氢原子
- remove waters:删除水分子
L: Label

择好需要 Lable 的对象后,可以对其进行如下不同方式的标记。
L-clear:删除该对象上所有的 LabelL-residue:在 α 碳原子上标记其氨基酸残基三字母名字和编号L-residue(oneletter):标记其氨基酸残基一字母名字和编号
L-element symbol:显示对象上所有原子的元素名字L-one letter code:标记其氨基酸残基一字母名字L-vdw radius:显示原子的范德华半径
C: Color
C-by element:按原子类型着色C-by chain:按链着色C-by ss:按二级结构着色C-reds:整体标红
⑦ 模式窗口
- 点击模式窗口中的 S可以显示显示结构序列(或
Display-Sequence)

切换工作路径及载入文件
不同项目使用不同的工作路径:
File-Working Directory-Change...来切换路径,也可以输入指令进行切换1
2
3
4# 切换至 C:\Users\DELL\Desktop\pymol\pdb
cd C:\Users\DELL\Desktop\pymol\pdb
# 查看当前工作路径
pwd
载入文件有三种方式:
点击
File-Open...加载文件拖拽文件至可视化窗口
使用
load指令1
2# 加载 protein.pdb
load protein.pdb
常见指令
Category:Commands - PyMOL Wiki
align
先进行序列比对,随后进行结构叠加, 对序列相似度(同一性>30%)的蛋白质表现不错。 对于序列同一性较低的蛋白质,super和cealign命令表现更好。
对齐两个相似蛋白质结构:
1 | align mobile, target |
Alter/Iterate
alter 命令等效于 iterate 命令,但它提供了对公开变量的读写访问权限。如果更改的标识符会影响原子排序,则需要调用 sort 命令根据新的标识符重新排序。
Count_Atoms
count_atoms 返回所选区域中原子的数量。
1 | count_atoms (selection) |
Create
可以根据选定的对象创建一个新的分子对象。它也可以用于在现有对象中创建状态。
1 | create name, (selection) |
extract
extract 命令的作用是把选中的原子从原对象中“剪切”出来,并生成一个新对象
1 | extract name, selection [, source_state [, target_state ]] |
h_add
1 | alter sele, formal_charge=1 |
matrix_copy
Matrix_copy 将对象矩阵从一个对象复制到另一个对象。该命令通常在蛋白质结构比对之后使用,目的是将其他相关对象置于同一参考系中。
1 | matrix_copy source_name, target_name |
Select
select 函数会根据原子选择创建一个命名选择。
1 | select name [, selection [, enable [, quiet [, merge [, state ]]]]] |
创建名为“sele”的选区的便捷快捷方式:
1 | select (selection) |
PyMOL 最基本的选择逻辑是:属性 值,resn POPCresidue name 是 POPC 的所有原子。resi 7residue ID 是 7 的所有原子。组合条件用and。resn POPC and resi 7residue name = POPC,并且 residue ID = 7。
Show
1 | show |
例子:
1 | # 用线条表示主干结构 |
找出距离 bad_popc 中任意原子 4 Å 以内的蛋白原子。
1
polymer.protein within 4 of bad_popc
找到 4 Å 内的蛋白原子以后,把这些原子所属的整个 residue 都选进来。这对于观察蛋白—配体相互作用特别有用。
1
byres (polymer.protein within 4 of bad_popc)
zoom
缩放操作会调整窗口和原点的大小,使其覆盖所选原子。
1 | zoom [ selection [,buffer [, state [, complete ]]]] |
例子:
1 | # 根据PyMOL中加载的内容自动缩放 |
通常情况下,缩放命令会尝试猜测一个最佳的可视化缩放级别,在保证清晰显示的同时,避免原子偶尔被裁剪出视野。您可以通过将“complete ”选项设置为 1 来更改此行为,这将确保整个选区的原子位置都能完整地显示在正交视图的视野中。为了完全防止裁剪,您可能还需要添加一个缓冲区(通常为 2 Å),以补偿透视变换以及超出原子坐标范围的图形表示。
1 | complete = 0 or 1 |