0

特定の文字の長さの文字列の一部を一致させたい (一般的なケース: ランダムなパターンになります) と、文字列全体の次の部分で再び一致します。

指定された文字列の例:

GAC ATCG GTAACGCATGAATT GTCA GGGTACGCACTGACATG ATCG GTTACGAAA GTCA C

ATCG GTAACGCATGAATT GTCA GGGTACGCACTGACATG ATCG

GTCA GGGTACGCACTGACATG ATCG GTTACGAAA GTCA

最終結果になります。

誰でも助けることができますか?

4

1 に答える 1

2

このパターンは、少なくとも 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')]`
于 2013-10-25T14:59:18.993 に答える