def genRandomSeqDbIid(path, lengths): """Generate random reference sequences as SeqDbFasta. Each generated sequence is generated independently""" seqDb = SeqDbFasta(path, save=True) # assert len(set(lengths)) == len(lengths),"Reference lengths must be unique" seqLen = {} for (iIcm, length) in enumerate(lengths): idIcm = iIcm writer = seqDb.fastaWriter(idIcm) seq = randomSeq(length) writer.record(str(idIcm), seq) writer.close() seqDb.finById(idIcm) seqLen[idIcm] = length seqDb.opt.seqLen = seqLen seqDb.save()
def genRandomSeqDbCat(path, length, nCopies): """Generate random reference sequences as SeqDbFasta. The first sequence is generated as random, and each next one is a concatenation of N copies of the first.""" seqDb = SeqDbFasta(path, save=True) seqBase = randomSeq(length) # assert len(set(lengths)) == len(lengths),"Reference lengths must be unique" seqLen = {} for iIcm in xrange(nCopies): idIcm = iIcm writer = seqDb.fastaWriter(idIcm) seq = n.tile(seqBase, iIcm + 1) writer.record(str(idIcm), seq) writer.close() seqLen[idIcm] = len(seq) seqDb.opt.seqLen = seqLen seqDb.save()