Mercurial > repos > xuebing > sharplabtool
comparison tools/data_source/ucsc_filter.py @ 0:9071e359b9a3
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:37:19 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9071e359b9a3 |
---|---|
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" |