comparison oases_optimiser.py @ 5:58bf34f98232 draft default tip

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_oases commit 3d96056b65a38e7642cfeef4ed274dc76b88472a
author drosofff
date Fri, 29 Apr 2016 03:14:58 -0400
parents b4d1940ecc90
children
comparison
equal deleted inserted replaced
4:42fad5f9c78e 5:58bf34f98232
4 VelvetOptimiser Wrapper 4 VelvetOptimiser Wrapper
5 refactored using the adaptation of 5 refactored using the adaptation of
6 Konrad Paszkiewicz University of Exeter, UK. 6 Konrad Paszkiewicz University of Exeter, UK.
7 7
8 """ 8 """
9 import pkg_resources; 9 import os, sys
10 import logging, os, string, sys, tempfile, glob, shutil, types, urllib 10 import subprocess
11 import shlex, subprocess
12 from optparse import OptionParser, OptionGroup
13 from stat import *
14 11
15 12
16 def stop_err( msg ): 13 def stop_err(msg):
17 sys.stderr.write( "%s\n" % msg ) 14 sys.stderr.write("%s\n" % msg)
18 sys.exit() 15 sys.exit()
19 16
20 def oases_optimiser(starthash, endhash, input, job_dir): 17
18 def oases_optimiser(starthash, endhash, input):
21 ''' 19 '''
22 Replaces call to oases_optimiser.sh. For all k-mers between 20 Replaces call to oases_optimiser.sh. For all k-mers between
23 starthash and endhash run velvet and oases. 21 starthash and endhash run velvet and oases.
24 ''' 22 '''
25 for i in xrange(starthash, endhash, 2): 23 for i in xrange(starthash, endhash, 2):
26 cmd1="velveth {0}/outputFolder_{1} {1} {2} && ".format(job_dir, i, input) 24 cmd1 = "velveth outputFolder_{0} {0} {1} && ".format(i, input)
27 cmd2="velvetg {0}/outputFolder_{1} -read_trkg yes && ".format(job_dir, i) 25 cmd2 = "velvetg outputFolder_{0} -read_trkg yes && ".format(i)
28 cmd3="oases {0}/outputFolder_{1}".format(job_dir, i) 26 cmd3 = "oases outputFolder_{0}".format(i)
29 proc = subprocess.call( args=cmd1+cmd2+cmd3, shell=True, stdout=sys.stdout, stderr=sys.stderr ) 27 proc = subprocess.call(args=cmd1 + cmd2 + cmd3, shell=True, stdout=sys.stdout, stderr=sys.stdout)
30 cmd4="velveth {0}/MergedAssemblyFolder 27 -long outputFolder_*/transcripts.fa && ".format(job_dir) 28 if not proc == 0:
31 cmd5="velvetg {0}/MergedAssemblyFolder -read_trkg yes -conserveLong yes && ".format(job_dir) 29 print("Oases failed at k-mer %s, skipping" % i)
32 cmd6="oases {0}/MergedAssemblyFolder -merge yes".format(job_dir) 30 continue
33 proc = subprocess.call( args=cmd4+cmd5+cmd6, shell=True, stdout=sys.stdout, stderr=sys.stderr ) 31 cmd4 = "velveth MergedAssemblyFolder 27 -long outputFolder_*/transcripts.fa && "
32 cmd5 = "velvetg MergedAssemblyFolder -read_trkg yes -conserveLong yes && "
33 cmd6 = "oases MergedAssemblyFolder -merge yes"
34 proc = subprocess.call(args=cmd4 + cmd5 + cmd6, shell=True, stdout=sys.stdout, stderr=sys.stdout)
35 if not proc == 0:
36 raise Exception("Oases could not merge assembly")
34 37
35 def __main__(): 38 def __main__():
36 job_dir= os.getcwd()
37 #Parse Command Line
38 starthash = int(sys.argv[1]) 39 starthash = int(sys.argv[1])
39 endhash = int(sys.argv[2]) 40 endhash = int(sys.argv[2])
40 input = sys.argv[3] 41 input = sys.argv[3]
41 transcripts = sys.argv[4] 42 transcripts = sys.argv[4]
42 transcripts_path = ''
43 print >> sys.stdout, "PATH = %s" % (os.environ['PATH'])
44 try: 43 try:
45 oases_optimiser(starthash, endhash, input, job_dir) 44 oases_optimiser(starthash, endhash, input)
46 except Exception, e: 45 except Exception, e:
47 stop_err( 'Error running oases_optimiser.py' + str( e ) ) 46 stop_err('Error running oases_optimiser.py\n' + str(e))
48 out = open(transcripts,'w') 47 with open(transcripts, 'w') as out:
49 transcript_path = os.path.join(job_dir, "MergedAssemblyFolder", 'transcripts.fa') 48 transcript_path = os.path.join("MergedAssemblyFolder", 'transcripts.fa')
50 print >> sys.stdout, transcript_path 49 for line in open(transcript_path):
51 for line in open(transcript_path): 50 out.write("%s" % (line))
52 out.write( "%s" % (line) ) 51
53 out.close() 52
54
55 if __name__ == "__main__": __main__() 53 if __name__ == "__main__": __main__()