Ejemplo n.º 1
0
			qual += chr(int(-10*log10(e)+33))
		seq += r2['seq'][N-delta:]
		qual += r2['qual'][N-delta:]
	return seq, qual, N-delta

if __name__ == "__main__":
	from miscBowTie import BowTieReader, BowTieWriter
	from cPickle import *
	from optparse import OptionParser

	parser = OptionParser()
	parser.add_option("--input", dest="input", help="Input bowtie aligned file (gzipped)")
	parser.add_option("--output", dest="output", help="Output composite read filename")
	
	options, args = parser.parse_args()

	reader = BowTieReader(options.input, is_paired=True)
	print >> sys.stderr, "calculating base frequencies"
	base_freq_pickle = options.input + ".base_freq.pickle"
	if os.path.exists(base_freq_pickle):
		base_freq = load(open(base_freq_pickle))
	else:
		base_freq = reader.get_base_frequency()
		with open(options.input + ".base_freq.pickle", 'w') as f:
			dump(base_freq, f)
	print >> sys.stderr, "reading bowtie aligned file..."
	writer = BowTieWriter(options.output)
	for r1, r2 in reader:
		seq, qual, overlap = compose2(r1, r2, base_freq)
		writer.write_composite(r1, r2, seq, qual, overlap)