comparison TEiso/ClosestToStartSite_Wrapper.py @ 16:836ce3d9d47a draft default tip

Uploaded
author urgi-team
date Thu, 21 Jul 2016 07:42:47 -0400
parents 782306d67e39
children
comparison
equal deleted inserted replaced
15:255c852351c5 16:836ce3d9d47a
1 #!/usr/bin/env python
2
3
4 import subprocess, tempfile, sys, os, glob, shutil, time
5 from optparse import OptionParser
6
7
8 class ClosestToStartSiteWrapper(object):
9
10 def __init__(self):
11 self._options = None
12
13
14 def stop_err(self, msg ):
15 sys.stderr.write( "%s\n" % msg )
16 sys.exit()
17
18
19 def setAttributesFromCmdLine(self):
20 description = "ClosestToStartSite"
21 epilog = "\nParser a bed file and create a bed file to create a report about positions of features A to features B. \n"
22 epilog +="it can also add the class code of features A. \n"
23 epilog += "example: ClosestToStartSite.py -i <inputFile> -c <cuff_in.tmap> -o <outputFile>\n"
24 parser = OptionParser(description = description, version = "1.0")
25 parser.add_option("-i", "--inputFile", dest = "inputFile", action = "store", type = "string", help = "input bed file", default = "")
26 parser.add_option("-c", "--cuffcom_tmap", dest = "cuffcom_tmap", action = "store", type = "string", help = "input gtf file", default = "")
27 parser.add_option("-o", "--outputFile", dest = "outputFile", action = "store", type = "string", help = "output Bed File name", default = "")
28 #parser.add_option("-t", "--outputFileclasscode", dest = "outputFile_classcode", action = "store", type = "string", help = "output Bed File name with class code.", default = "")
29 parser.add_option("-v", "--verbosity", dest = "verbosity", action = "store", type = "int", help = "verbosity [optional] [default: 3]",default = 3)
30 options = parser.parse_args()[0]
31 self._setAttributesFromOptions(options)
32
33 def _setAttributesFromOptions(self, options):
34 self._options = options
35
36 def run(self):
37 prg = "ClosestToStartSite.py"
38 args = ""
39 args += "-i %s" % self._options.inputFile
40 args += " "
41 args += "-o %s" % self._options.outputFile
42 if self._options.cuffcom_tmap != "":
43 args += " "
44 args += "-c %s" % self._options.cuffcom_tmap
45 cmd = "%s %s" %(prg, args)
46 print cmd
47
48 try:
49 tmp_err = tempfile.NamedTemporaryFile().name
50 tmp_stderr = open( tmp_err, 'wb' )
51 proc = subprocess.Popen( args=cmd, shell=True, cwd=".", stderr=tmp_stderr )
52 returncode = proc.wait()
53 tmp_stderr.close()
54 # get stderr, allowing for case where it's very large
55 tmp_stderr = open( tmp_err, 'rb' )
56 stderr = ''
57 buffsize = 1048576
58 try:
59 while True:
60 stderr += tmp_stderr.read( buffsize )
61 if not stderr or len( stderr ) % buffsize != 0:
62 break
63 except OverflowError:
64 pass
65 tmp_stderr.close()
66 if stderr:
67 raise Exception, stderr
68 except Exception, e:
69 self.stop_err( 'Error in ClosestToStartSite:\n' + str( e ) )
70
71 if __name__ == "__main__":
72 iWrapper = ClosestToStartSiteWrapper()
73 iWrapper.setAttributesFromCmdLine()
74 iWrapper.run()