def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): history = out_data.items()[0][1].history if history == None: print "unknown history!" return kingdom = param_dict.get('kingdom',None) group = param_dict.get('group',None) org = param_dict.get('org',None) if not (kingdom or group or org): print "Parameters are not available." new_stdout = "" split_stdout = stdout.split("\n") basic_name = "" for line in split_stdout: fields = line.split("\t") if fields[0] == "#File1": description = fields[1] chr = fields[2] dbkey = fields[3] file_type = fields[4] name, data = out_data.items()[0] basic_name = data.name data.name = data.name + " (" + microbe_info[kingdom][group][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][group][org]['name']+":"+chr + ")" data.dbkey = dbkey data.info = data.name datatypes.change_datatype( data, file_type ) data.init_meta() data.set_peek() app.model.flush() elif fields[0] == "#NewFile": description = fields[1] chr = fields[2] dbkey = fields[3] filepath = fields[4] file_type = fields[5] newdata = app.model.Dataset() newdata.extension = file_type newdata.name = basic_name + " (" + microbe_info[kingdom][group][org]['chrs'][chr]['data'][description]['feature'] +" for "+microbe_info[kingdom][group][org]['name']+":"+chr + ")" newdata.flush() history.add_dataset( newdata ) newdata.flush() app.model.flush() try: copyfile(filepath,newdata.file_name) newdata.info = newdata.name newdata.state = jobs.JOB_OK except: newdata.info = "The requested file is missing from the system." newdata.state = jobs.JOB_ERROR newdata.dbkey = dbkey newdata.init_meta() newdata.set_peek() # app.model.flush()
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): history = out_data.items()[0][1].history if history == None: print "unknown history!" return new_stdout = "" split_stdout = stdout.split("\n") basic_name = "" for line in split_stdout: fields = line.split("\t") if fields[0] == "#File1": description = fields[1] dbkey = fields[2] file_type = fields[3] name, data = out_data.items()[0] basic_name = data.name data.name = data.name + " (" + description + ")" data.dbkey = dbkey data.info = data.name datatypes.change_datatype(data, file_type) data.init_meta() data.set_peek() app.model.flush() elif fields[0] == "#NewFile": description = fields[1] dbkey = fields[2] filepath = fields[3] file_type = fields[4] newdata = app.model.Dataset() newdata.extension = file_type newdata.name = basic_name + " (" + description + ")" newdata.flush() history.add_dataset(newdata) newdata.flush() app.model.flush() try: copyfile(filepath, newdata.file_name) newdata.info = newdata.name newdata.state = jobs.JOB_OK except: newdata.info = "The requested file is missing from the system." newdata.state = jobs.JOB_ERROR newdata.dbkey = dbkey newdata.init_meta() newdata.set_peek() # app.model.flush()
def exec_before_job( trans, inp_data, out_data, param_dict, tool=None): """Sets the name of the data""" outputType = param_dict.get( 'hgta_outputType', None ) if isinstance(outputType, list) and len(outputType)>0: outputType = outputType[-1] items = out_data.items() for name, data in items: data.name = param_dict.get('display', data.name) data.dbkey = param_dict.get('dbkey', '???') if outputType == 'wigData': ext = "wig" elif outputType == 'maf': ext = "maf" elif outputType == 'gff': ext = "gff" else: if 'hgta_doPrintSelectedFields' in param_dict: ext = "interval" elif 'hgta_doGetBed' in param_dict: ext = "bed" elif 'hgta_doGenomicDna' in param_dict: ext = "fasta" elif 'hgta_doGenePredSequence' in param_dict: ext = "fasta" else: ext = "interval" data = datatypes.change_datatype(data, ext) out_data[name] = data
def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None): """Verifies the data after the run""" items = out_data.items() for name, data in items: try: err_msg, err_flag = 'Errors:', False line_count = 0 num_lines = len(file(data.file_name).readlines()) for line in file(data.file_name): line_count += 1 if line and line[0] == '-': if line_count + 3 == num_lines and not err_flag: err_flag = True err_msg = "Warning: It appears that your results have been truncated by UCSC. View the bottom of your result file for details." break err_flag = True err_msg = err_msg +" (line "+str(line_count)+")"+line data.set_peek() if isinstance(data.datatype, datatypes.interval.Interval) and data.missing_meta(): data = datatypes.change_datatype(data, 'tabular') out_data[name] = data if err_flag: raise Exception(err_msg) except Exception, exc: data.info = data.info + "\n" + str(exc) data.blurb = "error"
def exec_after_process(app, inp_data, out_data, param_dict,tool, stdout, stderr): ext = param_dict.get('out_format', 'html') items = out_data.items() for name, data in items: data = datatypes.change_datatype(data, ext) data.flush() app.model.flush()
def exec_before_job(trans, inp_data, out_data, param_dict, tool=None): """Sets the name of the data""" outputType = param_dict.get('hgta_outputType', None) if isinstance(outputType, list) and len(outputType) > 0: outputType = outputType[-1] items = out_data.items() for name, data in items: data.name = param_dict.get('display', data.name) data.dbkey = param_dict.get('dbkey', '???') if outputType == 'wigData': ext = "wig" elif outputType == 'maf': ext = "maf" elif outputType == 'gff': ext = "gff" else: if 'hgta_doPrintSelectedFields' in param_dict: ext = "interval" elif 'hgta_doGetBed' in param_dict: ext = "bed" elif 'hgta_doGenomicDna' in param_dict: ext = "fasta" elif 'hgta_doGenePredSequence' in param_dict: ext = "fasta" else: ext = "interval" data = datatypes.change_datatype(data, ext) out_data[name] = data
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): ext = param_dict.get('out_format', 'html') items = out_data.items() for name, data in items: data = datatypes.change_datatype(data, ext) data.flush() app.model.flush()
def exec_before_job( trans, inp_data, out_data, param_dict, tool=None): """Sets the name of the data""" data_name = param_dict.get( 'name', 'Biomart query' ) data_type = param_dict.get( 'type', 'text' ) name, data = out_data.items()[0] data = datatypes.change_datatype(data, data_type) data.name = data_name out_data[name] = data
def exec_before_job(trans, inp_data, out_data, param_dict, tool=None): """Sets the name of the data""" data_name = param_dict.get('name', 'Biomart query') data_type = param_dict.get('type', 'text') name, data = out_data.items()[0] data = datatypes.change_datatype(data, data_type) data.name = data_name out_data[name] = data
def exec_after_process( app, inp_data, out_data, param_dict,tool, stdout, stderr): #Properly set file formats before job run #def exec_before_job(trans, inp_data, out_data, param_dict,tool): #why isn't items an ordered list? items = out_data.items() #lets sort it ourselves.... items = sorted(items, key=operator.itemgetter(0)) #items is now sorted... #normal filetype correction data_count=1 for name, data in items: outputType = param_dict.get( 'out_format'+str(data_count), None ) #print "data_count",data_count, "name", name, "outputType", outputType if outputType !=None: if outputType == 'ncbi': outputType = "fasta" elif outputType == 'excel': outputType = "Tabular" elif outputType == 'text': outputType = "txt" data = datatypes.change_datatype(data, outputType) data.flush() data_count+=1 #html filetype correction data_count=1 for name, data in items: wants_plot = param_dict.get( 'html_out'+str(data_count), None ) ext = "html" if wants_plot == "yes": data = datatypes.change_datatype(data, ext) data.flush() data_count+=1 #png file correction data_count=1 for name, data in items: wants_plot = param_dict.get( 'plot'+str(data_count), None ) ext = "png" if wants_plot == "yes": data = datatypes.change_datatype(data, ext) data.flush() data_count+=1
def copy_dataset(self, src, parent_id=None): des = self.app.model.Dataset() des.flush() des = datatypes.change_datatype(des, src.ext) des.name = src.name des.info = src.info des.blurb = src.blurb des.peek = src.peek des.extension = src.extension des.dbkey = src.dbkey des.state = src.state des.metadata = src.metadata des.hid = src.hid des.parent_id = parent_id shutil.copyfile(src.file_name,des.file_name) des.hid = src.hid des.designation = src.designation des.flush() return des
def copy_dataset(self, src, parent_id=None): des = self.app.model.Dataset() des.flush() des = datatypes.change_datatype(des, src.ext) des.name = src.name des.info = src.info des.blurb = src.blurb des.peek = src.peek des.extension = src.extension des.dbkey = src.dbkey des.state = src.state des.metadata = src.metadata des.hid = src.hid des.parent_id = parent_id shutil.copyfile(src.file_name, des.file_name) des.hid = src.hid des.designation = src.designation des.flush() return des
def exec_after_process(app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None): """Verifies the data after the run""" items = out_data.items() for name, data in items: try: err_msg, err_flag = 'Errors:', False line_count = 0 num_lines = len(file(data.file_name).readlines()) for line in file(data.file_name): line_count += 1 if line and line[0] == '-': if line_count + 3 == num_lines and not err_flag: err_flag = True err_msg = "Warning: It appears that your results have been truncated by UCSC. View the bottom of your result file for details." break err_flag = True err_msg = err_msg + " (line " + str( line_count) + ")" + line data.set_peek() if isinstance(data.datatype, datatypes.interval.Interval) and data.missing_meta(): data = datatypes.change_datatype(data, 'tabular') out_data[name] = data if err_flag: raise Exception(err_msg) except Exception, exc: data.info = data.info + "\n" + str(exc) data.blurb = "error"
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): for name, data in out_data.items(): if data.ext == "bed": data = datatypes.change_datatype(data, "interval") data.flush()
def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): history = out_data.items()[0][1].history if history == None: print "unknown history!" return kingdom = param_dict.get('kingdom', None) group = param_dict.get('group', None) org = param_dict.get('org', None) if not (kingdom or group or org): print "Parameters are not available." new_stdout = "" split_stdout = stdout.split("\n") basic_name = "" for line in split_stdout: fields = line.split("\t") if fields[0] == "#File1": description = fields[1] chr = fields[2] dbkey = fields[3] file_type = fields[4] name, data = out_data.items()[0] basic_name = data.name data.name = data.name + " (" + microbe_info[kingdom][group][org][ 'chrs'][chr]['data'][description][ 'feature'] + " for " + microbe_info[kingdom][group][org][ 'name'] + ":" + chr + ")" data.dbkey = dbkey data.info = data.name datatypes.change_datatype(data, file_type) data.init_meta() data.set_peek() app.model.flush() elif fields[0] == "#NewFile": description = fields[1] chr = fields[2] dbkey = fields[3] filepath = fields[4] file_type = fields[5] newdata = app.model.Dataset() newdata.extension = file_type newdata.name = basic_name + " (" + microbe_info[kingdom][group][ org]['chrs'][chr]['data'][description][ 'feature'] + " for " + microbe_info[kingdom][group][org][ 'name'] + ":" + chr + ")" newdata.flush() history.add_dataset(newdata) newdata.flush() app.model.flush() try: copyfile(filepath, newdata.file_name) newdata.info = newdata.name newdata.state = jobs.JOB_OK except: newdata.info = "The requested file is missing from the system." newdata.state = jobs.JOB_ERROR newdata.dbkey = dbkey newdata.init_meta() newdata.set_peek() # app.model.flush()