- Biopython 教程
- Biopython - 首页
- Biopython - 简介
- Biopython - 安装
- 创建简单应用
- Biopython - 序列
- 高级序列操作
- 序列 I/O 操作
- Biopython - 序列比对
- Biopython - BLAST 概述
- Biopython - Entrez 数据库
- Biopython - PDB 模块
- Biopython - 基序对象
- Biopython - BioSQL 模块
- Biopython - 群体遗传学
- Biopython - 基因组分析
- Biopython - 表型微阵列
- Biopython - 绘图
- Biopython - 聚类分析
- Biopython - 机器学习
- Biopython - 测试技术
- Biopython 资源
- Biopython - 快速指南
- Biopython - 有用资源
- Biopython - 讨论
Biopython - PDB 模块
Biopython 提供 Bio.PDB 模块来处理多肽结构。PDB(蛋白质数据库)是最大的在线蛋白质结构资源。它包含大量不同的蛋白质结构,包括蛋白质-蛋白质、蛋白质-DNA、蛋白质-RNA 复合物。
为了加载 PDB,键入以下命令:
from Bio.PDB import *
蛋白质结构文件格式
PDB 以三种不同的格式分发蛋白质结构:
- 基于 XML 的文件格式,Biopython 不支持该格式
- pdb 文件格式,这是一种特殊格式的文本文件
- PDBx/mmCIF 文件格式
蛋白质数据库分发的 PDB 文件可能包含格式错误,这些错误使它们变得模棱两可或难以解析。Bio.PDB 模块尝试自动处理这些错误。
Bio.PDB 模块实现了两种不同的解析器,一种是 mmCIF 格式,另一种是 pdb 格式。
让我们详细了解如何解析每种格式:
mmCIF 解析器
让我们使用以下命令从 pdb 服务器下载 mmCIF 格式的示例数据库:
>>> pdbl = PDBList() >>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'mmCif')
这将从服务器下载指定的文件 (2fat.cif),并将其存储在当前工作目录中。
这里,PDBList 提供了列出和下载在线 PDB FTP 服务器上文件的选项。retrieve_pdb_file 方法需要下载的文件名(不带扩展名)。retrieve_pdb_file 还可以选择指定下载目录 pdir 和文件格式 file_format。文件格式的可能值如下:
- “mmCif”(默认,PDBx/mmCif 文件)
- “pdb”(PDB 格式)
- “xml”(PMDML/XML 格式)
- “mmtf”(高度压缩)
- “bundle”(用于大型结构的 PDB 格式存档)
要加载 cif 文件,请使用 Bio.MMCIF.MMCIFParser,如下所示:
>>> parser = MMCIFParser(QUIET = True) >>> data = parser.get_structure("2FAT", "2FAT.cif")
这里,QUIET 在解析文件期间抑制警告。**get_structure 将解析文件并返回 id 为 2FAT 的结构**(第一个参数)。
运行上述命令后,它将解析文件并打印可能的警告(如果存在)。
现在,使用以下命令检查结构:
>>> data <Structure id = 2FAT> To get the type, use type method as specified below, >>> print(type(data)) <class 'Bio.PDB.Structure.Structure'>
我们已成功解析文件并获得了蛋白质的结构。我们将在后面的章节中学习蛋白质结构的详细信息以及如何获取它。
PDB 解析器
让我们使用以下命令从 pdb 服务器下载 PDB 格式的示例数据库:
>>> pdbl = PDBList() >>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'pdb')
这将从服务器下载指定的文件 (pdb2fat.ent),并将其存储在当前工作目录中。
要加载 pdb 文件,请使用 Bio.PDB.PDBParser,如下所示:
>>> parser = PDBParser(PERMISSIVE = True, QUIET = True) >>> data = parser.get_structure("2fat","pdb2fat.ent")
这里,get_structure 与 MMCIFParser 类似。PERMISSIVE 选项尝试尽可能灵活地解析蛋白质数据。
现在,使用以下代码片段检查结构及其类型:
>>> data <Structure id = 2fat> >>> print(type(data)) <class 'Bio.PDB.Structure.Structure'>
好的,标题结构存储字典信息。要执行此操作,请键入以下命令:
>>> print(data.header.keys()) dict_keys([ 'name', 'head', 'deposition_date', 'release_date', 'structure_method', 'resolution', 'structure_reference', 'journal_reference', 'author', 'compound', 'source', 'keywords', 'journal']) >>>
要获取名称,请使用以下代码:
>>> print(data.header["name"]) an anti-urokinase plasminogen activator receptor (upar) antibody: crystal structure and binding epitope >>>
您还可以使用以下代码检查日期和分辨率:
>>> print(data.header["release_date"]) 2006-11-14 >>> print(data.header["resolution"]) 1.77
PDB 结构
PDB 结构由单个模型组成,包含两条链。
- 链 L,包含一定数量的残基
- 链 H,包含一定数量的残基
每个残基由多个原子组成,每个原子都有一个由 (x, y, z) 坐标表示的 3D 位置。
让我们在以下部分详细了解如何获取原子的结构:
模型
Structure.get_models() 方法返回模型的迭代器。它定义如下:
>>> model = data.get_models() >>> model <generator object get_models at 0x103fa1c80> >>> models = list(model) >>> models [<Model id = 0>] >>> type(models[0]) <class 'Bio.PDB.Model.Model'>
这里,模型准确描述了一种 3D 构象。它包含一个或多个链。
链
Model.get_chain() 方法返回链的迭代器。它定义如下:
>>> chains = list(models[0].get_chains()) >>> chains [<Chain id = L>, <Chain id = H>] >>> type(chains[0]) <class 'Bio.PDB.Chain.Chain'>
这里,链描述了一个正确的多肽结构,即一系列连续结合的残基。
残基
Chain.get_residues() 方法返回残基的迭代器。它定义如下:
>>> residue = list(chains[0].get_residues()) >>> len(residue) 293 >>> residue1 = list(chains[1].get_residues()) >>> len(residue1) 311
好的,残基包含属于氨基酸的原子。
原子
Residue.get_atom() 返回原子的迭代器,定义如下:
>>> atoms = list(residue[0].get_atoms()) >>> atoms [<Atom N>, <Atom CA>, <Atom C>, <Atom Ov, <Atom CB>, <Atom CG>, <Atom OD1>, <Atom OD2>]
原子保存原子的 3D 坐标,称为向量。它定义如下
>>> atoms[0].get_vector() <Vector 18.49, 73.26, 44.16>
它表示 x、y 和 z 坐标值。