PyMOL 是结构生物学最通用的可视化工具。开源版(open-source PyMOL)功能覆盖绝大多数需求,可自行编译或通过 conda 安装。它真正的价值在于可脚本化——把出图流程写成 .pml 脚本或 Python 代码,就能批量、可复现地生成配图。
安装
mamba install -c conda-forge pymol-open-source
pymol -cq script.pml # -c 无界面,-q 静默,用于批量出图
选择语法
| 表达式 | 含义 |
|---|---|
chain A and resi 45-60 |
A 链 45–60 号残基 |
byres (polymer within 5 of resn MOL) |
配体 5 Å 内的完整残基 |
resn MOL and not elem H |
配体重原子 |
ss H / ss S |
螺旋 / 折叠 |
solvent |
水分子 |
organic |
小分子(非聚合物) |
byres ... within ... 是做结合位点图最常用的组合:选出配体周围的完整残基而不是被切断的原子片段。
一套可直接复用的出图脚本
# pocket.pml —— 蛋白-配体结合位点配图
load complex.pdb, cplx
hide everything
bg_color white
# 蛋白:卡通表示 + 浅色
show cartoon, polymer
color grey80, polymer
set cartoon_transparency, 0.35
# 配体:棒状 + 醒目配色
select lig, resn MOL and not elem H
show sticks, lig
color yellow, lig and elem C
util.cnc("lig") # 按元素上色(C 保留,其余标准色)
# 口袋残基:细棒 + 标签
select pocket, byres (polymer within 4.5 of lig) and not elem H
show sticks, pocket
color cyan, pocket and elem C
set stick_radius, 0.15, pocket
label pocket and name CA, "%s%s" % (resn, resi)
# 氢键
distance hbonds, lig, pocket, 3.5, mode=2
color black, hbonds
set dash_gap, 0.3
set label_size, 16
# 视角与渲染
orient lig
zoom lig, 5
set ray_opaque_background, 1
set ray_shadows, 0
set antialias, 2
set ray_trace_mode, 0
ray 2400, 1800
png pocket.png, dpi=300
批量出图时用 pymol -cq pocket.pml,配合 shell 循环即可对一批复合物统一风格出图——这在写报告或比较多个对接姿势时非常省时间。
出版级配图的几个要点
- 用
ray而不是直接截图:ray做光线追踪渲染,边缘平滑、质量高。指定分辨率后再png ... dpi=300。 - 白底 + 不透明背景:
bg_color white加set ray_opaque_background, 1,避免论文排版时出现透明通道问题。 - 关掉阴影:
set ray_shadows, 0,科学配图里阴影通常只增加噪声。 - 配色克制:蛋白用中性浅灰、配体用一个醒目色、关键残基用第二个色,三色以内最清晰。注意红绿色盲友好性。
- 视角可复现:用
get_view拿到当前视角矩阵,写进脚本里set_view,保证多张图角度一致。
Python API
from pymol import cmd
cmd.load("complex.pdb", "cplx")
cmd.select("lig", "resn MOL")
print(cmd.get_extent("lig")) # 配体包围盒,可用于设对接盒子
contacts = cmd.find_pairs("lig", "polymer within 4 of lig", cutoff=4.0)
print(len(contacts), "contacts")
cmd.png("out.png", width=1600, height=1200, dpi=300, ray=1)
cmd.get_extent 有个实用副产品:直接拿到配体的包围盒坐标,用来设置对接盒子中心与尺寸,省掉手工估算。
上手提示
- 把出图写成
.pml脚本,风格统一且可复现,远胜手工点击; - 出版图必须用
ray渲染,配白底、关阴影、开抗锯齿; byres ... within ...是画结合位点的标准选择写法;cmd.get_extent可直接算出对接盒子参数。
延伸资源
- Notebook 内可视化:212《NGLView》;网页嵌入:213《3Dmol.js》;
- 相互作用分析:208《PLIP》、207《ProLIF》;
- 对接盒子设置:182《AutoDock Vina》。