1

PDB ファイルから原子間の距離を計算したいと思います。PDBファイルに対してこの計算を行うにはどうすればよいですか?

ATOM      1  N   GLY A  23     -10.507   5.621  25.325  1.00 60.45           N  
ATOM      2  CA  GLY A  23      -9.475   4.636  25.745  1.00 56.55           C
ATOM      3  C   GLY A  23      -8.714   4.045  24.571  1.00 58.66           C
ATOM      4  O   GLY A  23      -8.526   2.829  24.498  1.00 60.74           O 
ATOM      5  N   GLN A  24      -8.275   4.899  23.651  1.00 52.00           N 
ATOM      6  CA  GLN A  24      -7.532   4.446  22.482  1.00 45.40           C 
ATOM      7  C   GLN A  24      -6.089   4.139  22.865  1.00 39.62           C  
ATOM      8  O   GLN A  24      -5.617   4.536  23.928  1.00 35.50           O  
ATOM     14  N   ARG A  25      -5.391   3.428  21.991  1.00 37.97           N 
ATOM     15  CA  ARG A  25      -4.003   3.065  22.237  1.00 37.23           C
ATOM     16  C   ARG A  25      -3.133   4.276  22.555  1.00 36.13           C 
ATOM     17  O   ARG A  25      -2.441   4.293  23.571  1.00 31.46           O 
  • column2 - 原子番号
  • column3 - アトム名
  • column4 - 残基名
  • column5 - チェーン ID
  • column6 - 残基番号
  • column7 - X 座標
  • column8 - Y 座標
  • column9 - Z 座標

distance = sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2)

4

1 に答える 1

3

PDB ファイルを自分で解析することは控えてください。awkPDB ファイルには、ツールが適していない多くの不規則性があります。代わりに、既に実装されているパーサーを使用して、構造を意味のあるオブジェクトに解析する必要があります。

私はバイオパイソンが好きです構造と相互作用する方法の詳細についてはチュートリアルを参照する必要がありますが、これは 2 つの原子間の距離を取得するための非常に基本的な方法です。この-演算子は原子距離を返すようにオーバーライドされていることに注意してください (座標や距離式を扱う必要はありません!)。

from Bio import PDB

parser = PDB.PDBParser()

# Parse the PDB file into a meaningful structure object
pdb_path = "/path/to/files/1abc.pdb"
pdb_id = "1abc"
struct = parser.get_struct(pdb_id, pdb_path)

# Get two atoms to compare by navigating the SMRCA structure
chain_a = struct[0]["A"]
res1 = chain_a[26]
res2 = chain_a[23]
atom1 = res1["C"] 
atom2 = res2["C"]

print "Distance: %d" % (atom1 - atom2)

どの原子の距離を計算したいのか、私には少しわかりませんが、残基名に基づいて比較したい場合は、オブジェクトのresnameフィールド(例: ) を見ることができます。PDB.Residueres1

近くのアトムを探すこともできますBio.PDB.NeighborSearch(これは kd ツリーの実装です)。

于 2013-05-11T16:12:26.657 に答える