annotate velvet-08256557922f/velvetg_wrapper.py @ 1:5adf9db15edc draft default tip

Uploaded
author cole_easson
date Sat, 03 Feb 2018 13:58:05 -0500
parents f544abf45f8f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
1 #!/usr/bin/env python
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
2
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
3 """
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
4 Classes encapsulating decypher tool.
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
5 James E Johnson - University of Minnesota
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
6 """
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
7 import os
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
8 import sys
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
9 import subprocess
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
10
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
11 assert sys.version_info[:2] >= ( 2, 4 )
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
12
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
13 def stop_err( msg ):
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
14 sys.stderr.write( "%s\n" % msg )
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
15 sys.exit()
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
16
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
17
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
18 def __main__():
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
19 #Parse Command Line
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
20 working_dir = sys.argv[1]
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
21 inputs = ' '.join(sys.argv[2:])
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
22 for _ in ('Roadmaps', 'Sequences'):
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
23 os.symlink(os.path.join(working_dir, _), _)
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
24 cmdline = 'velvetg . %s' % (inputs)
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
25 print "Command to be executed: %s" % cmdline
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
26 try:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
27 proc = subprocess.Popen( args=cmdline, shell=True, stderr=subprocess.PIPE )
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
28 returncode = proc.wait()
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
29 # get stderr, allowing for case where it's very large
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
30 stderr = ''
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
31 buffsize = 1048576
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
32 try:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
33 while True:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
34 stderr += proc.stderr.read( buffsize )
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
35 if not stderr or len( stderr ) % buffsize != 0:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
36 break
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
37 except OverflowError:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
38 pass
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
39 if returncode != 0:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
40 raise Exception, stderr
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
41 except Exception, e:
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
42 stop_err( 'Error running velvetg ' + str( e ) )
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
43
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
44
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
45 if __name__ == "__main__":
f544abf45f8f Uploaded
cole_easson
parents:
diff changeset
46 __main__()