6
|
1 #!/usr/bin/env python
|
|
2
|
|
3 import sys
|
|
4 import getopt
|
|
5 from commons.core.coord.Align import Align
|
|
6
|
|
7 def help():
|
|
8 print
|
|
9 print "usage: %s [ options ]" % ( sys.argv[0].split("/")[-1] )
|
|
10 print "options:"
|
|
11 print " -h: this help"
|
|
12 print " -i: input file name (format='align')"
|
|
13 print " -o: output file name (format='set', default=inFileName+'.set')"
|
|
14 print " -v: verbosity level (default=0/1)"
|
|
15 print
|
|
16
|
|
17
|
|
18 def align2set( inFileName, outFileName ):
|
|
19 alignFileHandler = open( inFileName, "r" )
|
|
20 setFileHandler = open( outFileName, "w" )
|
|
21 iAlign = Align()
|
|
22 countAlign = 0
|
|
23 while True:
|
|
24 line = alignFileHandler.readline()
|
|
25 if line == "":
|
|
26 break
|
|
27 countAlign += 1
|
|
28 iAlign.setFromString( line, "\t" )
|
|
29 setFileHandler.write( "%i\t%s\t%s\t%i\t%i\n" % ( countAlign,
|
|
30 iAlign.getSubjectName(),
|
|
31 iAlign.getQueryName(),
|
|
32 iAlign.getQueryStart(),
|
|
33 iAlign.getQueryEnd() ) )
|
|
34 alignFileHandler.close()
|
|
35 setFileHandler.close()
|
|
36
|
|
37
|
|
38 def main():
|
|
39
|
|
40 inFileName = ""
|
|
41 outFileName = ""
|
|
42 verbose = 0
|
|
43
|
|
44 try:
|
|
45 opts, args = getopt.getopt( sys.argv[1:], "hi:o:v:" )
|
|
46 except getopt.GetoptError, err:
|
|
47 print str(err)
|
|
48 help()
|
|
49 sys.exit(1)
|
|
50 for o,a in opts:
|
|
51 if o == "-h":
|
|
52 help()
|
|
53 sys.exit(0)
|
|
54 elif o == "-i":
|
|
55 inFileName = a
|
|
56 elif o == "-o":
|
|
57 outFileName = a
|
|
58 elif o == "-v":
|
|
59 verbose = int(a)
|
|
60
|
|
61 if inFileName == "":
|
|
62 print "ERROR: missing input file name"
|
|
63 help()
|
|
64 sys.exit(1)
|
|
65
|
|
66 if verbose > 0:
|
|
67 print "START %s" % ( sys.argv[0].split("/")[-1] )
|
|
68 sys.stdout.flush()
|
|
69
|
|
70 if outFileName == "":
|
|
71 outFileName = "%s.set" % ( inFileName )
|
|
72
|
|
73 #TODO: move 'align2set' into 'AlignUtils.convertAlignFileIntoPSetFile' with a test
|
|
74 # AlignUtils.convertAlignFileIntoPSetFile( inFileName, outFileName )
|
|
75
|
|
76 align2set( inFileName, outFileName )
|
|
77
|
|
78 if verbose > 0:
|
|
79 print "END %s" % ( sys.argv[0].split("/")[-1] )
|
|
80 sys.stdout.flush()
|
|
81
|
|
82 return 0
|
|
83
|
|
84
|
|
85 if __name__ == "__main__":
|
|
86 main()
|