반복되는 두 글자 패턴을 일치시키기 위한 정규식(grep)

반복되는 두 글자 패턴을 일치시키기 위한 정규식(grep)

텍스트 파일에서 "ATATAT"(모든 길이) 및/또는 "GCCGCCGCC"(또한 모든 길이) 패턴과 일치하는 정규식을 사용하고 싶습니다. 네 가지 옵션만 있는데 그 중 하나는 작동하지만 이러한 패턴이 포함된 텍스트 파일에 대해 모든 옵션을 여러 번 시도했습니다. 그러나 아래 코드는 아무것도 반환하지 않거나 "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"가 두 번 이상 반복되거나 다른 예에서는 "GCC"가 두 번 이상 반복되는 것과 일치시키려는 것 같습니다. 이것들은:

(AT){2,}
(GCC){2,}

grep -E일치하려면 이러한 패턴을 사용해야 합니다 . (다양한 도구에서 동일한 방식으로 작동하는 정규식에 대한 단일하고 일관된 구문이 없으므로 최종적으로 사용하는 도구에 따라 조정해야 할 수도 있습니다.)

답변2

모든 패턴은 좋지 않으며 어떤 순서로든 모든 ATGC와 일치합니다. 올바른 정규식은 다음과 같습니다.

^((AT)*|(GCC)*)$

작성하신대로 완료되었습니다.

관련 정보