def test_order2string(self): self.assertEquals("1st", util.order2string(1)) self.assertEquals("2nd", util.order2string(2)) self.assertEquals("3rd", util.order2string(3)) self.assertEquals("4th", util.order2string(4)) self.assertEquals("11th", util.order2string(11)) self.assertEquals("12th", util.order2string(12)) self.assertEquals("21st", util.order2string(21)) self.assertEquals("22nd", util.order2string(22)) self.assertEquals("23rd", util.order2string(23))
def make_background_file(bgseqs, use_revcomp, bgorder): """create a meme background file and returns its name and the model itself as a tuple""" def make_seqs(seqs): """prepare the input sequences for feeding into meme. This means only taking the unique sequences and their reverse complement if desired""" meme_input_seqs = [] for locseq in seqs.values(): seq = locseq[1] if seq not in meme_input_seqs: meme_input_seqs.append(seq) if use_revcomp: revseq = st.revcomp(seq) if revseq not in meme_input_seqs: meme_input_seqs.append(revseq) return meme_input_seqs filename = None bgmodel = st.markov_background(make_seqs(bgseqs), bgorder) with tempfile.NamedTemporaryFile(mode='w+', prefix='memebg', delete=False) as outfile: filename = outfile.name #logging.info("make background file '%s'", filename) outfile.write("# %s order Markov background model\n" % util.order2string(len(bgmodel) - 1)) for order_row in bgmodel: for seq, frequency in order_row.items(): outfile.write('%s %10s\n' % (seq, str(round(frequency, 8)))) return (filename, bgmodel)