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 |