Mercurial > repos > cmonjeau > takeabreak
diff TakeABreak_wrapper.py @ 0:dbd6e370c891
Imported from capsule None
author | cmonjeau |
---|---|
date | Fri, 05 Jun 2015 11:40:02 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TakeABreak_wrapper.py Fri Jun 05 11:40:02 2015 -0400 @@ -0,0 +1,83 @@ +import sys, tempfile, subprocess, glob +import os, re, shutil +import optparse +from os.path import basename + +""" + +Created by Cyril Monjeaud +Cyril.Monjeaud@irisa.fr + +WARNING : + +TakeABreak_wrapper.py needs: + +- dbgh5 & TakeABreak binaries in your $PATH + +All these files are available after compiling the sources of TakeABreak : + +http://colibread.inria.fr/files/2014/01/TakeABreak-1.1.0-Source.tar_.gz + +or with the package_takeabreak dependency in the toolshed + +""" + +def __main__(): + + # create a special dir inside job working dir + tmp_dir = tempfile.mkdtemp() + os.chdir(tmp_dir) + + # retrieve arguments + parser = optparse.OptionParser() + parser.add_option("-i", dest="reads_files") + parser.add_option("-k", dest="kmer") + parser.add_option("-S", dest="kmersolid") + + parser.add_option("-g", dest="graph_file") + parser.add_option("-c", dest="complexity") + parser.add_option("-m", dest="maxsimprct") + parser.add_option("-r", dest="optimization") + + parser.add_option("--output_graph") + parser.add_option("--output_fasta") + parser.add_option("--output_log") + + (options, args) = parser.parse_args() + + cmd_line=[] + if options.reads_files: + # start the command line + cmd_line.append("TakeABreak") + cmd_line.extend(["-in",options.reads_files,"-kmer-size",options.kmer,"-abundance",options.kmersolid]) + else: + # start the command line + os.symlink(options.graph_file, "graph.h5") + cmd_line.append("TakeABreak") + cmd_line.extend(["-graph", "graph.h5"]) + + cmd_line.extend(["-out","galaxy","-lct",options.complexity,"-max-sim",options.maxsimprct,"-repeat",options.optimization]) + + # execute command line + p=subprocess.Popen(cmd_line, + stdout=subprocess.PIPE,stderr=subprocess.PIPE) + + stdoutput, stderror = p.communicate() + + # log file + logfile=open(options.output_log, "w") + logfile.write("[COMMAND LINE]"+' '.join(cmd_line)+"\n\n") + logfile.write(stdoutput) + logfile.write(stderror) + logfile.close() + + if options.reads_files: + + # create output h5 + shutil.copy("galaxy.h5", options.output_graph) + + # create output fasta + shutil.copy("galaxy.fasta", options.output_fasta) + +if __name__ == "__main__": __main__() +