このパターンは、少なくとも 4 つのヌクレオチドに使用できます。
(?=(([ACTG]{4,}).*\2))
ただし、必要な数または固定数を選択できます。例(?=(([ACTG]{5}).*\2))
Python での例:
import re
print re.findall(r'(?=(([ACTG]{4,}).*\2))', 'GACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGTTACGAAAGTCAC')
結果:
[('GACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACAT', 'GACAT'),
('ACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACAT', 'ACAT'),
('ATCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT', 'ATCGGT'),
('TCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT', 'TCGGT'),
('CGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT', 'CGGT'),
('GGTAACGCATGAATTGTCAGGGTA', 'GGTA'),
('ACGCATGAATTGTCAGGGTACGCA', 'ACGCA'),
('CGCATGAATTGTCAGGGTACGCA', 'CGCA'),
('CATGAATTGTCAGGGTACGCACTGACATGA', 'CATGA'),
('ATGAATTGTCAGGGTACGCACTGACATGA', 'ATGA'),
('GTCAGGGTACGCACTGACATGATCGGTTACGAAAGTCA', 'GTCA'),
('TACGCACTGACATGATCGGTTACG', 'TACG')]`