about summary refs log tree commit diff
path: root/wqflask/maintenance/gen_select_dataset.py
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/maintenance/gen_select_dataset.py')
-rwxr-xr-xwqflask/maintenance/gen_select_dataset.py89
1 files changed, 56 insertions, 33 deletions
diff --git a/wqflask/maintenance/gen_select_dataset.py b/wqflask/maintenance/gen_select_dataset.py
index a2ad8c91..e080050e 100755
--- a/wqflask/maintenance/gen_select_dataset.py
+++ b/wqflask/maintenance/gen_select_dataset.py
@@ -76,7 +76,7 @@ def parse_db_uri(db_uri):
 
 def get_species():
     """Build species list"""
-    Cursor.execute("select Name, MenuName from Species order by OrderId")
+    Cursor.execute("select Name, MenuName from Species where Species.Name != 'macaque monkey' order by OrderId")
     species = list(Cursor.fetchall())
     return species
 
@@ -90,8 +90,8 @@ def get_groups(species):
                        ProbeFreeze, GenoFreeze, PublishFreeze where Species.Name = %s
                        and InbredSet.SpeciesId = Species.Id and InbredSet.Name != 'BXD300' and
                        (PublishFreeze.InbredSetId = InbredSet.Id
-                            or GenoFreeze.InbredSetId = InbredSet.Id
-                            or ProbeFreeze.InbredSetId = InbredSet.Id)
+                        or GenoFreeze.InbredSetId = InbredSet.Id
+                        or ProbeFreeze.InbredSetId = InbredSet.Id)
                         group by InbredSet.Name
                         order by InbredSet.Name""", (species_name))
         groups[species_name] = list(Cursor.fetchall())
@@ -123,12 +123,12 @@ def get_types(groups):
 
 
 def phenotypes_exist(group_name):
-    print("group_name:", group_name)
+    #print("group_name:", group_name)
     Cursor.execute("""select Name from PublishFreeze
                       where PublishFreeze.Name = %s""", (group_name+"Publish"))
 
     results = Cursor.fetchone()
-    print("RESULTS:", results)
+    #print("RESULTS:", results)
 
     if results != None:
         return True
@@ -136,12 +136,12 @@ def phenotypes_exist(group_name):
         return False
 
 def genotypes_exist(group_name):
-    print("group_name:", group_name)
+    #print("group_name:", group_name)
     Cursor.execute("""select Name from GenoFreeze
                       where GenoFreeze.Name = %s""", (group_name+"Geno"))
 
     results = Cursor.fetchone()
-    print("RESULTS:", results)
+    #print("RESULTS:", results)
 
     if results != None:
         return True
@@ -156,15 +156,6 @@ def build_types(species, group):
      
     """
     
