| 0 | 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 |