Python 从PDB获取所有边界长度

Python 从PDB获取所有边界长度,python,biopython,pdb-files,Python,Biopython,Pdb Files,我想从PDB文件中获取所有边界长度 我尝试了Bio.PDB,但我不理解neightrsearch类及其方法:search()和search\u all() 从Bio.PDB导入* 将numpy作为np导入 structure=PDBParser().get_结构('Kek','1wba.pdb')) atom_list=[[ufor结构中的u。获取_atoms()] kek=邻域搜索(原子列表)。搜索所有(2) 对于kek中的原子对: a=原子对[0] b=原子对[1] 距离=np.linalg

我想从PDB文件中获取所有边界长度

我尝试了
Bio.PDB
,但我不理解
neightrsearch
类及其方法:
search()
search\u all()

从Bio.PDB导入*
将numpy作为np导入
structure=PDBParser().get_结构('Kek','1wba.pdb'))
atom_list=[[ufor结构中的u。获取_atoms()]
kek=邻域搜索(原子列表)。搜索所有(2)
对于kek中的原子对:
a=原子对[0]
b=原子对[1]
距离=np.linalg.norm(np.array(a.coord)-np.array(b.coord))
打印(距离)

我如何解决我的任务?也许还有另一个框架——如果它工作正常,我会观察每一个变体

据我所知,您正在寻找在PDB文件中计算原子之间距离的方法。我修改了你的答案和Biostars解决方案。希望能有点帮助

导入Bio.PDB
parser=Bio.PDB.PDBParser(QUIET=True)
structures=parser.get_结构('2rdx','2rdx.pdb'))
结构=结构[0]
atom_list=[[ufor结构中的u。获取_atoms()]
ns=Bio.PDB.neightrsearch(原子列表)
_截止距离=5
对于atom_列表中的目标:
关闭\u atoms=ns.search(target.coord,\u cution\u dist)
对于close_原子中的close_原子:
打印(目标、关闭\u原子、目标-关闭\u原子)
打印(“=============”)

通过使用
-
操作符,您可以很容易地找到两个原子对象之间的距离。

因此,如果我理解正确,您希望找到目标原子特定距离内的所有原子吗?对所有其他原子也一样吗?@fzn不,不。我想得到原子对的列表,它们是相连的!哦,酷。看看下面我的答案。您可以将
\u cutoff\u dist
调整为您认为合适的键长<代码>关闭_原子将包含潜在连接原子的列表。这在一定程度上解决了您的问题。
neightrsearch
是否真的找到了有键的原子?neightrsearch是一个特殊的类,可以轻松搜索相邻的
原子/残基/链/模型/结构
,等等。更多信息请参考:PDB不一定包含关于附近原子是否与原子结合的信息。您必须使用键距离启发法,例如,氧原子在1.5A范围内的碳可能在它们之间有键。