structure - Bio.PDB如何识别异物残基?

标签 structure biopython pdb

我想知道Bio.PDB如何将残基识别为异残基。
我知道,residual.id方法返回一个元组,其中第一项是hetery标志,第二项是残基标识符(数字),第三项是插入代码。

但是内部代码如何决定在异物标志字段中放置什么?是否检查残基中的原子是HETATM记录还是ATOM记录?

还是会检查每个残基中的原子名称,并将其与一组杂原子进行比较?

我问的原因是因为在4MDH链B中,坐标部分的第一个残基是ACE(乙酰基)。它只有C和O原子,并且PDB文件将其列为HETATM。但是当该残基的残基.id为('',0,'')时。

这是我的代码:

>>> from Bio.PDB.mmtf import MMTFParser
>>> structure = MMTFParser.get_structure_from_url('4mdh')
/Library/Python/2.7/site-packages/Bio/PDB/StructureBuilder.py:89: PDBConstructionWarning: WARNING: Chain A is discontinuous at line 0.
  PDBConstructionWarning)
/Library/Python/2.7/site-packages/Bio/PDB/StructureBuilder.py:89: PDBConstructionWarning: WARNING: Chain B is discontinuous at line 0.
  PDBConstructionWarning)
>>> chain = [c for c in structure.get_chains() if c.get_id() == 'B'][0]
>>> residue0 = [r for r in chain.get_residues() if r.id[1] == 0][0]
>>> residue0.id
(' ', 0, ' ')
>>> 

最佳答案

TL; DR:不是BioPython,而是进行解释的mmtf库。

source code:

self.structure_bulder.init_residue(group_name, self.this_type,
                                   group_number, insertion_code)

在此创建残渣。第二个参数(self.this_type)是init_residue中的field / hetero flag
def init_residue(self, resname, field, resseq, icode):
    """Create a new Residue object.
    Arguments:
     - resname - string, e.g. "ASN"
     - field - hetero flag, "W" for waters, "H" for hetero residues, otherwise blank.

mmtfParser中,为this_type中的整个链设置了set_chain_info

如果使用mmtf导入相同的序列,则可以看到链0和1被视为聚合物,被BioPython解释为“规则”原子。这是有道理的,因为乙酸酯基团与肽链结合。
from mmtf import fetch
decoded_data = fetch("4mdh")
print(decoded_data.entity_list)

[{'chainIndexList': [0, 1],
  'description': 'CYTOPLASMIC MALATE DEHYDROGENASE',
  'sequence': 'XSE...SSA',
  'type': 'polymer'},
 {'chainIndexList': [2, 4],
  'description': 'SULFATE ION',
  'sequence': '',
  'type': 'non-polymer'},
 {'chainIndexList': [3, 5],
  'description': 'NICOTINAMIDE-ADENINE-DINUCLEOTIDE',
  'sequence': '',
  'type': 'non-polymer'},
 {'chainIndexList': [6, 7],
  'description': 'water',
  'sequence': '',
  'type': 'water'}]

请注意,您可以通过索引访问BioPython中的模型,链和残基,例如structure[0]['B'][0]将给您与问题中相同的原子。

关于structure - Bio.PDB如何识别异物残基?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244015/

相关文章:

c++ - vector 数组,计算点积

python - 重新编号蛋白质结构文件 (pdb) 中的残基

python - 编译biopython1.65报错: error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

python - 使用 Biopython 查找并提取与精确 DNA 序列匹配的 FASTA

.net - 设置程序集以进行调试

python - (如何)我可以在命令行上使用类似于 pdb 的 pydevd 吗?

c - 关于结构填充的疑问

c - 将元素存储和访问到嵌套结构的数组

c 指向结构的自由指针

Python pdb——如何更改 "l"命令列出的默认行?