#
#  getmers.py
#  ENRAGE
#

import sys
try:
    import psyco
    psyco.full()
except:
    print 'psyco not running'

from cistematic.genomes import Genome

def main(argv=None):
    if not argv:
        argv = sys.argv

    print "getmers: version 1.2"

    if len(sys.argv) < 5:
        print 'usage: python %s genome merlen chrAny:start-stop outfile' % argv[0]
        exit(1)

    genome = argv[1]
    merlen = int(argv[2])
    location = argv[3]
    outfilename = argv[4]

    getmers(genome, merlen, location, outfilename)


def getmers(genome, merlen, location, outfilename):
    (chrom, pos) = location.split(':')
    chrom = chrom[3:]
    (start, stop) = pos.split('-')
    start = int(start)
    regionlength = int(stop) - start + 1

    hg = Genome(genome)

    seq = hg.sequence(chrom, start, regionlength)

    outfile = open(outfilename,'w')
    print 'writing %d %d-mers' % (regionlength - merlen, merlen)
    for index in range(regionlength - merlen):
        outfile.write(seq[index:index + merlen].upper() + '\n')

    outfile.close()

if __name__ == "__main__":
    main(sys.argv)