annotate mapsembler2.py @ 0:f905f982ee3d

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