Bioinformatics/Rosalind

k-Mer Composition

Rafe 2019. 6. 18. 23:26

http://rosalind.info/problems/kmer/

 

ROSALIND | k-Mer Composition

It appears that your browser has JavaScript disabled. Rosalind requires your browser to be JavaScript enabled. k-Mer Composition solved by 2226 2012년 7월 13일 12:00:00 오전 by Gabriel Valiente Topics: String Algorithms Generalizing GC-Content Figure 1. The 2-m

rosalind.info

input으로 들어온 fasta파일에 있는 sequence에 k-mer의 각각의 갯수를 세서 사전순서대로 출력해야한다. 문제에선 4-mer의 갯수를 세면되고 base는 A, T, G, C 4가지이므로 총 4^4인 256개의 조합 각각의 갯수를 출력하면 된다.

 

from itertools import product

from util.read import read_fasta

seq = read_fasta('rosalind_kmer.txt')[0][1]

bases = ['A', 'T', 'C', 'G']
k = 4
k_mers = map(lambda k_mer: ''.join(k_mer), product(bases, repeat=k))

k_mers_count = dict.fromkeys(k_mers, 0)

for idx in range(len(seq) - k + 1):
    k_mers_count[seq[idx : idx+k]] += 1

print(' '.join(list(map(lambda k_mer: str(k_mers_count[k_mer]), sorted(k_mers_count.keys())))))

코드는 매우 간단하므로 별다른 설명을 하진 않겠다.

 

https://github.com/elwlwlwk/Rosalind/blob/master/KMER.py

 

elwlwlwk/Rosalind

Contribute to elwlwlwk/Rosalind development by creating an account on GitHub.

github.com