我正在尝试为.pdb文件(它们显示蛋白质结构)编写一个快速解析器。我看到的蛋白质的一个例子是KRAS(在癌症中很常见),并且在这里:http://www.rcsb.org/pdb/files/3GFT.pdb在Python中解析.pdb文件
如果向下滚动得足够远,您将看到一条如下所示的线: ATOM 1 N MET A 1 63.645 97.355 31.526 1.00 33.80 N
第一个元素“原子”是指这涉及蛋白质中的实际原子。 1涉及一般计数,N涉及原子的类型,“MET”是残基的名称,“A”涉及链的类型,1(第二个“1”)是原子计数并且那么接下来的3个数字就是太空中的xyz位置。
我需要输出什么是这样的(其中“1”下方对应于原子数,不是一般的计数): 遇到了一个1 63.645 97.355 31.526
为了使问题更复杂,有时原子数(在这种情况下第二个“1”)是负数。在那些情况下,我想跳过这条线,直到我打开一个积极的条目,因为这些元素与找到位置而不是实际蛋白质所需的生物化学有关。为了使事情更糟的是,有时你会得到一个行这样的:
ATOM 139 CA爱乐A 21 63.260 111.496 12.203 0.50 12.87Ç
ATOM 140 CA胆汁A 21 63.275 111.495 12.201 0.50 12.17Ç
虽然他们两者均指残留物21,生物化学物质不够精确以得到确切的位置,所以他们给出两种选择。理想情况下,我会指定“1”,“2”或其他,但如果我只是采取第一个选项就可以了。最后,在我原来的例子中,对于原子类型(“N”),我只想让这些行具有“CA”。
我是python的新手,我的培训是在biostats,所以我想知道什么是最好的方法来做到这一点?我是否用for循环解析这行代码?有没有办法在Python中更快地做到这一点?我如何处理一些原子的双重入口?
我意识到这是有点要问,但一些指导将是一大帮忙!我使用R编写了所有的统计数据,但现在我只需要以正确的格式获取我的文件!
谢谢!
这是相关的:http://code.google.com/ p/PDB-工具/? – miku 2012-04-25 22:25:00