我刚刚开始使用PyMOL和Unix命令查看.pdb
文件,我有一个要执行的任务,但我不知道该如何实现。
您可以找到下面描述的任务:
“下载this tar文件并使用命令行将其解压缩。
此文件包含271个.pdb文件,我想从命令行使用PyMOL着重于所有文件中编号为40-55的残基。
一旦这些残留物集中在PyMOL上,我想保存图像并将快照导出到html页面/格式。”
我想使用Unix中的管道来完成所有这些工作。我掌握了一些基础知识,但在一些较复杂的任务上需要帮助。任何帮助将不胜感激!
答案 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最好的解释。