搜索FASTA格式的序列

时间:2017-01-02 23:18:58

标签: python regex biopython fasta

我试图在FASTA格式的DNA序列中寻找多个特定序列,然后将它们打印出来。为简单起见,我制作了一个简短的字符串序列来显示我的问题。

import re
seq = "QPPLSK"
find_in_seq = re.search(r"[^P](P|K|R|H|W)", seq)
print find_in_seq.string[find_in_seq.start():find_in_seq.end()]

当有2个匹配“QP”和“SK”时,我只得到一个匹配“QP”的输出。如何显示2场比赛而不是仅显示第一场比赛?

由于

1 个答案:

答案 0 :(得分:0)

使用re.findall并更改正则表达式,以便不再有捕获组 - [^P](?:P|K|R|H|W)[^P][PKRHW]

import re
seq = "QPPLSK"
find_in_seq = re.findall(r"[^P][PKRHW]", str(seq))
print(find_in_seq)

请参阅Python demo

请注意,如果您想匹配P以外的任何字母,最好使用[A-OQ-Z]