【问题标题】:How does Bio.PDB identify hetero-residues?Bio.PDB 如何识别异质残基?
【发布时间】:2018-05-09 00:47:54
【问题描述】:

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

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

或者它是否检查每个残基中的原子名称并将其与某些杂原子集进行比较?

我问的原因是因为在 4MDH 链 B 中,坐标部分的第一个残基是 ACE(乙酰基)。它只有 C 和 O 原子,PDB 文件将其列为 HETATM。但是当这个残基的residual.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, ' ')
>>> 

【问题讨论】:

    标签: structure biopython pdb


    【解决方案1】:

    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.
    

    mmtfParserthis_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] 会给你与问题中相同的原子。

    【讨论】:

      猜你喜欢
      • 2021-01-12
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2017-10-19
      相关资源
      最近更新 更多