[2] | 1 | # before running the qc, need to rename various output files |
---|
| 2 | # <data format="html" name="html_file" /> |
---|
| 3 | # <data format="txt" name="log_file" parent="html_file" /> |
---|
| 4 | # <data format="tabular" name="marker_file" parent="html_file" /> |
---|
| 5 | # <data format="tabular" name="subject_file" parent="html_file" /> |
---|
| 6 | |
---|
| 7 | from galaxy import datatypes,model |
---|
| 8 | import sys,string |
---|
| 9 | |
---|
| 10 | def get_columns( input ): |
---|
| 11 | columns = [] |
---|
| 12 | elems = [] |
---|
| 13 | if input and input.metadata.columns: |
---|
| 14 | ncols = input.metadata.columns |
---|
| 15 | colnames = ['Col%d' % x for x in range(1,ncols+1)] |
---|
| 16 | for i, line in enumerate( file ( input.file_name ) ): |
---|
| 17 | valid = True |
---|
| 18 | if line and not line.startswith( '#' ): |
---|
| 19 | line = line.rstrip('\r\n') |
---|
| 20 | elems = line.split( '\t' ) |
---|
| 21 | |
---|
| 22 | """ |
---|
| 23 | Since this tool requires users to select only those columns |
---|
| 24 | that contain numerical values, we'll restrict the column select |
---|
| 25 | list appropriately. |
---|
| 26 | """ |
---|
| 27 | if len(elems) > 0: |
---|
| 28 | for col in range(len(elems)): # zero offset |
---|
| 29 | if i == 0: # header row |
---|
| 30 | colnames[col] = elems[col] |
---|
| 31 | else: |
---|
| 32 | val = elems[col] |
---|
| 33 | try: |
---|
| 34 | val = float(val) |
---|
| 35 | valid = True |
---|
| 36 | except: |
---|
| 37 | valid = False |
---|
| 38 | if valid: |
---|
| 39 | option = colnames[col] |
---|
| 40 | columns.append((option,str(col),False)) |
---|
| 41 | if len(columns) > 0: |
---|
| 42 | """ |
---|
| 43 | We have our select list built, so we can break out of the outer most for loop |
---|
| 44 | """ |
---|
| 45 | break |
---|
| 46 | if i == 30: |
---|
| 47 | break # Hopefully we never get here... |
---|
| 48 | else: |
---|
| 49 | columns = [('?','?',False),] |
---|
| 50 | return columns |
---|
| 51 | |
---|
| 52 | |
---|
| 53 | def exec_after_process(app, inp_data, out_data, param_dict, tool, stdout, stderr): |
---|
| 54 | """Sets the name of the data |
---|
| 55 | <outputs> |
---|
| 56 | <data format="pdf" name="allqq" /> |
---|
| 57 | <data format="pdf" name="lowqq" parent="allqq"/> |
---|
| 58 | </outputs> |
---|
| 59 | """ |
---|
| 60 | job_name = param_dict.get( 'name', 'My rgQQplot' ) |
---|
| 61 | killme = string.punctuation + string.whitespace |
---|
| 62 | trantab = string.maketrans(killme,'_'*len(killme)) |
---|
| 63 | newname = '%s.pdf' % job_name.translate(trantab) |
---|
| 64 | lookup={} |
---|
| 65 | lookup['allqq'] = newname |
---|
| 66 | for aname in lookup.keys(): |
---|
| 67 | data = out_data[aname] |
---|
| 68 | newname = lookup[aname] |
---|
| 69 | data.name = newname |
---|
| 70 | out_data[aname] = data |
---|
| 71 | app.model.context.flush() |
---|
| 72 | |
---|