about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xwqflask/wqflask/do_search.py72
-rwxr-xr-xwqflask/wqflask/search_results.py1
2 files changed, 36 insertions, 37 deletions
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index a3260f34..5b042940 100755
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -481,7 +481,7 @@ class GoSearch(MrnaAssaySearch):
         return self.execute(query)
 
 #ZS: Not sure what the best way to deal with LRS searches is
-class LrsSearch(MrnaAssaySearch):
+class LrsSearch(DoSearch):
     """Searches for genes with a QTL within the given LRS values
 
     LRS searches can take 3 different forms:
@@ -497,9 +497,11 @@ class LrsSearch(MrnaAssaySearch):
 
     def get_from_clause(self):
         if self.search_operator == "=":
-            return ", Geno"
+            from_clause = ", Geno"
         else:
-            return ""
+            from_clause = ""
+
+        return from_clause
 
     def get_where_clause(self):
         self.search_term = [float(value) for value in self.search_term]
@@ -537,26 +539,42 @@ class LrsSearch(MrnaAssaySearch):
                                                                         self.search_operator,
                                                                         self.search_term[0])
             where_clause = self.sub_clause
-        
-
+       
         return where_clause
 
-    def get_final_query(self):
+
+    def run(self):
+
         self.from_clause = self.get_from_clause()
         self.where_clause = self.get_where_clause()
+
         self.query = self.compile_final_query(self.from_clause, self.where_clause)
 
-        return self.query
+        return self.execute(self.query)
+
+class MrnaLrsSearch(LrsSearch, MrnaAssaySearch):
+    
+    DoSearch.search_types['ProbeSet_LRS'] = 'MrnaLrsSearch'
 
     def run(self):
 
         self.from_clause = self.get_from_clause()
         self.where_clause = self.get_where_clause()
-
-        self.query = self.compile_final_query(self.from_clause, self.where_clause)
+        self.query = self.compile_final_query(from_clause = self.from_clause, where_clause = self.where_clause)
 
         return self.execute(self.query)
 
+class PhenotypeLrsSearch(LrsSearch, PhenotypeSearch):
+    
+    DoSearch.search_types['Publish_LRS'] = 'PhenotypeLrsSearch'
+
+    def run(self):
+
+        self.from_clause = self.get_from_clause()
+        self.where_clause = self.get_where_clause()
+        self.query = self.compile_final_query(from_clause = self.from_clause, where_clause = self.where_clause)
+
+        return self.execute(self.query)
 
 class CisTransLrsSearch(LrsSearch):
 
@@ -693,24 +711,6 @@ class MeanSearch(MrnaAssaySearch):
         return self.query
 
     def run(self):
-
-        #self.search_term = [float(value) for value in self.search_term]
-        #
-        #if self.search_operator == "=":
-        #    assert isinstance(self.search_term, (list, tuple))
-        #    self.mean_min, self.mean_max = self.search_term[:2]
-        #
-        #    self.where_clause = """ %sXRef.mean > %s and
-        #                     %sXRef.mean < %s """ % self.mescape(self.dataset.type,
-        #                                                        min(self.mean_min, self.mean_max),
-        #                                                        self.dataset.type,
-        #                                                        max(self.mean_min, self.mean_max))
-        #else:
-        #    # Deal with >, <, >=, and <=
-        #    self.where_clause = """ %sXRef.mean %s %s """ % self.mescape(self.dataset.type,
-        #                                                                self.search_operator,
-        #                                                                self.search_term[0])
-
         self.where_clause = self.get_where_clause()
         print("where_clause is:", pf(self.where_clause))
 
@@ -781,6 +781,10 @@ class PositionSearch(DoSearch):
         DoSearch.search_types[search_key] = "PositionSearch"
 
     def get_where_clause(self):
+        self.search_term = [float(value) if is_number(value) else value for value in self.search_term]
+        self.chr, self.mb_min, self.mb_max = self.search_term[:3]
+        self.get_chr()
+
         where_clause = """ %s.Chr = %s and
                                 %s.Mb > %s and
                                 %s.Mb < %s """ % self.mescape(self.dataset.type,
@@ -793,12 +797,6 @@ class PositionSearch(DoSearch):
 
         return where_clause
 
-    def setup(self):
-        self.search_term = [float(value) if is_number(value) else value for value in self.search_term]
-        self.chr, self.mb_min, self.mb_max = self.search_term[:3]
-        self.get_chr()
-        self.where_clause = self.get_where_clause()
-
     def get_chr(self):
         try:
             self.chr = int(self.chr)
@@ -807,7 +805,7 @@ class PositionSearch(DoSearch):
 
     def run(self):
 
-        self.setup()
+        self.get_where_clause()
         self.query = self.compile_final_query(where_clause = self.where_clause)
 
         return self.execute(self.query)
@@ -820,7 +818,7 @@ class MrnaPositionSearch(PositionSearch, MrnaAssaySearch):
 
     def run(self):
 
-        self.setup()
+        self.get_where_clause()
         self.query = self.compile_final_query(where_clause = self.where_clause)
 
         return self.execute(self.query)
@@ -833,7 +831,7 @@ class GenotypePositionSearch(PositionSearch, GenotypeSearch):
 
     def run(self):
 
-        self.setup()
+        self.get_where_clause()
         self.query = self.compile_final_query(where_clause = self.where_clause)
 
         return self.execute(self.query)
@@ -841,6 +839,8 @@ class GenotypePositionSearch(PositionSearch, GenotypeSearch):
 class PvalueSearch(MrnaAssaySearch):
     """Searches for traits with a permutationed p-value between low and high"""
 
+    DoSearch.search_types['ProbeSet_PVALUE'] = "PvalueSearch"
+
     def run(self):
 
         self.search_term = [float(value) for value in self.search_term]
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 2a1e8bb3..6614520e 100755
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -239,7 +239,6 @@ class SearchResultPage(object):
             for a_search in self.search_terms:
                 the_search = self.get_search_ob(a_search)
                 self.results.extend(the_search.run())
-                #print("in the search results are:", self.results)
 
         self.header_fields = the_search.header_fields