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