如何根据我正在迭代的内容设置不同的字典名称?



我想问一些建议如何正确处理我的数据,并在最后,将它们导出到DataFrame。我使用pymol,但问题是一般的,而不是特定于程序。背景:我有这些结构,我想提取关于它们"resname"的信息。我的最终目标是有一个pandas数据框架,其中将有由每个"代码"命名的列。我有这个脚本:

import pymol
import pandas as pd
codes = "2J28, 3BBX, 3J5L"
ID = codes.split(", ")
for IDS in ID:
dir_path = "home/mydata/"
structure= dir_path + "{}.pdb".format(IDS)
cmd.load(structure)
myspace = {"pdbs": []}
my_info = cmd.iterate('(all and name P)', 'pdbs.append(resname)', space=myspace)
print(myspace)

结果是:

{'pdbs': ['A', 'G',...]}
{'pdbs': ['A', 'G',...]}
{'pdbs': ['A', 'G',...]}

当然,我不希望每个dickey都被命名为"pdbs"而是通过相应的代码:

{'2J28': ['A', 'G',...]}
{'3BBX': ['A', 'G',...]}
{'3J5L': ['A', 'G',...]}

我试着直接设置:

myspace = {"{}".format(IDS): []}
my_info = cmd.iterate('(all and name P)', '"{}".format(IDS).append(resname)', space=myspace)

然而,这不起作用,问题似乎是在'"{}".format(IDS).append(resname)

谁能建议我如何解决这个问题,请问?然后我可以加上&;myspace&;将每个代码放入一个DataFrame中。谢谢你

我没有详细检查代码,但是将最后一行更改为:

print({IDS: myspace['pdbs']})

相关内容

  • 没有找到相关文章

最新更新