私は次のようなDNA配列を持っています
seq='ATCGTTTTTCGAAACTGCCCCCCACTGGGGA'
Pythonで連続反復ヌクレオチド(連続して2回以上連続して繰り返す場合)を出力したい。
このシーケンスの出力は、
TTTTT
AAA
CCCCCC
GGGG
私は次のようなDNA配列を持っています
seq='ATCGTTTTTCGAAACTGCCCCCCACTGGGGA'
Pythonで連続反復ヌクレオチド(連続して2回以上連続して繰り返す場合)を出力したい。
このシーケンスの出力は、
TTTTT
AAA
CCCCCC
GGGG
をご覧になることをお勧めしますitertools.groupby
。
使用例:
for _, group in itertools.groupby(seq):
group = ''.join(group)
if len(group) > 2:
print group
regular expression
後方参照と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']
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