搜索 FASTA 格式的序列

searching for sequences in a FASTA format

我试图在 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 个匹配项而不是只显示第一个匹配项?

谢谢

使用 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].