2

我有一个包含多个链的 PDB 文件,尽管没有链 ID。我想使用 R 来分配 chainid,以便我可以分析单个蛋白质链并在每个蛋白质链中找到特定位点。

我目前正在使用 Rpdb 提取文件和示例数据(单个 pdb 文件中每个链的前几行)如下。

REMARK  99  Chain ID : 1
REMARK  99  Residues : 593
REMARK  99  Atoms    : 4782
REMARK  99  File     : final.sc.pdb
ATOM      1  N   MET     1      17.471 -55.657  42.605  1.00  0.00              
ATOM      2  CA  MET     1      17.516 -55.479  41.136  1.00  0.00              
ATOM      3  CB  MET     1      16.328 -56.188  40.460  1.00  0.00              
ATOM      4  C   MET     1      17.525 -54.045  40.745  1.00  0.00              
ATOM      5  O   MET     1      17.991 -53.186  41.492  1.00  0.00              
ATOM      6  CG  MET     1      14.961 -55.764  41.001  1.00  0.00           C  
ATOM      7  SD  MET     1      14.550 -56.460  42.632  1.00  0.00           S  
ATOM      8  CE  MET     1      12.951 -55.613  42.782  1.00  0.00           C  
ATOM      9  N   THR     2      17.012 -53.760  39.535  1.00  0.00              
ATOM     10  CA  THR     2      16.993 -52.420  39.040  1.00  0.00              
ATOM     11  CB  THR     2      16.552 -52.347  37.612  1.00  0.00                         
TER
REMARK  99  Chain ID : 1
REMARK  99  Residues : 531
REMARK  99  Atoms    : 4211
REMARK  99  File     : final.sc.pdb
ATOM      1  N   MET     1      55.179  17.162   2.445  1.00  0.00              
ATOM      2  CA  MET     1      55.489  16.069   3.613  1.00  0.00              
ATOM      3  CB  MET     1      55.199  16.623   5.019  1.00  0.00              
ATOM      4  C   MET     1      53.890  15.434   3.310  1.00  0.00              
ATOM      5  O   MET     1      52.902  15.782   3.971  1.00  0.00              
ATOM      6  CG  MET     1      56.062  17.833   5.341  1.00  0.00           C  
ATOM      7  SD  MET     1      55.937  18.517   7.006  1.00  0.00           S  
ATOM      8  CE  MET     1      56.886  17.217   7.874  1.00  0.00           C  
ATOM      9  N   ALA     2      53.854  14.445   2.424  1.00  0.00              
ATOM     10  CA  ALA     2      52.895  13.660   2.231  1.00  0.00              
ATOM     11  CB  ALA     2      53.134  12.918   0.924  1.00  0.00              
ATOM     12  C   ALA     2      52.253  12.986   3.391  1.00  0.00              
ATOM     13  O   ALA     2      51.034  12.834   3.347  1.00  0.00  
TER  

列名由 Rpdb 添加为(注意:chainid、insert 和 segid 没有值):

recname eleid elename alt resname chainid resid insert     x1      x2     x3 occ temp segid

有谁知道添加上述chainid的方法?谢谢!

4

1 回答 1

1

通过使用“TER”来定义蛋白质链的开始和结束,我现在可以做一些事情,但如果有人有更好/更顺畅/更快的方法,请告诉我:

#works for pdb file with two chains
pdb.input.table=read.delim(file.choose(),sep="",header=F)

#pdb chain splitting
chainAstart=1
chainAend=which(pdb.input.table=="TER")[1]
chainBstart=which(pdb.input.table=="TER")[1]+1
chainBend=which(pdb.input.table=="TER")[2]

new.chain.id=c(rep("A",chainAend),rep("B",chainBend-chainAend))

pdb.dock.input=cbind(pdb.input.table,new.chain.id)
于 2015-07-20T23:25:59.207 回答