Mercurial > repos > drosofff > msp_oases
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__() | 
