将UniProt txt文件编译成dict以检索密钥(ID)和值(MOD_RES)

时间:2015-11-26 21:20:47

标签: python regex flat-file

我对python并不熟悉并尝试从文本文件(test1),Uniprot中检索数据,如下所示:

ID YSH1_YEAST已审核; 779 AA。

AC Q06224; D6VYS4;

DT 10-JAN-2006,整合到UniProtKB / Swiss-Prot

DT 01-NOV-1996,序列版本1。

FT METAL 184 184 Zinc 1. {ECO:0000250}。

FT METAL 184 184 Zinc 2. {ECO:0000250}。

FT METAL 430 430 Zinc 2. {ECO:0000250}。

FT MOD_RES 517 517磷酸丝氨酸;通过ATM或ATR。

FT {ECO:0000244 | PubMed:18407956}。

FT MUTAGEN 37 37 D-> N:内切核酸酶活性的丧失。

到目前为止,我可以通过使用这些codelet单独检索MOD_RES和AC:

test = open('test1','r')

regex2 = re.compile(r'^ AC \ s + \ w +')

for line in test:

ac = regex2.findall(line)

for a in ac:

    a=''.join(a)

    print(a[5:12])

Q06224

P16521

testfile = open('test1')

regex = re.compile(r'^ FT \ s + \ MOD_RES \ s + \ w + \ s + \ w + \ s + \ w。+')

for testfile中的行:

po = regex.findall(line)

for p in po:

    p=''.join(p)

    print(p[23:48])

517磷酸丝氨酸;

2 N-乙酰丝氨酸

187 N6,N6,N6-trime

196 N6,N6,N6-trime

目标是将AC及其相关的修改残留(MOD_RES)转换为制表符分隔格式。此外,如果特定AC的数据中出现多个MOS_RES,请复制该AC并获取如下表格格式:

AC MOD_RES

Q06224 517 517磷酸丝氨酸

P04524 75 75磷酸丝氨酸

Q06224 57 57磷酸丝氨酸

1 个答案:

答案 0 :(得分:1)

你看过Biopython吗?

你应该能够解析你的Uniprot文件:

from Bio import SwissProt
for record in SwissProt.parse(open('/path/to/your/uniprot_sprot.dat')):
  for feature in record.features:
    print feature

从那里你应该能够打印出你想要的文件。