annotate makeTagDirectory.py @ 28:2d6fa75f286e draft

Uploaded
author kevyin
date Thu, 20 Dec 2012 17:55:57 -0500
parents ed3fad90091a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
1 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
2
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
3
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
4 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
5 import re
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
6 import os
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
7 import sys
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
8 import subprocess
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
9 import optparse
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
10 import shutil
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
11 import tempfile
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
12
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
13 def getFileString(fpath, outpath):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
14 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
15 format a nice file size string
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
16 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
17 size = ''
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
18 fp = os.path.join(outpath, fpath)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
19 s = '? ?'
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
20 if os.path.isfile(fp):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
21 n = float(os.path.getsize(fp))
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
22 if n > 2**20:
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
23 size = ' (%1.1f MB)' % (n/2**20)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
24 elif n > 2**10:
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
25 size = ' (%1.1f KB)' % (n/2**10)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
26 elif n > 0:
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
27 size = ' (%d B)' % (int(n))
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
28 s = '%s %s' % (fpath, size)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
29 return s
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
30
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
31 class makeTagDirectory():
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
32 """wrapper
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
33 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
34
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
35 def __init__(self,opts=None, args=None):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
36 self.opts = opts
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
37 self.args = args
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
38
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
39 def run_makeTagDirectory(self):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
40 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
41 makeTagDirectory <Output Directory Name> [options] <alignment file1> [alignment file 2]
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
42
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
43 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
44 if self.opts.format != "bam":
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
45 cl = [self.opts.executable] + args + ["-format" , self.opts.format]
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
46 else:
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
47 cl = [self.opts.executable] + args
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
48 print cl
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
49 p = subprocess.Popen(cl)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
50 retval = p.wait()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
51
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
52
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
53 html = self.gen_html(args[0])
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
54 #html = self.gen_html()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
55 return html,retval
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
56
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
57 def gen_html(self, dr=os.getcwd()):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
58 flist = os.listdir(dr)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
59 print flist
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
60 """ add a list of all files in the tagdirectory
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
61 """
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
62 res = ['<div class="module"><h2>Files created by makeTagDirectory</h2><table cellspacing="2" cellpadding="2">\n']
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
63
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
64 flist.sort()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
65 for i,f in enumerate(flist):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
66 if not(os.path.isdir(f)):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
67 fn = os.path.split(f)[-1]
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
68 res.append('<tr><td><a href="%s">%s</a></td></tr>\n' % (fn,getFileString(fn, dr)))
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
69
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
70 res.append('</table>\n')
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
71
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
72 return res
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
73
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
74 if __name__ == '__main__':
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
75 op = optparse.OptionParser()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
76 op.add_option('-e', '--executable', default='makeTagDirectory')
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
77 op.add_option('-o', '--htmloutput', default=None)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
78 op.add_option('-f', '--format', default="sam")
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
79 opts, args = op.parse_args()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
80 #assert os.path.isfile(opts.executable),'## makeTagDirectory.py error - cannot find executable %s' % opts.executable
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
81
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
82 #if not os.path.exists(opts.outputdir):
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
83 #os.makedirs(opts.outputdir)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
84 f = makeTagDirectory(opts, args)
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
85
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
86 html,retval = f.run_makeTagDirectory()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
87 f = open(opts.htmloutput, 'w')
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
88 f.write(''.join(html))
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
89 f.close()
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
90 if retval <> 0:
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
91 print >> sys.stderr, serr # indicate failure
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
92
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
93
ed3fad90091a Uploaded
kevyin
parents:
diff changeset
94