PyMOL 绘制小分子的静电势 (ESP)
发布: (2025年12月20日 GMT+8 06:33)
3 min read
原文: Dev.to
Source: Dev.to
工具与前处理
- Open Babel
将原始.mol2文件转换为.xyz并补全氢原子(氢原子对 ESP 计算至关重要)。
# 补氢并转换为 xyz
obabel input.mol2 -h -oxyz -O molecule.xyz
确保分子在转换后保持正确的原子价态和完整的氢原子。
ORCA 计算
使用 ORCA 6.1.1 进行单点能计算,并保存电子密度信息以供后处理。
输入文件 (molecule.inp)
! B3LYP def2-SVP TightSCF KeepDens PAL8
* xyz 0 1
[原子坐标]
*
KeepDens:保留电子密度文件(.scfp),后续生成 ESP 必须使用。PAL8:使用 8 核并行。若在 SLURM 集群上运行,建议配合--ntasks-per-node=8。
使用 orca_plot 提取 ESP
orca_plot 是 ORCA 附带的交互式工具,可从计算结果 (.gbw) 中提取 ESP。
交互序列(可通过重定向执行)
| 步骤 | 输入 | 说明 |
|---|---|---|
| 1 | 1 | 选择绘图类型 |
| 2 | 43 | 选择 Electrostatic Potential |
| 3 | 4 | 设置网格间距/分辨率(建议 100 100 100) |
| 4 | 11 | 执行生成任务 |
| 5 | 12 | 退出 |
执行后会得到:
molecule.eldens.cube– 电子密度文件(定义分子形状)。molecule.vpot.cube(或重命名为*_ESP.cube)– 静电势数值文件。
注意:确保
.gbw、.scfp与生成的.cube文件位于同一目录,否则orca_plot无法正常工作。
在 PyMOL 中绘制 ESP
加载文件
load molecule.mol2, mol
load molecule.eldens.cube, den
load molecule_ESP.cube, esp
生成基于电子密度的分子表面
# 等值面取 0.002 a.u.
isosurface surf, den, 0.002
创建颜色映射渐变
# [-0.1, 0, 0.1] 对应 红‑白‑蓝
ramp_new ramp_esp, esp, [-0.1, 0, 0.1], [red, white, blue]
- 负电位(红色) → 富电子区
- 正电位(蓝色) → 欠电子区
将颜色映射到表面
set surface_color, ramp_esp, surf
美化调整(可选)
set surface_quality, 1
set transparency, 0.2, surf # 半透明以观察内部原子
rebuild
单位:ORCA 输出的 ESP 单位为原子单位 (a.u.),1 a.u. ≈ 27.21 V。
在 PyMOL 中的颜色刻度可根据分子极性适当调整,常用范围为 ±0.05 ~ ±0.2 a.u.
其他提示
- 文件保持:
.gbw与.scfp必须与生成的.cube文件在同一目录。 - 并行槽位:使用 MPI 并行时,确保 SLURM 分配的
ntasks与 ORCAPALn参数一致。