diff options
Diffstat (limited to 'wqflask/maintenance/gen_select_dataset.py')
-rwxr-xr-x | wqflask/maintenance/gen_select_dataset.py | 89 |
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) |