我正在嘗試爲.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