首页 > 解决方案 > 如何将 PyMOL 中的命令输出保存到 txt 文件?

问题描述

我是 PyMOL 的新手,我正在尝试编写一个 python 脚本来生成一个 .txt 文件并将 PyMOL 命令输出保存到它。假设它有一个包含 pdb 文件名称的数组和一个将每个文件与某个特定蛋白质对齐的 for 循环:

pdb = ["191L", "192L", "193L", "194L"]

cmd.fetch("190L")

for i in pdb:
cmd.fetch(i)
cmd.align(i, "190L")

PyMOL 将计算每个对齐的 RMSD。如何编写脚本以获取每个 RMSD 并将其保存到文本文件中?

这是我到目前为止所拥有的:

def get_rmsd():

cmd.fetch("190L")
for i in pdb:
   cmd.fetch(i)
   output = open("rmsd.txt", "w")
   data = cmd.align(i, "190L")
   data = str(data)
   output.write(data)
   stored.f.close()

当我在 PyMOL 上调用该函数时,它会按预期方式获取并对齐文件,但不会创建文本文件。

标签: pythonscriptingpymol

解决方案


for i in pdb:
   cmd.fetch(i)
   output = open("rmsd.txt", "w")
   data = cmd.align(i, "190L")
   data = str(data)
   output.write(data)
   stored.f.close()

尝试:

for i in pdb:
   cmd.fetch(i)
   output = open("rmsd.txt", "a")
   data = cmd.align(i, "190L")
   output.write("%s\n" % data)
   output.close()

应该做的工作


推荐阅读