[2] | 1 | # runs after the job (and after the default post-filter) |
---|
| 2 | from galaxy import datatypes, jobs |
---|
| 3 | |
---|
| 4 | def validate(incoming): |
---|
| 5 | """Validator""" |
---|
| 6 | #raise Exception, 'not quite right' |
---|
| 7 | pass |
---|
| 8 | |
---|
| 9 | def exec_before_job( app, inp_data, out_data, param_dict, tool=None): |
---|
| 10 | """Sets the name of the data""" |
---|
| 11 | outputType = param_dict.get( 'hgta_outputType', None ) |
---|
| 12 | if isinstance(outputType, list) and len(outputType)>0: outputType = outputType[-1] |
---|
| 13 | items = out_data.items() |
---|
| 14 | |
---|
| 15 | for name, data in items: |
---|
| 16 | data.name = param_dict.get('display', data.name) |
---|
| 17 | data.dbkey = param_dict.get('dbkey', '???') |
---|
| 18 | |
---|
| 19 | if outputType == 'wigData': |
---|
| 20 | ext = "wig" |
---|
| 21 | elif outputType == 'maf': |
---|
| 22 | ext = "maf" |
---|
| 23 | elif outputType == 'gff': |
---|
| 24 | ext = "gff" |
---|
| 25 | elif outputType == 'gff3': |
---|
| 26 | ext = "gff3" |
---|
| 27 | else: |
---|
| 28 | if 'hgta_doPrintSelectedFields' in param_dict: |
---|
| 29 | ext = "interval" |
---|
| 30 | elif 'hgta_doGetBed' in param_dict: |
---|
| 31 | ext = "bed" |
---|
| 32 | elif 'hgta_doGenomicDna' in param_dict: |
---|
| 33 | ext = "fasta" |
---|
| 34 | elif 'hgta_doGenePredSequence' in param_dict: |
---|
| 35 | ext = "fasta" |
---|
| 36 | else: |
---|
| 37 | ext = "interval" |
---|
| 38 | |
---|
| 39 | data = app.datatypes_registry.change_datatype(data, ext) |
---|
| 40 | out_data[name] = data |
---|
| 41 | |
---|
| 42 | def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None): |
---|
| 43 | """Verifies the data after the run""" |
---|
| 44 | items = out_data.items() |
---|
| 45 | for name, data in items: |
---|
| 46 | data.set_size() |
---|
| 47 | try: |
---|
| 48 | err_msg, err_flag = 'Errors:', False |
---|
| 49 | line_count = 0 |
---|
| 50 | num_lines = len(file(data.file_name).readlines()) |
---|
| 51 | for line in file(data.file_name): |
---|
| 52 | line_count += 1 |
---|
| 53 | if line and line[0] == '-': |
---|
| 54 | if line_count + 3 == num_lines and not err_flag: |
---|
| 55 | err_flag = True |
---|
| 56 | err_msg = "Warning: It appears that your results have been truncated by UCSC. View the bottom of your result file for details." |
---|
| 57 | break |
---|
| 58 | err_flag = True |
---|
| 59 | err_msg = err_msg +" (line "+str(line_count)+")"+line |
---|
| 60 | data.set_peek() |
---|
| 61 | if isinstance(data.datatype, datatypes.interval.Interval) and data.missing_meta(): |
---|
| 62 | data = app.datatypes_registry.change_datatype(data, 'tabular') |
---|
| 63 | out_data[name] = data |
---|
| 64 | if err_flag: |
---|
| 65 | raise Exception(err_msg) |
---|
| 66 | except Exception, exc: |
---|
| 67 | data.info = data.info + "\n" + str(exc) |
---|
| 68 | data.blurb = "error" |
---|