텍스트 파일에서 "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)*)$
작성하신대로 완료되었습니다.