搜索 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)
注意,如果你想匹配除P
以外的任何字母,你最好使用[A-OQ-Z]
.
我试图在 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)
注意,如果你想匹配除P
以外的任何字母,你最好使用[A-OQ-Z]
.