Mercurial > repos > cmonjeau > mapsembler2
comparison mapsembler2.py @ 0:f905f982ee3d
Imported from capsule None
| author | cmonjeau |
|---|---|
| date | Fri, 05 Jun 2015 11:40:49 -0400 |
| parents | |
| children | 5aea5b993ae8 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f905f982ee3d |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 import sys, subprocess, glob | |
| 3 import os, re, shutil, optparse | |
| 4 from os.path import basename | |
| 5 | |
| 6 """ | |
| 7 WARNING : | |
| 8 | |
| 9 Mapsembler2.py needs mapsembler2_exe binaries in your $PATH | |
| 10 | |
| 11 Mapsember2 is available after compiling sources : | |
| 12 | |
| 13 http://www.irisa.fr/symbiose/people/ppeterlongo/mapsembler2_2.2.3.zip | |
| 14 | |
| 15 or with the galaxy_mapsembler2 package in the GenOuest toolshed | |
| 16 | |
| 17 | |
| 18 """ | |
| 19 | |
| 20 def __main__(): | |
| 21 | |
| 22 # arguments recuperation | |
| 23 parser = optparse.OptionParser() | |
| 24 parser.add_option("-s", dest="input_starters") | |
| 25 parser.add_option("-r", dest="input_files") | |
| 26 parser.add_option("-t", dest="output_extension") | |
| 27 parser.add_option("-k", dest="kmer") | |
| 28 parser.add_option("-c", dest="coverage") | |
| 29 parser.add_option("-d", dest="substitutions") | |
| 30 parser.add_option("-g", dest="genome_size") | |
| 31 parser.add_option("-f", dest="process_search") | |
| 32 parser.add_option("-x", dest="max_length") | |
| 33 parser.add_option("-y", dest="max_depth") | |
| 34 parser.add_option("--output") | |
| 35 parser.add_option("-i", dest="index_files") | |
| 36 | |
| 37 (options, args) = parser.parse_args() | |
| 38 | |
| 39 # import tools | |
| 40 os.symlink(os.environ['TOOLS'], os.getcwd()+'/tools') | |
| 41 | |
| 42 # execute mapsembler | |
| 43 cmd_line=[] | |
| 44 cmd_line.append("run_mapsembler2_pipeline.sh") | |
| 45 | |
| 46 # change starter extension | |
| 47 cmd_line.extend(["-s", options.input_starters]) | |
| 48 | |
| 49 #inputs | |
| 50 cmd_line.append("-r") | |
| 51 | |
| 52 #cmd_line.append(inputs) | |
| 53 cmd_line.append(' '.join(options.input_files.split(","))) | |
| 54 | |
| 55 # add parameters into the command line | |
| 56 cmd_line.extend(["-t", options.output_extension, "-k", options.kmer, "-c", options.coverage, "-d", options.substitutions, "-g", options.genome_size, "-f", options.process_search, "-x", options.max_length, "-y", options.max_depth]) | |
| 57 | |
| 58 # open the output log file | |
| 59 log = open(options.output, "w") | |
| 60 log.write("[COMMAND LINE] "+' '.join(cmd_line)) | |
| 61 | |
| 62 process=subprocess.Popen(cmd_line, | |
| 63 stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
| 64 | |
| 65 stdoutput, stderror = process.communicate() | |
| 66 | |
| 67 # results recuperation | |
| 68 log.write(stdoutput) | |
| 69 log.write(stderror) | |
| 70 | |
| 71 # close log file | |
| 72 log.close() | |
| 73 | |
| 74 # move results files inside the job_outputs dir | |
| 75 os.mkdir("job_outputs") | |
| 76 result_files = glob.glob("res_*") | |
| 77 for file in result_files: | |
| 78 shutil.move(file, "job_outputs/") | |
| 79 | |
| 80 | |
| 81 # move index files | |
| 82 if options.index_files == "true": | |
| 83 index_files = glob.glob("index_*") | |
| 84 for index in index_files: | |
| 85 shutil.move(index, "job_outputs/") | |
| 86 | |
| 87 # move json result into gjson | |
| 88 json_files = glob.glob("job_outputs/*.json") | |
| 89 for json in json_files: | |
| 90 shutil.move(json, json.replace(".json", ".gjson")) | |
| 91 | |
| 92 | |
| 93 if __name__ == "__main__": __main__() | |
| 94 |
