code: def emit(self,prob_min=0.0,prob_max=1.0):
          
          if not self.cumP:
              for logcol in self.logP:
                  tups = []
                  for L in ACGT:
                      p = math.pow(2,logcol[L])
                      tups.append((p,L))
                  tups.sort()
                  cumu = []
                  tot  = 0
                  for p,L in tups:
                      tot = tot + p
                      cumu.append((tot,L))
                  self.cumP.append(cumu)
          s = []
          #u = random()+0.01 #Can make higher for more consistent motifs
          u = (prob_max-prob_min)*random() + prob_min
          for cumu in self.cumP:
              #u = random()+0.01 #Can make higher for more consistent motifs
              last = 0
              for p,L in cumu:
                  if last < u and u <= p:
                      letter = L
                      break
                  else: last = p
  #           print L,'%8.4f'%u,cumu
              s.append(L)
          #print ''.join(s)
          return ''.join(s)
docs: m.emit(,prob_min=0.0,prob_max=1.0) -- Consider motif as a generative model, and have it emit a sequence