annotate commons/tools/dbBestLength.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 #!/usr/bin/env python
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 ## @file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 # This program extracts the n longest sequences from the input fasta file.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 # usage: dbBestLength.py [ options ]
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6 # options:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 # -h: this help
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8 # -i: name of the input fasta file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 # -n: maximum number of sequences in the output file (default=20)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 # -o: name of the output fasta file (default=inFileName+'.best20')
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11 # -v: verbose (default=0/1/2)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 import sys
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 import getopt
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 if not os.environ.has_key( "REPET_PATH" ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 print "*** Error: no environment variable REPET_PATH"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 sys.path.append( os.environ["REPET_PATH"] )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 from pyRepet.seq.fastaDB import *
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 def help():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 Give the list of the command-line options.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 print
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 print "usage: dbBestLength.py [ options ]"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 print "options:"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 print " -h: this help"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 print " -i: name of the input fasta file"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 print " -n: maximum number of sequences in the output file (default=20)"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 print " -o: name of the output fasta file (default=inFileName+'.best20')"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 print " -v: verbose (default=0/1/2)"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 print
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 def main():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42 This program extracts the n longest sequences from the input fasta file.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 inFileName = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 nbSeq = 20
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47 outFileName = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 verbose = 0
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 try:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 opts, args = getopt.getopt(sys.argv[1:],"hi:n:o:v:")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 except getopt.GetoptError, err:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 print str(err)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 help()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 for o,a in opts:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 if o == "-h":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 help()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 sys.exit(0)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 elif o == "-i":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 inFileName = a
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 elif o == "-n":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 nbSeq = a
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 elif o == "-o":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 outFileName = a
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 elif o == "-v":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 verbose = int(a)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 if inFileName == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70 print "ERROR: missing input file (-i)"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 help()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74 if verbose > 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75 print "START dbBestLength.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 sys.stdout.flush()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78 if outFileName == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79 outFileName = "%s.best%s" % ( inFileName, nbSeq )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 log = dbBestLength( nbSeq, inFileName, outFileName, verbose )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82 if log != 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83 print "ERROR: dbBestLength() returned %i" % ( log )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 if verbose > 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 print "END dbBestLength.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 sys.stdout.flush()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 return 0
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94 main()