Advertisement
Guest User

k-mer counter

a guest
Feb 1st, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.79 KB | None | 0 0
  1.  
  2. def kmers_finder(input):
  3.     with open(input, 'r') as data:
  4.         sequence = data.readline()
  5.         k = int(data.readline())
  6.  
  7.     kmers_count = {}
  8.     top_rng = len(sequence)-k+1
  9.  
  10.     for i in range(0, top_rng):
  11.         kmer = sequence[i:i+k]
  12.         if len(kmer) != 14:
  13.             print 'FAIL!'
  14.         if kmer not in kmers_count:
  15.             kmers_count[kmer] = 1
  16.         else:
  17.             kmers_count[kmer] += 1
  18.  
  19.     return kmers_count
  20.  
  21. def freqent_kmers(kmers):
  22.     highest_value = 0
  23.     output = []
  24.     for k, v in kmers.items():
  25.         if v > highest_value:
  26.             highest_value = v
  27.     for k, v in kmers.items():
  28.         if v == highest_value:
  29.             output.append(k)
  30.  
  31.     return ' '.join(output)
  32.  
  33. print freqent_kmers(kmers_finder('dataset_2_10.txt'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement