Mercurial > repos > cmonjeau > takeabreak
comparison TakeABreak_wrapper.py @ 0:dbd6e370c891
Imported from capsule None
| author | cmonjeau |
|---|---|
| date | Fri, 05 Jun 2015 11:40:02 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:dbd6e370c891 |
|---|---|
| 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 |
