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

Focusing in on specific areas in PyMOL from command line?

我刚刚tar使用 PyMOL 和 Unix 命令查看 .pdb 文件,我有一个任务要执行,但我不知道如何执行它.

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

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

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

一旦这些残基集中在 PyMOL 中,我想保存图像并将快照导出到 html page/format。

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

由于您想使用 "piping in Unix" 执行此操作,我将在此处描述有关如何继续的普通命令行版本。我会故意省略 "export the snapshots to an html page/format" 部分,因为这超出了 PyMOL 的范围,可以使用许多其他程序或工具来完成。

首先,您想遍历文件夹中的 pdb 文件:

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

PyMOL 需要这些命令:

首先,让我们从 shell 启动 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;

现在我们 select 您的残基 40 到 55 并将其命名为 selection "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 .