如何使用python查找DNA序列中的共选择重复序列?

如何使用python查找DNA序列中的共选择重复序列?,python,Python,我有像这样的DNA序列 seq='ATCGTTTTTCGAAACTGCCCCCCACTGGGGA' 我想用python打印连续重复核苷酸(如果它连续重复两次以上的话) 对于该序列,输出应为 TTTTT AAA CCCCCC GGGG 你可能想看看 用法示例: for _, group in itertools.groupby(seq): group = ''.join(group) if len(group) > 2: print group 通过反向

我有像这样的DNA序列

seq='ATCGTTTTTCGAAACTGCCCCCCACTGGGGA'
我想用python打印连续重复核苷酸(如果它连续重复两次以上的话)

对于该序列,输出应为

TTTTT
AAA
CCCCCC
GGGG

你可能想看看

用法示例:

for _, group in itertools.groupby(seq):
    group = ''.join(group)
    if len(group) > 2:
        print group

通过反向引用和
findall
方法,您可以很容易地找到重复

seq = 'ATCGTTTTTCGAAACTGCCCCCCACTGGGGA'

import re
hits = re.findall(r'(([A-Z])\2\2+)', seq) # regex matching all repeating A-Z groups
print [hit[0] for hit in hits]          # Comprehension to filter the results

['TTTTT', 'AAA', 'CCCCCC', 'GGGG']

试一试,告诉我们你得到了什么。我不知道为什么人们把这个问题标记为“不是真正的问题”。它清楚地提供了一个示例和预期内容。它应该是
r'([ATCG])\1\1+'
,即超过2个times@J.F.Sebastian啊,是的,我错过了两次以上,将修正答案。+1:
seq='ATCGTTTTTCGAAACTGCCCCCCACTGGGGA'
while len(seq) > 1:
    value = seq[0]
    repeats = 1
    idx = 1
    while 1:
        if seq[idx] == value:
            repeats += 1
        else:
            if repeats > 1: print value*repeats
            seq = seq[repeats:]
            break
        idx += 1