-    #print("""select distinct Tissue.Name
-    #                   from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue, Species
-    #                   where Species.Name = '{}' and Species.Id = InbredSet.SpeciesId and
-    #                   InbredSet.Name = '{}' and
-    #                   ProbeFreeze.TissueId = Tissue.Id and
-    #                   ProbeFreeze.InbredSetId = InbredSet.Id and
-    #                   ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
-    #                   ProbeSetFreeze.public > 0
-    #                   order by Tissue.Name""".format(species, group))
     Cursor.execute("""select distinct Tissue.Name
                        from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue, Species
                        where Species.Name = %s and Species.Id = InbredSet.SpeciesId and
@@ -178,7 +169,9 @@ def build_types(species, group):
     results = []
     for result in Cursor.fetchall():
         if len(result):
-            results.append((result[0], result[0]))
+            these_datasets = build_datasets(species, group, result[0])
+            if len(these_datasets) > 0:
+                results.append((result[0], result[0]))
     
     return results
 
@@ -191,7 +184,10 @@ def get_datasets(types):
             #print("type_list: ", type_list)
             datasets[species][group] = {}
             for type_name in type_list:
-                datasets[species][group][type_name[0]] = build_datasets(species, group, type_name[0])
+                these_datasets = build_datasets(species, group, type_name[0])
+                if len(these_datasets) > 0:
+                    datasets[species][group][type_name[0]] = these_datasets
+
     return datasets
 
 
@@ -199,6 +195,20 @@ def build_datasets(species, group, type_name):
     """Gets dataset names from database"""
     dataset_text = dataset_value = None
     if type_name == "Phenotypes":
+        print("GROUP:", group)
+        Cursor.execute("""select InfoFiles.GN_AccesionId from InfoFiles, PublishFreeze, InbredSet where
+                    InbredSet.Name = %s and 
+                    PublishFreeze.InbredSetId = InbredSet.Id and
+                    InfoFiles.InfoPageName = PublishFreeze.Name and
+                    PublishFreeze.public > 0 and 
+                    PublishFreeze.confidentiality < 1 order by
+                    PublishFreeze.CreateTime desc""", (group))
+
+        results = Cursor.fetchone()
+        if results != None:
+            dataset_id = str(results[0])
+        else:
+            dataset_id = "None"
         dataset_value = "%sPublish" % group
         if group == 'MDP':
             dataset_text = "Mouse Phenome Database"
@@ -206,29 +216,43 @@ def build_datasets(species, group, type_name):
             dataset_text = "%s Published Phenotypes" % group
 
     elif type_name == "Genotypes":
+        Cursor.execute("""select InfoFiles.GN_AccesionId from InfoFiles, GenoFreeze, InbredSet where
+                    InbredSet.Name = %s and 
+                    GenoFreeze.InbredSetId = InbredSet.Id and
+                    InfoFiles.InfoPageName = GenoFreeze.ShortName and
+                    GenoFreeze.public > 0 and 
+                    GenoFreeze.confidentiality < 1 order by
+                    GenoFreeze.CreateTime desc""", (group))
+
+        results = Cursor.fetchone()
+        if results != None:
+            dataset_id = str(results[0])
+        else:
+            dataset_id = "None"
         dataset_value = "%sGeno" % group
         dataset_text = "%s Genotypes" % group
 
     if dataset_value:
-        return [(dataset_value, dataset_text)]
+        return [(dataset_id, dataset_value, dataset_text)]
     else:
-        #print("""select ProbeSetFreeze.Name, ProbeSetFreeze.FullName from
-        #            ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue, Species where
-        #            Species.Name = '{}' and Species.Id = InbredSet.SpeciesId and
-        #            InbredSet.Name = '{}' and
-        #            ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and Tissue.Name = '{}'
-        #            and ProbeFreeze.TissueId = Tissue.Id and ProbeFreeze.InbredSetId =
-        #            InbredSet.Id and ProbeSetFreeze.public > 0 order by
-        #            ProbeSetFreeze.CreateTime desc""".format(species, group, type_name))
-        Cursor.execute("""select ProbeSetFreeze.Name, ProbeSetFreeze.FullName from
+        Cursor.execute("""select ProbeSetFreeze.Id, ProbeSetFreeze.Name, ProbeSetFreeze.FullName from
                     ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue, Species where
                     Species.Name = %s and Species.Id = InbredSet.SpeciesId and
                     InbredSet.Name = %s and
-                    ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and Tissue.Name = %s
-                    and ProbeFreeze.TissueId = Tissue.Id and ProbeFreeze.InbredSetId =
-                    InbredSet.Id and ProbeSetFreeze.public > 0 order by
+                    ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and Tissue.Name = %s and 
+                    ProbeFreeze.TissueId = Tissue.Id and ProbeFreeze.InbredSetId = InbredSet.Id and 
+                    ProbeSetFreeze.confidentiality < 1 and ProbeSetFreeze.public > 0 order by
                     ProbeSetFreeze.CreateTime desc""", (species, group, type_name))
-        return Cursor.fetchall()
+ 
+        dataset_results = Cursor.fetchall()
+        datasets = []
+        for dataset_info in dataset_results:
+            this_dataset_info = []
+            for info in dataset_info:
+                this_dataset_info.append(str(info))
+            datasets.append(this_dataset_info)
+
+        return datasets
 
 
 def main():
@@ -238,7 +262,6 @@ def main():
 
     species = get_species()
     groups = get_groups(species)
-    print("groups:", groups)
     types = get_types(groups)
     datasets = get_datasets(types)