python - 将 UniProt txt 文件编译成字典以检索键 (ID) 和值 (MOD_RES)

标签 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 锌 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/

相关文章:

php - 平面文件数据库 php 应用程序

sql-server - SSIS 中的波浪号 (~) 分隔文件读取

sql-server - 当设置为 CRLF 时,SSIS 将 LF 读取为终止符

python - 每次在 django 中生成 View 时更新模型

Python请求库没有正确遵循302?

regex - vim 模式匹配两个标记,中间没有另一个给定的标记

java - 正则表达式在 String.matches() 中不起作用

python - 点积两个 4D Numpy 数组

python - 如何使用matplotlib在python中生成3d三角形曲面(trisurf)图(数据已准备好)?

regex - 以所有可能的组合匹配字长为 4 的精确 3 个字符