首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python语言中解析.pdb文件

在Python语言中解析.pdb文件
EN

Stack Overflow用户
提问于 2012-04-26 06:22:42
回答 4查看 25.5K关注 0票数 5

我正在尝试为.pdb文件(它们显示蛋白质结构)编写一个快速解析器。我正在研究的一个蛋白质的例子是KRAS (癌症中常见的),这里是:http://www.rcsb.org/pdb/files/3GFT.pdb

如果向下滚动到足够远,您将看到如下所示的行: ATOM 1N MET A 1 63.645 97.355 31.526 1.00 33.80 N

第一个元素“原子”意味着它与蛋白质中的一个实际原子有关。1涉及一般计数,N涉及原子的类型,"MET“是残基的名称,"A”涉及链的类型,1(第二个"1")是原子计数,然后接下来的3个数字是空间中的x-y-z位置。

我需要的输出是这样的(下面的"1“对应于原子计数,而不是一般计数):MET A 1 63.645 97.355 31.526

更复杂的是,有时原子计数(本例中的第二个"1“)是负数。在这些情况下,我想跳过这一行,继续,直到我点击一个正的条目,因为这些元素与找到位置所需的生物化学有关,而不是实际的蛋白质。更糟糕的是,有时你会得到这样的一行:

ATOM 139 CA AILE A 21 63.260 111.496 12.203 0.5012.87C

ATOM 140CA胆汁A 21 63.275 111.495 12.201 0.50 12.17 C

虽然他们都提到残基21,但生物化学不够精确,无法获得确切的位置,所以他们给出了两个选择。理想情况下,我会指定"1“、"2”或其他任何值,但如果我只选择第一个选项,就可以了。最后,对于我原始示例中的原子类型("N"),我只想获得那些带有"CA“的行。

我是python的新手,我的训练是生物统计学,所以我想知道做这件事的最好方法是什么?我要用for循环逐行解析这个代码吗?在python中有没有更快的方法呢?如何处理某些原子的重复条目?

我知道这有点问,但一些指导将是非常有帮助的!我已经使用R编写了所有的统计数据位,但现在我只需要将我的文件转换为正确的格式!

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-26 07:34:39

这是一个很长的描述。我不确定我是否全部正确:-)如果字段(以ATOM开头的行)是固定的,您可以使用拆分和一些并列。我使用了一个散列来查看该条目是否已被查看,从而按照您的要求消除重复项。希望这能给你一个开始,

代码语言:javascript
复制
visited = {}
for line in open('3GFT.pdb'):
    list = line.split()
    id = list[0]
    if id == 'ATOM':
        type = list[2]
        if type == 'CA':
            residue = list[3]
            type_of_chain = list[4]
            atom_count = int(list[5])
            position = list[6:8]
            if atom_count >= 0:
                if type_of_chain not in visited:
                    visited[type_of_chain] = 1
                    print residue,type_of_chain,atom_count,' '.join(position)

将输出,

代码语言:javascript
复制
MET A 1 62.935 97.579
GLY B 0 39.524 105.916
GLY C 0 67.295 110.376
MET D 1 59.311 124.106
GLY E 0 44.038 96.819
GLY F 0 44.187 123.590
票数 5
EN

Stack Overflow用户

发布于 2020-05-06 23:50:00

我有点惊讶,没有人提到来自BioPython的Bio.PDB包。自己编写PDB解析器是一种相当严重的不必要的重新发明,我的意思是重新实现轮子。

BioPython是一个有用的软件包集合,用于处理其他类型的生物数据(例如蛋白质或核酸序列)。

我知道这是一个古老的问题,但也许有人仍然认为这个指针有帮助。

票数 8
EN

Stack Overflow用户

发布于 2012-04-26 07:28:11

它看起来像是一个解析PDB文件的库已经存在。查看:

http://www.csb.pitt.edu/prody/index.html

简单地浏览一下教程,似乎这就是你所说的,不是吗?

http://www.csb.pitt.edu/prody/tutorial.html#atomic-data

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10324674

复制
相关文章

相似问题

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