K-mers란 K (숫자) 개의 염기단위로 Genome의 염기서열을 읽는 것이다.
위의 그림은 3-mer에 대한 예시이다. 위의 그림에서 초록색 박스는 3-mer로 시퀀스를 어떻게 읽을 수 있는지 보여준다.
1번째 3-mer: ATT
2번째 3-mer:TTG
3번째 3-mer :TGA
이렇게 3개 염기의 단위로 위의 지놈시퀀스를 읽어서 정보를 이용할 수있다.
2. k-mer를 파이썬 스크립트로 구현
아주 간단한 파이썬스크립트를 이용해서 k-mer를 구현해 보자.
1 2 3 4 5 6 7 | def Bring_kmers(Seq,nKmer): nFinalStart = len(Seq)-nKmer Kmers = [] for nStart in range(0,nFinalStart): KmerSeq = Seq[nStart:(nStart+nKmer)] Kmers.append(KmerSeq) return Kmers |
위처럼 Bring_kmers라는 함수,method를 붙여넣기 한후 위의 예제에서의 sequence를 넣어서 3-mer로 읽을 수 있는지 확인해 보자.
A = 'ATTGATTGTC' print(Bring_kmers(A,3))
위와 같이 A라고 시퀀스를 정의한 후 "3"-mer를 의미한는 3을 함수에 넣으면,
아래와 같은 결과를 얻을 수 있다.
['ATT', 'TTG', 'TGA', 'GAT', 'ATT', 'TTG', 'TGT'] | cs |
3-mer로 잘 읽어 지는 것을 확인 할 수 있다! 그렇다면 5-mer는 어떻게 출력이 될까? 직접 해보길 바란다.
3. k-mer 가 실제로 어디에 쓰이는가?
transcription factor가 붙는 여러 region들이 공통적으로 10bp내의 짧은 시퀀스를 갖고 있으면 되지않을까?
이때 여러 peak들을 kmer로 읽은후 서로 k-mer sequence를 비교하여
어디에 transcription factor가 붙는지 정확한 sequence를 예측할 수 있다.