我对 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 锌 1。{ECO:0000250}。
FT METAL 184 184 锌 2。{ECO:0000250}。
FT METAL 430 430 锌 2。{ECO:0000250}。
FT MOD_RES 517 517 磷酸丝氨酸;通过 ATM 或 ATR。
《金融时报》{ECO:0000244|PubMed:18407956}。
FT 诱变剂 37 37 D->N:核酸内切 enzyme active 丧失。
.
.
到目前为止,我可以使用这些小代码分别检索 MOD_RES 和 AC:
测试 = open('test1', 'r')
regex2 = re.compile(r'^AC\s+\w+')
对于测试中的行:
ac = regex2.findall(line)
for a in ac:
a=''.join(a)
print(a[5:12])
Q06224
P16521
testfile = open('test1')
正则表达式 = re.compile(r'^FT\s+\MOD_RES\s+\w+\s+\w+\s+\w.+')
对于测试文件中的行:
po = regex.findall(line)
for p in po:
p=''.join(p)
print(p[23:48])
517 磷丝氨酸;
2N-乙酰丝氨酸
187 N6,N6,N6-三联
196 N6,N6,N6-三联
目标是将 AC 及其相关修饰残基 (MOD_RES) 转换为制表符独立格式。另外,如果特定 AC 的数据中出现多个 MOS_RES,请复制该 AC 并获取如下表格式:
AC MOD_RES
Q06224 517 517 磷丝氨酸
P04524 75 75 磷丝氨酸
Q06224 57 57 磷丝氨酸
最佳答案
你看过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
从那里您应该能够将想要的内容打印到文件中。
关于python - 将 UniProt txt 文件编译成字典以检索键 (ID) 和值 (MOD_RES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947176/