首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Biopython解析PQR文件

如何用Biopython解析PQR文件
EN

Stack Overflow用户
提问于 2012-11-13 15:29:10
回答 1查看 779关注 0票数 2

我想使Biopython能够读取PQR文件(修改后的PDB文件被原子电荷和radius替换为占用率和B因子)。

Biopython解析器无法读取Bfactor,因为它通过PDB列索引检索值( PQR格式不遵守该值)。

标准PDB原子记录的示例:

代码语言:javascript
运行
复制
ATOM      1  N   LEU     1       3.469  24.678   1.940  1.00 48.46           N

1.00为占用,48.46为bfactor

与PQR :

代码语言:javascript
运行
复制
ATOM      1  N   LEU     1       3.469  24.678   1.940  0.1010 1.8240

0.1010是电荷,1.8240是半径

那么,如何避免"PDBConstructionException: Invalid or missing B factor"并正确解析电荷/半径值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 17:13:35

由于PQR格式不再是标准PDB格式,因此需要修改Biopython解析器的源代码以满足您的需要。值得庆幸的是,Biopython是开放源码的,而且PDB.PDBParser非常易读/易于修改。

提取数据

你给的PQR描述

“由于使用空白而不是特定的列宽和对齐,这种格式可能与PDB大不相同。”

Biopython的PDB解析器严格地期望列宽的值。( PDB文件之间没有空白是完全有效的。)我认为您最好的选择是修改在PDB.PDBParser中提取行数据的方式,但是维护它的大多数其他错误检查和Structure-creation。由于字段将被空格分隔,您可以简单地使用line.split()创建参数列表,然后给出有意义的名称。

一旦您从给定的行解析数据,您可能希望将其存储为Atom对象中的字段)。原子是structure_builder。也许您可以修改init_atom(),将电荷和半径作为字段添加到PDB.Atom对象中。

从哪里开始

这是您想要修改的源代码中的近似位置

提纲

所以,开始完成,下面是我要做的:

  1. 创建一个新的StructureBuilder方法init_pqr_atom() (以init_atom()为模型),它创建一个新的Atom对象,将chargeradius作为字段添加到新的Atom中。(也许您希望创建一个继承PDB.PQRAtomPDB.Atom对象?)。
  2. 方法 of PDBParser中创建一个可选参数,该参数告诉解析器它是一个PQR文件(不是标准的PDB): def __init__(self,PERMISSIVE=True,get_header=False,structure_builder=None,QUIET=False,is_pqr=False):
  3. is_pqr传递给_parse(),后者将其传递给_parse_coordinates
  4. _parse_coordinates中,如果不是PQR文件,则将数据解析为普通数据(即使用默认的PDB列规范)。如果是PQR,则根据空格分隔的格式解析数据(同样,Python的str.split()将从字符串中返回空格分隔项的列表)。
  5. 在结构中构建适当的AtomPQRAtom对象,传递解析的值。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13363597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档