如何使用Biopython解析PQR文件
我想启用读取文件(使用原子电荷和半径替换占用率和B因子的修改文件) Biopython PDB解析器无法读取Bfactor,因为它通过PDB列索引(PQR格式不支持)检索值 标准PDB原子记录示例:如何使用Biopython解析PQR文件,python,parsing,biopython,protein-database,Python,Parsing,Biopython,Protein Database,我想启用读取文件(使用原子电荷和半径替换占用率和B因子的修改文件) Biopython PDB解析器无法读取Bfactor,因为它通过PDB列索引(PQR格式不支持)检索值 标准PDB原子记录示例: ATOM 1 N LEU 1 3.469 24.678 1.940 1.00 48.46 N ATOM 1 N LEU 1 3.469 24.678 1.940 0.1010 1.8240
ATOM 1 N LEU 1 3.469 24.678 1.940 1.00 48.46 N
ATOM 1 N LEU 1 3.469 24.678 1.940 0.1010 1.8240
1.00为入住率,48.46为B系数
和PQR:
ATOM 1 N LEU 1 3.469 24.678 1.940 1.00 48.46 N
ATOM 1 N LEU 1 3.469 24.678 1.940 0.1010 1.8240
0.1010表示电荷,1.8240表示半径
因此,如何避免“PDBConConstructionException:无效或缺少B因子”并正确解析电荷/半径值?由于PQR格式不再是标准PDB格式,您需要修改Biopython PDB解析器的源代码以满足您的需要。谢天谢地,Biopython是开源的,
PDB.PDBParser
非常可读/易于修改
提取数据
从您提供的:
“由于使用空格而不是特定的列宽和对齐方式,此格式可能与PDB有很大的差异。”
Biopython的PDB解析器严格要求列宽度上的值。(PDB文件的值之间没有空格是完全有效的。)我认为最好的办法是修改PDB.PDBParser
中提取行数据的方式,但保留其大部分其他错误检查和结构的创建。由于字段将以空格分隔,您只需使用line.split()
创建参数列表,然后给出有意义的名称
解析给定行中的数据后,您可能希望将其存储为Atom对象中的字段)。原子是。也许您可以修改init_atom()
将电荷和半径作为字段添加到PDB.atom
对象中
从哪里开始
这是您想要修改的
概述
所以,从头到尾,我要做的是:
创建一个新的StructureBuilder
方法init\u pqr\u atom()
(仿照init\u atom()
)创建一个新的atom对象,将charge
和radius
作为字段添加到新的atom
中。(也许您想创建一个继承PDB.Atom
的PDB.PQRAtom
对象)
在ofPDBParser
中创建一个可选参数,告诉解析器它是PQR文件(不是标准PDB):
传递是将pqr
传递到\u parse()
,它将其传递到\u parse\u坐标
在\u parse\u坐标中,如果不是PQR文件,则按正常方式解析数据(即使用默认PDB列规范)。如果是PQR,则根据以空格分隔的格式解析数据(同样,Python的str.split()
将从字符串返回以空格分隔的项目列表)
在结构中构建适当的Atom
或PQRAtom
对象,传递解析后的值