comparison msconvert_wrapper.py @ 4:158a71ee5733 draft

planemo upload commit b4871f9659a924a68430aed3a93f4f9bad733fd6
author galaxyp
date Wed, 07 Dec 2016 17:43:19 -0500
parents ab59b1826345
children 637e309295cf
comparison
equal deleted inserted replaced
3:987d73278bf9 4:158a71ee5733
86 def __main__(): 86 def __main__():
87 run_script() 87 run_script()
88 88
89 #ENDTEMPLATE 89 #ENDTEMPLATE
90 90
91 to_extensions = ['mzML', 'mzXML', 'unindexed_mzML', 'unindexed_mzXML', 'mgf', 'txt', 'ms2', 'cms2'] 91 to_extensions = ['mzML', 'mzXML', 'unindexed_mzML', 'unindexed_mzXML', 'mgf', 'mz5', 'txt', 'ms2', 'cms2']
92 92
93 93
94 def str_to_bool(v): 94 def str_to_bool(v):
95 """ From http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python """ 95 """ From http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python """
96 return v.lower() in ["yes", "true", "t", "1"] 96 return v.lower() in ["yes", "true", "t", "1"]
169 if debug: 169 if debug:
170 print(( open(filters_file_path, "r").read() )) 170 print(( open(filters_file_path, "r").read() ))
171 return filters_file_path 171 return filters_file_path
172 172
173 173
174 def _build_base_cmd(options): 174 def _build_base_cmd(options,args=None):
175 to_extension = options.toextension 175 to_extension = options.toextension
176 if to_extension.startswith("unindexed_"): 176 if to_extension.startswith("unindexed_"):
177 to_extension = to_extension[len("unindexed_"):] 177 to_extension = to_extension[len("unindexed_"):]
178 to_params = "--noindex" 178 to_params = "--noindex"
179 else: 179 else:
180 to_params = "" 180 to_params = ""
181 cmd = "msconvert --%s %s" % (to_extension, to_params) 181 cmd = "msconvert --%s %s" % (to_extension, to_params)
182 if args:
183 cmd = "%s %s" % (cmd, ' '.join(args))
182 if str_to_bool(options.zlib): 184 if str_to_bool(options.zlib):
183 cmd = "%s %s" % (cmd, "--zlib") 185 cmd = "%s %s" % (cmd, "--zlib")
184 if options.binaryencoding: 186 if options.binaryencoding:
185 cmd = "%s --%s" % (cmd, options.binaryencoding) 187 cmd = "%s --%s" % (cmd, options.binaryencoding)
186 if options.mzencoding: 188 if options.mzencoding:
206 def run_script(): 208 def run_script():
207 parser = optparse.OptionParser() 209 parser = optparse.OptionParser()
208 parser.add_option('--input', dest='inputs', action='append', default=[]) 210 parser.add_option('--input', dest='inputs', action='append', default=[])
209 parser.add_option('--input_name', dest='input_names', action='append', default=[]) 211 parser.add_option('--input_name', dest='input_names', action='append', default=[])
210 parser.add_option('--implicit', dest='implicits', action='append', default=[], help='input files that should NOT be on the msconvert command line.') 212 parser.add_option('--implicit', dest='implicits', action='append', default=[], help='input files that should NOT be on the msconvert command line.')
213 parser.add_option('--ident', dest='idents', action='append', default=[])
214 parser.add_option('--ident_name', dest='ident_names', action='append', default=[])
211 parser.add_option('--output', dest='output') 215 parser.add_option('--output', dest='output')
216 parser.add_option('--refinement', dest='refinement')
212 parser.add_option('--fromextension', dest='fromextension') 217 parser.add_option('--fromextension', dest='fromextension')
213 parser.add_option('--toextension', dest='toextension', default='mzML', choices=to_extensions) 218 parser.add_option('--toextension', dest='toextension', default='mzML', choices=to_extensions)
214 parser.add_option('--binaryencoding', dest='binaryencoding', choices=['32', '64']) 219 parser.add_option('--binaryencoding', dest='binaryencoding', choices=['32', '64'])
215 parser.add_option('--mzencoding', dest='mzencoding', choices=['32', '64']) 220 parser.add_option('--mzencoding', dest='mzencoding', choices=['32', '64'])
216 parser.add_option('--intensityencoding', dest='intensityencoding', choices=['32', '64']) 221 parser.add_option('--intensityencoding', dest='intensityencoding', choices=['32', '64'])
251 input_file = input_file 256 input_file = input_file
252 copy_to_working_directory(input, input_file) 257 copy_to_working_directory(input, input_file)
253 if input in options.implicits: 258 if input in options.implicits:
254 continue 259 continue
255 input_files.append(input_file) 260 input_files.append(input_file)
256 261 for i, ident in enumerate(options.idents):
257 cmd = _build_base_cmd(options) 262 ident_file = options.ident_names[i]
263 copy_to_working_directory(ident, ident_file)
264
265 cmd = _build_base_cmd(options,args=args)
258 file_column = options.filter_table_file_column 266 file_column = options.filter_table_file_column
259 if not file_column: 267 if not file_column:
260 # Apply same filters to all files, just create a unviersal filter files 268 # Apply same filters to all files, just create a unviersal filter files
261 # and run msconvert once. 269 # and run msconvert once.
262 filters_file_path = _create_filters_file(options, debug=options.debug) 270 filters_file_path = _create_filters_file(options, debug=options.debug)
273 input_files = filtered_files 281 input_files = filtered_files
274 if len(input_files) > 1: 282 if len(input_files) > 1:
275 cmd = "%s --merge" % cmd 283 cmd = "%s --merge" % cmd
276 output_file = _run(cmd, output_dir='output', inputs=input_files, debug=options.debug) 284 output_file = _run(cmd, output_dir='output', inputs=input_files, debug=options.debug)
277 shutil.copy(output_file, options.output) 285 shutil.copy(output_file, options.output)
278 286 if options.refinement:
287 # .mzRefinement.tsv
288 files = os.listdir(os.getcwd())
289 for fname in files:
290 if fname.endswith('.mzRefinement.tsv'):
291 shutil.copy(fname, options.refinement)
292 break
293
294 def __main__():
295 run_script()
279 296
280 if __name__ == '__main__': 297 if __name__ == '__main__':
281 __main__() 298 __main__()