about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/maintenance/quick_search_table.py61
1 files changed, 44 insertions, 17 deletions
diff --git a/wqflask/maintenance/quick_search_table.py b/wqflask/maintenance/quick_search_table.py
index 63fb7da5..132d1b72 100644
--- a/wqflask/maintenance/quick_search_table.py
+++ b/wqflask/maintenance/quick_search_table.py
@@ -43,7 +43,7 @@ Metadata.bind = Engine
 
 
 class ProbeSet(Base):
-    __tablename__ = 'ProbeSet'
+    __tablename__ = 'ProbeSetXRef'
     __table_args__ = {'autoload': True}
     
 QuickSearch = sa.Table("QuickSearch", Metadata,
@@ -52,11 +52,11 @@ QuickSearch = sa.Table("QuickSearch", Metadata,
         sa.Column('the_key', sa.String(30),
                   primary_key=True, nullable=False, autoincrement=False), # key in database table
         sa.Column('terms', sa.Text), # terms to compare search string with
-        sa.Column('species', sa.Text),
+        #sa.Column('species', sa.Text),
         sa.Column('result_fields', sa.Text)  # json
                     )
 
-#QuickSearch.drop(Engine, checkfirst=True)
+QuickSearch.drop(Engine, checkfirst=True)
 Metadata.create_all(Engine)
 
 #class QuickSearch(Base):
@@ -73,11 +73,26 @@ Metadata.create_all(Engine)
 #        self.result_fields = json.dumps(sort_keys=True)
 
 
-def get_unique_terms(*args):
-    if not args:
-        return None
+def get_unique_terms(trait_type, trait_id):
+    #if not args:
+    #    return None
+    
+    if trait_type="ProbeSet":
+        results = Session.query(
+                "name",
+                "symbol",
+                "description",
+                "alias"
+            ).from_statement(
+                "SELECT ProbeSet.Name as name, "
+                "ProbeSet.Symbol as symbol, "
+                "ProbeSet.description as description, "
+                "ProbeSet.alias as alias "
+                "FROM ProbeSet"
+                "WHERE ProbeSet.Id = :probeset_id ").params(probeset_id=trait_id).all()
+    
     unique = set()
-    for item in args:
+    for item in results[0]:
         #print("locals:", locals())
         if not item:
             continue
@@ -107,12 +122,12 @@ def main():
     counter = 0
     for ps in page_query(Session.query(ProbeSet)):   #all()
         values = {}
-        values['table_name'] = "ProbeSet"
-        values['the_key'] = ps.Id
-        values['terms'] = get_unique_terms(ps.Name, ps.Symbol, ps.description, ps.alias)
+        values['table_name'] = "ProbeSetXRef"
+        values['the_key'] = json.dumps([ps.ProbeSetId, ps.ProbeSetFreezeId])
+        values['terms'] = get_unique_terms("ProbeSet", ps.ProbeSetId)
         print("terms is:", values['terms'])
-        values['species'] = get_species("ProbeSet", ps.Id)
-        values['result_fields'] = get_result_fields("ProbeSet", ps.Id)
+        #values['species'] = get_species("ProbeSet", ps.Id)
+        values['result_fields'] = get_result_fields("ProbeSet", ps.ProbeSetId, ps.ProbeSetFreezeId)
         ins = QuickSearch.insert().values(**values)
         conn.execute(ins)
         counter += 1
@@ -141,19 +156,31 @@ def get_species(trait_type, trait_id):
 
     return results[0].Name
 
-def get_result_fields(trait_type, trait_id):
+def get_result_fields(trait_type, *args):
     if trait_type == "ProbeSet":
         print("qs1")
         results = Session.query(
-                "name", "symbol", "description", "chr", "mb"
+                "name",
+                "symbol",
+                "description",
+                "chr", "mb",
+                "genbank_id",
+                "gene_id",
+                "chip_id",
+                "chip_name"
             ).from_statement(
                 "SELECT ProbeSet.Name as name, "
                 "ProbeSet.Symbol as symbol, "
                 "ProbeSet.description as description, "
                 "ProbeSet.Chr as chr, "
-                "ProbeSet.Mb as mb "
-                "FROM ProbeSet "
-                "WHERE ProbeSet.Id = :probeset_id ").params(probeset_id=trait_id).all()
+                "ProbeSet.Mb as mb, "
+                "ProbeSet.GenbankId as genbank_id, "
+                "ProbeSet.GeneId as gene_id, "
+                "ProbeSet.ChipId as chip_id, "
+                "GeneChip.Name as chip_name "
+                "FROM ProbeSet, GeneChip "
+                "WHERE ProbeSet.ChipId = GeneChip.Id and "
+                "ProbeSet.Id = :probeset_id ").params(probeset_id=*args[0], dataset_id=*args[1]).all()
         print("qs2")
         for result in results:
             print(result)