diff match_library.py @ 1:071a185c2ced

new tools
author pieter.lukasse@wur.nl
date Fri, 24 Oct 2014 12:52:56 +0200
parents 4b94bb2d381c
children
line wrap: on
line diff
--- a/match_library.py	Thu Jan 16 13:22:38 2014 +0100
+++ b/match_library.py	Fri Oct 24 12:52:56 2014 +0200
@@ -17,15 +17,19 @@
     GC-column types. Used by the library_lookup.xml tool
     @param library_file: given library file from which the list of GC-column types is extracted
     '''
-    (data, header) = read_library(library_file)
-
-    if 'columntype' not in header:
-        raise IOError('Missing columns in ', library_file)
-
-    # Filter data on column type
-    column_type = header.index("columntype")
-    amounts_in_list_dict = count_occurrence([row[column_type] for row in data])
-    galaxy_output = [(str(a) + "(" + str(b) + ")", a, False) for a, b in amounts_in_list_dict.items()]
+    if library_file == "":
+        galaxy_output = [("", "", False)]
+    else:
+        (data, header) = read_library(library_file)
+    
+        if 'columntype' not in header:
+            raise IOError('Missing columns in ', library_file)
+    
+        # Filter data on column type
+        column_type = header.index("columntype")
+        amounts_in_list_dict = count_occurrence([row[column_type] for row in data])
+        galaxy_output = [(str(a) + "(" + str(b) + ")", a, False) for a, b in amounts_in_list_dict.items()]
+        
     return(galaxy_output)
 
 
@@ -35,19 +39,23 @@
     @param library_file: file containing the database
     @param column_type_name: column type to filter on
     '''
-    (data, header) = read_library(library_file)
-
-    if ('columntype' not in header or
-        'columnphasetype' not in header):
-        raise IOError('Missing columns in ', library_file)
-
-    column_type = header.index("columntype")
-    statphase = header.index("columnphasetype")
-
-    # Filter data on colunn type name
-    statphase_list = [line[statphase] for line in data if line[column_type] == column_type_name]
-    amounts_in_list_dict = count_occurrence(statphase_list)
-    galaxy_output = [(str(a) + "(" + str(b) + ")", a, False)for a, b in amounts_in_list_dict.items()]
+    if library_file == "":
+        galaxy_output = [("", "", False)]
+    else:
+        (data, header) = read_library(library_file)
+    
+        if ('columntype' not in header or
+            'columnphasetype' not in header):
+            raise IOError('Missing columns in ', library_file)
+    
+        column_type = header.index("columntype")
+        statphase = header.index("columnphasetype")
+    
+        # Filter data on colunn type name
+        statphase_list = [line[statphase] for line in data if line[column_type] == column_type_name]
+        amounts_in_list_dict = count_occurrence(statphase_list)
+        galaxy_output = [(str(a) + "(" + str(b) + ")", a, False)for a, b in amounts_in_list_dict.items()]
+        
     return(sorted(galaxy_output))
 
 
@@ -58,22 +66,26 @@
     @param column_type_name: column type to filter on
     @param statphase: stationary phase of the column to filter on
     '''
-    (data, header) = read_library(library_file)
-
-    if ('columntype' not in header or
-        'columnphasetype' not in header or
-        'columnname' not in header):
-        raise IOError('Missing columns in ', library_file)
-
-    column_type_column = header.index("columntype")
-    statphase_column = header.index("columnphasetype")
-    column_name_column = header.index("columnname")
-
-    # Filter data on given column type name and stationary phase
-    statphase_list = [line[column_name_column] for line in data if line[column_type_column] == column_type_name and
-                      line[statphase_column] == statphase]
-    amounts_in_list_dict = count_occurrence(statphase_list)
-    galaxy_output = [(str(a) + "(" + str(b) + ")", a, False)for a, b in amounts_in_list_dict.items()]
+    if library_file == "":
+        galaxy_output = [("", "", False)]
+    else:
+        (data, header) = read_library(library_file)
+    
+        if ('columntype' not in header or
+            'columnphasetype' not in header or
+            'columnname' not in header):
+            raise IOError('Missing columns in ', library_file)
+    
+        column_type_column = header.index("columntype")
+        statphase_column = header.index("columnphasetype")
+        column_name_column = header.index("columnname")
+    
+        # Filter data on given column type name and stationary phase
+        statphase_list = [line[column_name_column] for line in data if line[column_type_column] == column_type_name and
+                          line[statphase_column] == statphase]
+        amounts_in_list_dict = count_occurrence(statphase_list)
+        galaxy_output = [(str(a) + "(" + str(b) + ")", a, False)for a, b in amounts_in_list_dict.items()]
+        
     return(sorted(galaxy_output))
 
 
@@ -96,9 +108,10 @@
     fill a Galaxy drop-down combo box.
     
     '''
-    files = glob.glob(dir_name + "/*.txt")
+    files = glob.glob(dir_name + "/*.*")
     if len(files) == 0:
-        raise Exception("Configuration error: no library files found in <galaxy-home-dir>/" + dir_name)
+        # Configuration error: no library files found in <galaxy-home-dir>/" + dir_name :
+        galaxy_output = [("Configuration error: expected file not found in <galaxy-home-dir>/" + dir_name, "", False)]
     else:
         galaxy_output = [(str(get_file_name_no_ext(file_name)), str(os.path.abspath(file_name)), False) for file_name in files]
     return(galaxy_output)