从命令行专注于PyMOL中的特定区域?

时间:2018-08-08 13:00:49

标签: pymol

我刚刚开始使用PyMOL和Unix命令查看.pdb文件,我有一个要执行的任务,但我不知道该如何实现。

您可以找到下面描述的任务:

“下载this tar文件并使用命令行将其解压缩。

此文件包含271个.pdb文件,我想从命令行使用PyMOL着重于所有文件中编号为40-55的残基。

一旦这些残留物集中在PyMOL上,我想保存图像并将快照导出到html页面/格式。”

我想使用Unix中的管道来完成所有这些工作。我掌握了一些基础知识,但在一些较复杂的任务上需要帮助。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

由于您要使用“ Unix管道”来执行此操作,因此我将在此处描述有关如何进行操作的纯命令行版本。我将故意省略“将快照导出到html页面/格式”这一部分,因为这超出了PyMOL,并且可以使用许多其他程序或工具来完成。

首先,您要遍历文件夹内的pdb文件:

for protein in *.pdb;
###launching PyMOL and passing commands here;
done

这些PyMOL所需的命令:

首先,让我们从外壳启动PyMOL可执行文件。根据您使用的操作系统,此操作可能会有所不同。我将以macOS为例。有关如何从命令行启动PyMOL的进一步帮助,您可以找到here

/Applications/PyMOL.app/Contents/MacOS/PyMOL -cq $protein -d "###here come the PyMOL commands"

c 表示PyMOL gui不会启动(我们在这里不需要),并且 q 忽略了PyMOL的欢迎信息。 $ protein是我们要遍历的每个PDB文件。 d 表示将要传递PyMOL命令。 我们将使用以下命令为每个PDB文件获取一段肽段并创建一个PNG图片:

首先,我们确保其他所有内容均不可见:

hide everything;

现在我们选择40至55位残基,并将其命名为“ pieceofpeptide”:

select pieceofpeptide, resi 40-55;

根据您希望制图表达的外观(例如卡通,甘草,线条等),在下一个命令中选择样式:

show cartoon, pieceofpeptide;

现在,我们确保图像居中(尝试改变数字,它表示距我们居中对象的距离):

zoom center, 20;

最后,让我们将其保存为图像(根据需要调整分辨率):

png $protein.png, width=10cm, dpi=150, ray=1

单线编写的最终命令最终看起来像这样:

for protein in *.pdb; do /Applications/PyMOL.app/Contents/MacOS/PyMOL -cq $protein -d "hide everything;select pieceofpeptide, resi 40-55;show cartoon, pieceofpeptide;zoom center, 20;png $protein.png, width=10cm, dpi=150, ray=1"; done

但是,如果将PyMOL命令存储在script.pml之类的文件中或使用Python脚本,则更容易查看和编辑,但这是here最好的解释。