code: def bogus_kmers(self,count=200):
          
  
          POW  = math.pow
          #Build p-value inspired matrix
          #Make totals cummulative:
          # A: 0.1 C: 0.4 T:0.2 G:0.3
          #                            ->  A:0.0 C:0.1 T:0.5 G:0.7  0.0
          
          #Take bg into account:
          # We want to pick P' for each letter such that:
          #     P'/0.25  = P/Q
          # so  P'       = 0.25*P/Q
          
          m = []
          for i in range(self.width):
              _col = []
              tot   = 0.0
              for L in ACGT:
                  _col.append( tot )
                  tot = tot + POW(2,self.logP[i][L]) * 0.25 / self.background[L]
              _col.append(tot)
              #Renormalize
              for idx in range(len(_col)):
                  _col[idx] = _col[idx] / _col[-1]
              m.append(_col)
  
          for p in range(0): #Was 5
              for i in range(len(m)):
                  print '%6.4f  '%m[i][p],
              print
  
          seqs=[]
          for seqnum in range(count+1):
              f = float(seqnum)/(count+1)
              s = []
              for i in range(self.width):
                  for j in range(4):
                      if (m[i][j] <= f and f < m[i][j+1]):
                          s.append(ACGT[j])
                          break
              seqs.append(''.join(s))
  
          del(seqs[0])
          #for i in range(count):
          #    print ">%3d\n%s"%(i,seqs[i])
  
          return(seqs)
docs: m.bogus_kmers(count=200) --  Generate a faked multiple sequence alignment that will reproduce
                                       the probability matrix.