我目前正在使用PDB的数据集,我对残留物的大小(每个残基的原子数)感兴趣。我意识到原子的数量-len(residue.child_list) - 与不同蛋白质中的残基不同,即使它们是相同的残基。例如:残留'LEU'在一个蛋白质中有8个原子但在另一个蛋白质中有19个原子!
我的猜测是PDB或PDBParser()中的错误,但差异很大!
例如,在分子30Q2的情况下:
r = model['B'][88]
r1 = model['B'][15] # residue at chain B position 15
In [287]: r.resname
Out[287]: 'VAL'
In [288]: r1.resname
Out[288]: 'VAL'
但是
In [274]: len(r.child_list)
Out[274]: 16
In [276]: len(r1.child_list)
Out[276]: 7
因此,即使在单个分子内,原子数也存在差异。我想知道这在生物学上是否正常,或者是否有什么问题。谢谢。
强文
答案 0 :(得分:1)
我只是看了提供的PDB,不同之处在于,第一个VAL(88)的氢原子坐标(H),而其他的VAL(15)则没有。
ATOM 2962 N VAL B 88 33.193 42.159 23.916 1.00 11.01 N
ANISOU 2962 N VAL B 88 1516 955 1712 56 -227 -128 N
ATOM 2963 CA VAL B 88 33.755 43.168 24.800 1.00 12.28 C
ANISOU 2963 CA VAL B 88 1782 1585 1298 356 -14 286 C
ATOM 2964 C VAL B 88 35.255 43.284 24.530 1.00 12.91 C
ANISOU 2964 C VAL B 88 1661 1672 1573 -249 0 -435 C
ATOM 2965 O VAL B 88 35.961 42.283 24.451 1.00 14.78 O
ANISOU 2965 O VAL B 88 1897 1264 2453 30 -293 21 O
ATOM 2966 CB VAL B 88 33.524 42.841 26.286 1.00 12.81 C
ANISOU 2966 CB VAL B 88 1768 1352 1747 -50 -221 -304 C
ATOM 2967 CG1 VAL B 88 34.166 43.892 27.160 1.00 16.03 C
ANISOU 2967 CG1 VAL B 88 2292 1980 1819 -147 73 -8 C
ATOM 2968 CG2 VAL B 88 32.020 42.727 26.586 1.00 17.67 C
ANISOU 2968 CG2 VAL B 88 2210 2728 1774 -363 -401 83 C
ATOM 2969 H VAL B 88 33.642 41.425 23.899 1.00 13.21 H
ATOM 2970 HA VAL B 88 33.340 44.035 24.608 1.00 14.73 H
ATOM 2971 HB VAL B 88 33.941 41.979 26.492 1.00 15.37 H
ATOM 2972 HG11 VAL B 88 34.011 43.670 28.081 1.00 19.23 H
ATOM 2973 HG12 VAL B 88 35.110 43.912 26.983 1.00 19.23 H
ATOM 2974 HG13 VAL B 88 33.777 44.746 26.959 1.00 19.23 H
ATOM 2975 HG21 VAL B 88 31.902 42.523 27.516 1.00 21.20 H
ATOM 2976 HG22 VAL B 88 31.596 43.562 26.377 1.00 21.20 H
ATOM 2977 HG23 VAL B 88 31.647 42.026 26.047 1.00 21.20 H
我会为分析中的每个残基过滤掉这些原子。然后你应该几乎总是得到相同数量的原子。正如有人提到的那样,你必须考虑的另一件事是Biopython称之为“无序残留物”。这些残基对于晶格中的原子有不止一个替代位置(他们称之为'altloc')。对此进行排序可以解决您的问题。 如果您需要帮助过滤掉这些原子,请告诉我。 法比奥