我正在尝试按照The Biopython Structural Bioinformatics FAQ的提示,查看我可以从PDB文件中获取多少“标题”信息。我被引导使用mmCIF版本。但是包/鸡蛋似乎有点奇怪:
>>> from Bio.PDB import *
>>> cifFile = '.../path2/3VQ8.cif'
>>> mmcif_dict = MMCIF2Dict(cifFile)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'MMCIF2Dict' is not defined
如果我完全符合课程资格,我会收到不同的错误:
>>> import Bio.PDB
>>> mmcif_dict = Bio.PDB.MMCIF2Dict(cifFile)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MMCIF2Dict'
请注意,大多数Bio.PDB都按预期工作:
>>> parser=PDBParser(PERMISSIVE=1)
>>> inf = '.../path2/3NF8.pdb'
>>> structure=parser.get_structure('3Nf8',inf)
>>> structure.header.keys()
['structure_method', 'head', 'journal_reference', 'compound',
'name', 'author', 'deposition_date', 'release_date', 'source',
'resolution', 'structure_reference']
我最近有一个版本:
>>> Bio.__version__
'1.61'
的文件是否在Bio egg中,但MMCIF2Dict.py
不在模块中:
MMCIF2Dict
任何人都有线索?
答案 0 :(得分:0)
您可以在Bio.PDB
's __init__.py
找到答案。
简而言之,from Bio.PDB import *
会导入__init__.py
命名空间中的所有内容。如果您阅读__init__.py
,则可以看到it imports MMCIFParser
,但不 MMCIF2Dict
(至少不是直接):MMCIFParser
imports MMCIF2Dict
并使用它那里。
所以,如果你from Bio.PDB import MMCIF2Dict; mmcif_dict = MMCIF2Dict.MMCIF2Dict(cifFile)
,它应该没有抱怨。但是,from Bio.PDB import *
不会将MMCIF2Dict
放入当前命名空间。