python pdb模块_Biopython PDB模块
Biopython PDB模块
Biopython PDB模块详细操作教程
Biopython提供了Bio.PDB模块来操纵多肽结构。PDB(蛋白质数据库)是在线上最大的蛋白质结构资源。它具有许多不同的蛋白质结构,包括蛋白质-蛋白质,蛋白质-DNA,蛋白质-RNA复合物。
要加载PDB,请键入以下命令 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
fromBio.PDB import*
1. 蛋白质结构文件格式
PDB以三种不同的格式分布蛋白质结构 -
Biopython不支持基于XML的文件格式。
pdb文件格式,这是一种特殊格式的文本文件。
PDBx/mmCIF文件格式。
Protein Data Bank分发的PDB文件可能包含格式错误,这会使它们模棱两可或难以解析。Bio.PDB模块尝试自动处理这些错误。Bio.PDB模块实现两种不同的解析器,一种是mmCIF格式,另一种是pdb格式。
下面我们来学习如何详细解析每种格式 -
1.1. mmCIF解析器
使用以下命令从pdb服务器下载mmCIF格式的示例数据库 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> pdbl = PDBList()
>>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'mmCif')
它将从服务器下载指定的文件(2fat.cif)并将其存储在当前工作目录中。
在这里,PDBList提供了从联机PDB FTP服务器列出和下载文件的选项。resolve_pdb_file方法需要下载的文件名称,不带扩展名。resolve_pdb_file也可以选择指定下载目录 -pdir和文件格式 - file_format。文件格式的可能值如下-
mmCif (默认, PDBx/mmCif文件)
pdb (PDB格式)
xml (PMDML/XML格式)
mmtf (高度压缩)
bundle (适用于大型结构的PDB格式存档)
要加载CIF文件,请使用Bio.MMCIF.MMCIFParser,如下所示-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> parser = MMCIFParser(QUIET =True)
>>> data = parser.get_structure("2FAT", "2FAT.cif")
在此,QUIET会在分析文件时禁止显示警告。get_structure将解析文件并返回ID为2FAT(第一个参数)的结构。运行上述命令后,它将解析文件并打印可能的警告(如果有的话)。现在,使用以下命令检查结构 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> data
To get the type, use type method asspecified below,
>>> print(type(data))
这样就已经成功解析了文件并获得了蛋白质的结构。在下一章中,我们将学习蛋白质结构的详细信息以及如何获得它。
1.2. PDB解析器
使用以下命令从pdb服务器下载PDB格式的示例数据库 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> pdbl = PDBList()
>>> pdbl.retrieve_pdb_file('2FAT', pdir = '.', file_format = 'pdb')
这将从服务器下载指定的文件(pdb2fat.ent)并将其存储在当前工作目录中。要加载pdb文件,请使用Bio.PDB.PDBParser,如下所示-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> parser = PDBParser(PERMISSIVE =True, QUIET =True)
>>> data = parser.get_structure("2fat","pdb2fat.ent")
此处,get_structure与MMCIFParser相似。PERMISSIVE选项尝试尽可能灵活地解析蛋白质数据。
现在,使用下面给出的代码片段检查结构及其类型-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> data
>>> print(type(data))
好了,头部结构存储了字典信息。要执行此操作,请键入以下命令-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> print(data.header.keys()) dict_keys([
'name', 'head', 'deposition_date', 'release_date', 'structure_method', 'resolution',
'structure_reference', 'journal_reference', 'author', 'compound', 'source',
'keywords', 'journal'])
>>>
要获取名称,请使用以下代码-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> print(data.header["name"])
an anti-urokinase plasminogen activatorreceptor(upar) antibody: crystal
structure andbinding epitope
>>>
还可以使用以下代码检查日期和解决方案-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> print(data.header["release_date"]) 2006-11-14
>>> print(data.header["resolution"]) 1.77
2. PDB结构
PDB结构由包含两个链的单个模型组成。
L链,含残基数
H链,含残基数
每个残基由多个原子组成,每个原子都有一个由(x,y,z)坐标表示的3D位置。在以下部分中详细了解如何获得原子的结构 -
2.1. 模型
Structure.get_models()方法返回模型上的迭代器。它定义如下 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> model= data.get_models()
>>> model
>>> models = list(model)
>>> models []
>>> type(models[0])
在此,模型精确地描述了一个3D构象。它包含一个或多个链。
2.2. 链
Model.get_chain()方法返回链上的迭代器。它定义如下-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> chains = list(models[0].get_chains())
>>> chains
[, ]
>>> type(chains[0])
在此,链描述了适当的多肽结构,即结合残基的连续序列。
2.3. 残基
Chain.get_residues()方法返回残基上的迭代器。它定义如下-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> residue = list(chains[0].get_residues())
>>> len(residue)
293
>>> residue1 = list(chains[1].get_residues())
>>> len(residue1)
311
残基保留着属于氨基酸的原子。
2.4. 原子
Residue.get_atom()返回原子上的迭代器,如下所示:
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> atoms = list(residue[0].get_atoms())
>>> atoms
[, , , , , , ]
原子拥有原子的3D坐标,称为向量。定义如下 -
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-25
>>> atoms[0].get_vector()
它表示x,y和z的坐标值。
python pdb模块_Biopython PDB模块相关推荐
- pdb python 命令_使用pdb进行Python调试(下)
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 显示表达式 与使用p和pp打印表达式类似,你可以使用命令display [expression]告诉pdb ...
- python 模块 导入机制 模块搜索 Python包 发布python模块或程序
python 模块 python模块:以.py结尾的代码文件. 顶层文件: 程序执行入口 模块文件1 模块文件2 模块文件3 在python中一 ...
- python argparse模块_Python argparse模块应用实例解析
这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...
- python莫比乌斯环_python基础|模块
1 模块简介 在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块.模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写 ...
- python ascii函数二进制_python模块介绍- binascii:二进制和ASCII互转以及其他进制转换...
20.1 binascii:二进制和ASCII互转 作用:二进制和ASCII互相转换. Python版本:1.5及以后版本 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法. ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- Python炫技操作:模块重载的五种方法
作者 | 写代码的明哥 来源 | Python编程时光 环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foofoo└── bar.py 0 directories ...
- python 多线程编程之_thread模块
python 多线程编程之_thread模块 参考书籍:python核心编程 _thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁.简单锁 ...
- Python游戏开发,pygame模块,Python实现打砖块小游戏
前言: 本期我们将利用python制作一个打砖块小游戏,废话不多说,让我们愉快地开始吧~ 效果展示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdjcY4gn-16 ...
最新文章
- 腾讯微视:向前一步是悲壮,向后一步是绝望zz
- Python学习六大路线,教你快速上手
- Windows XP SP2疑难速解50问
- html5新知识点,Html5基本知识点
- ant external lib
- CF1500C Matrix Sorting(拓扑排序)
- Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found
- pytorch 关于显存增长原因以及显存占用优化
- android列表项点击事件,Android 开发 tips(2):监听 Listview 列表项点击事件
- C++ API 设计 15 第十章 测试
- mysql 查询分析器_MYSQL查询分析器工具
- CodeSmith(1):使用和语法简介
- Linux系统安装Node.js步骤
- Vmware中win7联网
- 大三期末网页设计作业 以旅游景点风景主题介绍网站设计与实现 (广东名胜古迹)
- 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
- Nacos本地进行了远程配置而远程未配置相关信息而导致应用报内存泄漏问题的异常
- vue实现用户登录验证 + 权限验证 + 动态路由(左侧菜单栏)
- 计算机毕业设计SSM大学生社团管理系统【附源码数据库】
- 计算机网络协议分为哪几层?7层协议、5层协议、4层协议。
热门文章
- 基于arduino制作激光电子竖琴
- php 万能密码,万能用户名和万能密码
- 国家计算机机房地址,国家电子计算机机房设计规范..doc
- 投影仪与计算机连接方式,投影仪怎么连接电脑 电脑与投影仪的连接方法
- KNN聚类的原理和实现
- 服务器lsass系统错误,lsass.exe-系统错误,终结点格式无效 windows2003服务器出错
- 离散数学 第一章 部分课后习题
- 计算机控制系统信号恢复之零阶保持器
- Word编辑公式的快捷键与命令
- visio软件接口流程图_Microsoft Office Visio绘制系统框图以及流程图的操作步骤