我对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磷酸丝氨酸
答案 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
从那里你应该能够打印出你想要的文件。