使用Biopython解析PDB结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文件读取

导入PDBParser读取本地pdb文件

>>> from Bio.PDB import PDBParser
>>> p=PDBParser()
>>> s=p.get_structure("7kn5","7kn5.pdb")
>>> s
<Structure id=7kn5>

get_strucutre()方法有两个参数,第一个参数为id,相当于一个可以自己指定的名字,第二个参数是文件名

结构的表示


一个 Structure 对象的整体布局遵循称为SMCRA(Structure/Model/Chain/Residue/Atom,结构/模型/链/残基/原子)的体系架构:

  • 结构由模型组成
  • 模型由多条链组成
  • 链由残基组成
  • 多个原子构成残基
  • >>> model=s[0]   
    >>> model
    <Model id=0>
    >>> chain=model['A']
    >>> chain 
    <Chain id=A>
    >>> for i in chain:
    ...     print(i)
    ... 
    <Residue GLN het=  resseq=1 icode= >
    <Residue VAL het=  resseq=2 icode= >
    <Residue GLN het=  resseq=3 icode= >
    >>> chain[3]
    <Residue GLN het=  resseq=3 icode= >
    

    笔者这里导入的蛋白是一个只有单链的蛋白,因此chain也只有一条,对于有多条链的蛋白可以用ABCDEF一直索引下去;而每个链由多个氨基酸组成,直接使用下标索引可以找到,这里只列出了遍历结果的小部分。
    注意:chain的下标是从1开始的,不是从0开始的

    对于不同链的描述,其实用PDB也可以看到的

    残基对象的一些其他方法:

    >>> residue.get_resname()       # 返回残基名称,如 "ASN"
    >>> residue.is_disordered()     # 返回1如果该残基含有无序原子
    >>> residue.get_segid()         # 返回其SEGID如"CHN1"
    >>> residue.has_id(name)        # 判断一个残疾是否有某个原子
    

    atom对象包含在chain:

    >>>chain[1]
    <Residue GLN het=  resseq=1 icode= >
    >>> for atom in chain[1]:
    ...     print(atom)
    ... 
    <Atom N>
    <Atom CA>
    <Atom C>
    <Atom CB>
    <Atom O>
    <Atom CG>
    <Atom CD>
    <Atom NE2>
    <Atom OE1>
    

    用文字索引可以指向某个chain的atom:

    >>> atom=residue['CA'] 
    
    >>> for key in atom.__dict__:
    ...     print(key,atom.__dict__[key])
    ... 
    level A
    parent <Residue GLN het=  resseq=1 icode= >
    name CA
    fullname  CA
    coord [20.024 -3.073 -1.719]
    bfactor 86.76
    occupancy 1.0
    altloc
    full_id ('7kn5', 0, 'A', (' ', 1, ' '), ('CA', ' '))
    id CA
    disordered_flag 0
    anisou_array None
    siguij_array None
    sigatm_array None
    serial_number 2
    xtra {}
    element C
    mass 12.0107
    pqr_charge None
    radius None
    _sorting_keys {'N': 0, 'CA': 1, 'C': 2, 'O': 3}
    

    可以看出,atom对象中存储了包括原子名称,原子坐标,B因子,原子质量,altloc标识符和原子名称等数据

    随缘更新后续内容

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值