| 0 | 1 import sys, tempfile, subprocess, glob | 
|  | 2 import os, re, shutil | 
|  | 3 import optparse | 
|  | 4 from os.path import basename | 
|  | 5 | 
|  | 6 """ | 
|  | 7 | 
|  | 8 Created by Cyril Monjeaud | 
|  | 9 Cyril.Monjeaud@irisa.fr | 
|  | 10 | 
|  | 11 WARNING : | 
|  | 12 | 
|  | 13 TakeABreak_wrapper.py needs: | 
|  | 14 | 
|  | 15 - dbgh5 & TakeABreak binaries in your $PATH | 
|  | 16 | 
|  | 17 All these files are available after compiling the sources of TakeABreak : | 
|  | 18 | 
|  | 19 http://colibread.inria.fr/files/2014/01/TakeABreak-1.1.0-Source.tar_.gz | 
|  | 20 | 
|  | 21 or with the package_takeabreak dependency in the toolshed | 
|  | 22 | 
|  | 23 """ | 
|  | 24 | 
|  | 25 def __main__(): | 
|  | 26 | 
|  | 27 	# create a special dir inside job working dir | 
|  | 28         tmp_dir = tempfile.mkdtemp() | 
|  | 29         os.chdir(tmp_dir) | 
|  | 30 | 
|  | 31         # retrieve arguments | 
|  | 32         parser = optparse.OptionParser() | 
|  | 33         parser.add_option("-i", dest="reads_files") | 
|  | 34         parser.add_option("-k", dest="kmer") | 
|  | 35         parser.add_option("-S", dest="kmersolid") | 
|  | 36 | 
|  | 37         parser.add_option("-g", dest="graph_file") | 
|  | 38         parser.add_option("-c", dest="complexity") | 
|  | 39         parser.add_option("-m", dest="maxsimprct") | 
|  | 40         parser.add_option("-r", dest="optimization") | 
|  | 41 | 
|  | 42         parser.add_option("--output_graph") | 
|  | 43         parser.add_option("--output_fasta") | 
|  | 44         parser.add_option("--output_log") | 
|  | 45 | 
|  | 46         (options, args) = parser.parse_args() | 
|  | 47 | 
|  | 48 	cmd_line=[] | 
|  | 49 	if options.reads_files: | 
|  | 50 		# start the command line | 
|  | 51 		cmd_line.append("TakeABreak") | 
|  | 52 		cmd_line.extend(["-in",options.reads_files,"-kmer-size",options.kmer,"-abundance",options.kmersolid]) | 
|  | 53 	else: | 
|  | 54 		# start the command line | 
|  | 55 		os.symlink(options.graph_file, "graph.h5") | 
|  | 56 		cmd_line.append("TakeABreak") | 
|  | 57 		cmd_line.extend(["-graph", "graph.h5"]) | 
|  | 58 | 
|  | 59 	cmd_line.extend(["-out","galaxy","-lct",options.complexity,"-max-sim",options.maxsimprct,"-repeat",options.optimization]) | 
|  | 60 | 
|  | 61 	# execute command line | 
|  | 62 	p=subprocess.Popen(cmd_line, | 
|  | 63                    stdout=subprocess.PIPE,stderr=subprocess.PIPE) | 
|  | 64 | 
|  | 65 	stdoutput, stderror = p.communicate() | 
|  | 66 | 
|  | 67         # log file | 
|  | 68         logfile=open(options.output_log, "w") | 
|  | 69 	logfile.write("[COMMAND LINE]"+' '.join(cmd_line)+"\n\n") | 
|  | 70         logfile.write(stdoutput) | 
|  | 71 	logfile.write(stderror) | 
|  | 72 	logfile.close() | 
|  | 73 | 
|  | 74 	if options.reads_files: | 
|  | 75 | 
|  | 76                 # create output h5 | 
|  | 77 		shutil.copy("galaxy.h5", options.output_graph) | 
|  | 78 | 
|  | 79         # create output fasta | 
|  | 80 	shutil.copy("galaxy.fasta", options.output_fasta) | 
|  | 81 | 
|  | 82 if __name__ == "__main__": __main__() | 
|  | 83 |