def cal_entropy(self,l=3):
'''calculate entropy for each sequence'''
for (id,seq) in self.seqs.items():
entropy = 0
dna_chars_uniq = FrameKmer.all_possible_kmer(l)
dna_len = len(seq)
for c in dna_chars_uniq:
if 'N' in c:
continue
prop = seq.count(c)/(1.0*dna_len)
if prop ==0:
continue
information = numpy.log2(1.0/prop)
entropy += prop * information
yield(id, entropy)
评论列表
文章目录