erange version 4.0a dev release
[erange.git] / getmers.py
1 #
2 #  getmers.py
3 #  ENRAGE
4 #
5
6 import sys
7 try:
8     import psyco
9     psyco.full()
10 except:
11     print 'psyco not running'
12
13 from cistematic.genomes import Genome
14
15 def main(argv=None):
16     if not argv:
17         argv = sys.argv
18
19     print "getmers: version 1.2"
20
21     if len(sys.argv) < 5:
22         print 'usage: python %s genome merlen chrAny:start-stop outfile' % argv[0]
23         exit(1)
24
25     genome = argv[1]
26     merlen = int(argv[2])
27     location = argv[3]
28     outfilename = argv[4]
29
30     getmers(genome, merlen, location, outfilename)
31
32
33 def getmers(genome, merlen, location, outfilename):
34     (chrom, pos) = location.split(':')
35     chrom = chrom[3:]
36     (start, stop) = pos.split('-')
37     start = int(start)
38     regionlength = int(stop) - start + 1
39
40     hg = Genome(genome)
41
42     seq = hg.sequence(chrom, start, regionlength)
43
44     outfile = open(outfilename,'w')
45     print 'writing %d %d-mers' % (regionlength - merlen, merlen)
46     for index in range(regionlength - merlen):
47         outfile.write(seq[index:index + merlen].upper() + '\n')
48
49     outfile.close()
50
51 if __name__ == "__main__":
52     main(sys.argv)