실습 · 연습문제 1개
k-mer 개수 벡터 kmer-counts
서열 의 k-mer 개수 벡터는 길이 의 모든 부분 문자열이 몇 번 나오는지 센 차원 벡터다.
함수 kmer_counts(seq, k, alphabet="ACGT")를 완성해 길이 len(alphabet) ** k의 NumPy 배열을 반환한다.
- 성분의 순서는
alphabet의 글자 순서를 따르는 사전식 순서다.alphabet="ACGT",k=2이면AA, AC, AG, AT, CA, …, TT순서다. k-mer 의 각 글자가alphabet에서 번째(0부터)이면 위치는 , 즉 진법 수다. - 소문자도 받는다(대문자로 바꿔서 센다).
- 실제 DNA 서열에는 염기를 확정하지 못한 자리가
N처럼 알파벳 밖의 글자로 기록된다. 알파벳 밖의 글자가 하나라도 들어간 k-mer는 세지 않는다. - 서열이
k보다 짧으면 모든 성분이 0인 벡터를 반환한다.
예: kmer_counts("ACGT", 2)는 AC, CG, GT 자리(1, 6, 11번)가 1이고 나머지가 0인 길이 16 벡터다.
힌트: 각 글자를 번호로 바꾼 뒤, 길이 의 창을 밀며 진법 수를 계산한다.