使用 PyMol 自动渲染 PDB 蛋白质

下载 .pdb 文件

由于 RCSB 提供直接 HTTP 访问,此步骤很简单。

你可以使用此 shell 脚本下载任何蛋白质:

download-pdb.sh
#!/bin/bash
# donwload-pdb.sh
wget http://www.rcsb.org/pdb/files/$1.pdb

使用要下载的 PDB ID 调用它,例如 1ULI

download_example.sh
./download-pdb.sh 1ULI

使用 PyMol 渲染

首先,安装 PyMol:从网站下载或直接使用你喜欢的包管理器,例如:

install_pymol.sh
sudo apt-get install pymol

通过使用脚本而不是交互模式调用 PyMol,我们可以自动化渲染图像的过程 - 但是手动调整透视等可能会改善结果。

以下脚本集成了自动下载和渲染器。使用静态设置创建临时 .pml(PyMol 脚本)文件

render-pymol.sh
#!/bin/bash
# render-pymol.sh
if [ $# -eq 0 ]
  then
    echo "用法: render-pymol.sh <PDB ID>"
    exit
fi
#下载
wget -qO $1.pdb http://www.rcsb.org/pdb/files/$1.pdb

#创建 rasmol 脚本
echo "load $1.pdb;" > $1.pml
echo "set ray_opaque_background, on;" >> $1.pml
echo "show cartoon;" >> $1.pml
echo "color purple, ss h;" >> $1.pml
echo "color yellow, ss s;" >> $1.pml
echo "ray 1500,1500;" >> $1.pml
echo "png $1.png;" >> $1.pml
echo "quit;" >> $1.pml

#执行 PyMol
pymol -qxci $1.pml
#删除临时文件
rm -rf $1.pml $1.pdb

像这样调用它:

render_example.sh
./render-pymol.sh 1ULI

此命令将渲染结果并将其存储在 1ULI.png

自定义渲染样式

要更改生成的 PNG 图像的大小,更改此行:

pml_settings.sh
echo "ray 1500,1500;" >> $1.pml

数字代表生成图像的宽度和高度。注意增加图像大小会显著增加渲染图像所需的 CPU 时间,特别是对于复杂的蛋白质。在我的笔记本上使用 1500x1500px 运行 render-pymol.sh 渲染 1ULI 花了 209 秒,而 500x500 只花了 33 秒。

这些行定义了渲染蛋白质的样式:

pml_style.sh
echo "show cartoon;" >> $1.pml
echo "color purple, ss h;" >> $1.pml
echo "color yellow, ss s;" >> $1.pml

而这行将背景颜色设置为透明:

pml_background.sh
echo "set ray_opaque_background, off;" >> $1.pml

如果你更喜欢白色(非透明)背景,你可以在包含 load $1.pdb 的行之后添加此行:

pml_white_background.sh
echo "bg_color white;" >> $1.pml
echo "set ray_opaque_background, off;" >> $1.pml

结果

1ULI 3ULI


Check out similar posts by category: Bioinformatics