テキストファイルで「ATATAT」(すべての長さ)および/または「GCCGCCGCC」(また、すべての長さ)パターンに一致する正規表現を使用したいと思います。 4つのオプションしかありませんが、そのうちの1つは機能しますが、これらのパターンを含むテキストファイルに対してすべてのオプションを複数回試しました。ただし、以下のコードは何も返さないか、「grep:無効な逆参照」エラーで終わります。たぶんgrepをまったく使用しないでください。
- [ATGC]{2,}
- ([ATGC]{2,})\1+
- ([ATGC]{2,}){2,}
- ([ATGC])\1+
主に私が使用するコードは次のとおりです。
grep 'one_of_the_patterns_above' DNA_sequence_file.fasta
ファイルは次のようになります。
>sampled sequence 1 consisting of 500 bases.
GCAAAGTAGCCGAGGTCAGGGCATGTCAATGATAGCGCGAAAAGGTCACCACGAGAAGCG
GCACTCGGCCACGGATTGGTGGCACTTCATATGGAAACGCGACGACCGATAAAAACACAA
CGAAACCCAATTGGAATGAGATTTTCCTGAAACCGCAGCGAACCCAACCAAGCGGGAATA
AAGTCGGGAAGTCTAAACGAGATTAGCAGAATCCACCTCAGAATGACTGATGCCATGTAG
GCGCAGCAATAGATTACCGAAAGAGAAACACAGCAACGGATACATACAACTCAAGGGAAG
AGCACCTTTCGCTGAGAGGAGACGCCTTACAAACTATCCAGGGGTTTGAACAAGACAGGT
CGAAAAGCGGCCCTCTTCACAACCAGGTCAAGCGCGACTCGAGACAAGTATTCCCAAAGT
CCAAAAAAGAATCCTACAGAATCCCATCAAAGCATTTGTAGAAAGACATGGCCTACCAGC
TGCGCAAAGGACACATTACC
答え1
「AT」が2回以上繰り返されるか、別の例では、「GCC」が2回以上繰り返されることと一致させようとする。これらは:
(AT){2,}
(GCC){2,}
grep -E
一致させるには、これらのパターンを使用する必要があります。 (さまざまなツールで同じように動作する正規表現の単一で一貫した構文がないため、最終的に使用するツールに応じて調整する必要があります。)
答え2
すべてのパターンは良くなく、どの順序でもすべてのATGCと一致します。正しい正規表現は次のとおりです。
^((AT)*|(GCC)*)$
作成したとおりに完了しました。