首页 > 解决方案 > 如何计算链A(CZ)原子的受体特定原子与链B上的原子列表之间的距离

问题描述

非常感谢您抽出宝贵的时间,提前。我想计算链 A 中的一个原子与链 B 中的多个原子的距离。对于 Exp:

我的 PDB 文件有这些条目

链 A ATOM 32 CZ ARG A 89 -9.472 17.209 -4.849 1.00 49.73 C

链 B ATOM 538 O4' DG B 2 -6.257 16.810 11.821 1.00 71.16 O ATOM 539 C3' DG B 2 -4.271 15.614 11.464 1.00 73.87 C

链条 C ATOM 830 O3' DC C 2 -8.757 5.249 -25.109 1.00 30.80 O ATOM 831 C2' DC C 2 -6.307 4.905 -25.202 1.00 32.20 C

更好的:

ATOM     32  CZ  ARG A   89     -9.472  17.209  -4.849  1.00 49.73           C

ATOM    538  O4' DG  B   2      -6.257  16.810  11.821  1.00 71.16           O 
ATOM    539  C3' DG  B   2      -4.271  15.614  11.464  1.00 73.87           C

ATOM    830  O3* DC  C   2      -8.757   5.249 -25.109  1.00 30.80           O
ATOM    831  C2* DC  C   2      -6.307   4.905 -25.202  1.00 32.20           C

现在我想计算链 A CZ 原子与链 B&C 之后的原子 O4'、C3'、O3'、C2' 等之间的距离。

请指导我。谢谢

标签: pythonbiopython

解决方案


这是我的尝试:

from Bio import PDB
parser = PDB.PDBParser()

pdb1 ='pdb_test.pdb' 
structure = parser.get_structure("pdb_test", pdb1) 

atom1 = structure[0]["A"][89]["CZ"]

for model in structure:
    for chain in model:
        for residue in chain:
            for atom in residue:
                if chain.id !='A':
                    print(atom1 , '  -  ',atom ,  '  =  ',atom1 - atom)

输出:

<Atom CZ>   -   <Atom O4'>   =   16.981882
<Atom CZ>   -   <Atom C3'>   =   17.196173
<Atom CZ>   -   <Atom O3'>   =   23.537636
<Atom CZ>   -   <Atom C2'>   =   23.992712

推荐阅读