##################################
#                                #
# Last modified 03/26/2013       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys

try:
	import psyco
	psyco.full()
except:
	pass

def run():

    if len(sys.argv) < 2:
        print 'usage: python %s inputfilename outfilename [-minSeqLen number]' % sys.argv[0]
        print '\tNote: assumed format: '
        print '\t\t#SEQUENCE ='
        print '\t\t#COUNT = number of times sequenced'
        print '\t\tSEQUENCE        COUNT'
        print '\t\tAAAAAAAAACAAGAATATGGAGGCTG      0'
        print '\t\tAAAAAAAAACAAGAGGTAAAGGTGCT      1'
        print '\t\tAAAAAAAAACAAGAGGTAAAGGTGCTT     0'
        print '\t\tAAAAAAAAACAAGAGGTAAAGGTGCTTT    0'
        print '\t\tAAAAAAAAACAAGGACTGGAGAAATG      0'
        print '\tNote: use - instead of an input file name to indicate stanard input'
        print '\tNote: use - instead of an output file name to indicate stanard output'
        sys.exit(1)

    inputfilename = sys.argv[1]
    outputfilename = sys.argv[2]

    doStdInput = False
    if inputfilename == '-':
        doStdInput = True

    doStdOutput = False
    if outputfilename == '-':
        doStdOutput = True

    doMinSeqLen=False
    if '-minSeqLen' in sys.argv:
        doMinSeqLen=True
        minSeqLen = int(sys.argv[sys.argv.index('-minSeqLen')+1])

    if not doStdOutput:
        outfile = open(outputfilename, 'w')

    if doStdInput:
        lineslist  = sys.stdin
    else:
        lineslist  = open(inputfilename)
    r = 0
    for line in lineslist:
        if line.startswith('#') or line.startswith('SEQUENCE'):
            continue
        fields = line.split('\t')
        if doMinSeqLen and len(fields[0].strip()) < minSeqLen:
            continue
        counts = int(fields[1])
        for i in range(counts+1):
            r += 1
            outline = '>read' + str(r)
            if not doStdOutput:
                outfile.write(outline + '\n')
                outline = fields[0]
                outfile.write(outline.strip() + '\n')
            else:
                print outline
                print fields[0]
 
    if not doStdOutput:
        outfile.close()

run()

