2

次のファイル(PDB形式)があるとします

     ATOM      1  N   MET A   1      66.104  56.583 -35.505  1.00  0.00           N 
     ATOM      2  CA  MET A   1      66.953  57.259 -36.531  1.00  0.00           C
     ATOM      3  C   MET A   1      67.370  56.262 -37.627  1.00  0.00           C
     ATOM      4  O   MET A   1      67.105  55.079 -37.531  1.00  0.00           O
     ATOM      5  CB  MET A   1      68.227  57.852 -35.867  1.00  0.00           C
     ATOM      6  CG  MET A   1      67.848  58.995 -34.899  1.00  0.00           C
     ATOM      7  SD  MET A   1      66.880  58.593 -33.421  1.00  0.00           S
     ATOM      8  CE  MET A   1      68.253  58.332 -32.269  1.00  0.00           C
     ATOM      9  H1  MET A   1      66.566  56.636 -34.576  1.00  0.00           H
     ATOM     10  H2  MET A   1      65.969  55.585 -35.765  1.00  0.00           H
     ATOM     11  H3  MET A   1      65.179  57.056 -35.460  1.00  0.00           H
     ATOM     12  HA  MET A   1      66.373  58.046 -36.989  1.00  0.00           H
     ATOM     13  HB2 MET A   1      68.743  57.078 -35.317  1.00  0.00           H
     ATOM     14  HB3 MET A   1      68.894  58.236 -36.625  1.00  0.00           H
     ATOM     15  HG2 MET A   1      68.760  59.479 -34.578  1.00  0.00           H
     ATOM     16  HG3 MET A   1      67.283  59.729 -35.455  1.00  0.00           H
     ATOM     17  HE1 MET A   1      68.880  57.524 -32.617  1.00  0.00           H
     ATOM     18  HE2 MET A   1      67.847  58.062 -31.306  1.00  0.00           H
     ATOM     19  HE3 MET A   1      68.822  59.245 -32.159  1.00  0.00           H
     ATOM     21  CA  ALA A   2      68.498  55.965 -39.793  1.00  0.00           C
     ATOM     22  C   ALA A   2      70.028  56.064 -39.893  1.00  0.00           C
     ATOM     23  O   ALA A   2      70.561  56.995 -40.466  1.00  0.00           O
     ATOM     30  N   THR A   3      70.681  55.084 -39.321  1.00  0.00           N
     ATOM     24  CA  ALA A   2      67.833  56.491 -41.076  1.00  0.00           C
     ATOM     25  H   ALA A   2      68.194  57.752 -38.637  1.00  0.00           H
     ATOM     26  HA  ALA A   2      68.226  54.930 -39.645  1.00  0.00           H
     ATOM     27  HB1 ALA A   2      66.760  56.401 -40.994  1.00  0.00           H
     ATOM     28  HB2 ALA A   2      68.167  55.915 -41.926  1.00  0.00           H
     ATOM     29  HB3 ALA A   2      68.085  57.529 -41.233  1.00  0.00           H
     ATOM     30  N   THR A   3      70.681  55.084 -39.321  1.00  0.00           N
     ATOM     31  CA  THR A   3      72.178  55.028 -39.324  1.00  0.00           C
     ATOM     32  C   THR A   3      72.651  53.933 -40.300  1.00  0.00           C

N、CA、および C がすべてファイルに連続して存在する場合、何らかの処理を実行したいと思います (この条件は残基 1 と 3 では true ですが、残基 2 では false です)。列 6 は残基番号を示します。以下のように書くと。

     if line[0:6]=='ATOM  ':
       if line[12:16]==' N  ' or line[12:16]==' CA ' or line[12:16]==' C  ':
          do some process

しかし、この条件は、「N、CA、C」が連続していない残基 2 にも当てはまります。「N、CA、C」が連続している場合にのみ処理を行うように上記のコードを変更するにはどうすればよいですか? よろしくお願いします。

4

1 に答える 1

2

3要素のキューを保持できます

q = [None] * 3
for line in lines:
    if line[0:5] == "ATOM ":
        q[0] = q[1]; q[1] = q[2]; q[2] = line[12:16]
        if q == [" N  ", " CA ", " C  "]:
            ... found a match ...

他の要素が許可されている場合 (ただし、N、CA、および C のシーケンスが必要です)、他の要素を無視して N、CA、または C である場合にのみ、要素をキューに入力できます。

この処理を拡張して、異なるシーケンスを同時に検索することも簡単です。

于 2013-09-21T06:52:50.540 に答える