从PDB获取所有边界长度

问题描述 投票:2回答:1

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

我尝试过Bio.PDB,但我不理解NeighborSearch类及其方法:search()search_all()

from Bio.PDB import *
import numpy as np

structure = PDBParser().get_structure('Kek', '1wba.pdb')

atom_list = [_ for _ in structure.get_atoms()]

kek = NeighborSearch(atom_list).search_all(2)

for atom_pair in kek:
    a = atom_pair[0]
    b = atom_pair[1]
    distance = np.linalg.norm(np.array(a.coord) - np.array(b.coord))
    print(distance)

我该如何解决我的任务?也许还有另一个框架-如果可行,我会观察每个变体!

python biopython pdb-files
1个回答
1
投票

根据我的理解,您正在寻找一种方法来计算PDB文件中原子之间的距离。我调整了您的答案和this Biostars解决方案。希望对您有所帮助

import Bio.PDB

parser = Bio.PDB.PDBParser(QUIET=True)
structures = parser.get_structure('2rdx', '2rdx.pdb')
structure = structures[0]
atom_list = [_ for _ in structure.get_atoms()]

ns = Bio.PDB.NeighborSearch(atom_list)
_cutoff_dist = 5

for target in atom_list:
  close_atoms = ns.search(target.coord, _cutoff_dist)
  for close_atom in close_atoms:
    print(target, close_atom, target - close_atom)
  print ("==========")

您可以使用-运算符轻松找到两个Atom对象之间的距离。

© www.soinside.com 2019 - 2024. All rights reserved.