aboutsummaryrefslogtreecommitdiff
path: root/wqflask/maintenance/gen_select_dataset.py
diff options
context:
space:
mode:
authorZachary Sloan2012-10-24 17:39:43 -0500
committerZachary Sloan2012-10-24 17:39:43 -0500
commit55d78345ba1cd2f56b1aecabf5bb3753bfd7ca13 (patch)
tree14ae73aa7c0634e21f5729b0ff7a355e2891cabd /wqflask/maintenance/gen_select_dataset.py
parent4b90c959c9a65c2b42250b2fcfc9a8ffbf63fd7e (diff)
downloadgenenetwork2-55d78345ba1cd2f56b1aecabf5bb3753bfd7ca13.tar.gz
Now builds json datastructure for menus correctly
Diffstat (limited to 'wqflask/maintenance/gen_select_dataset.py')
-rw-r--r--wqflask/maintenance/gen_select_dataset.py97
1 files changed, 57 insertions, 40 deletions
diff --git a/wqflask/maintenance/gen_select_dataset.py b/wqflask/maintenance/gen_select_dataset.py
index 33813051..9224b884 100644
--- a/wqflask/maintenance/gen_select_dataset.py
+++ b/wqflask/maintenance/gen_select_dataset.py
@@ -76,17 +76,22 @@ def get_types(groups):
types[species] = {}
for group_name, _group_full_name in group_dict:
# make group an alias to shorten the code
- group = types[species][group_name] = [("Phenotypes", "Phenotypes"),
- ("Genotypes", "Genotypes")]
- Cursor.execute("""select distinct Tissue.Name, concat(Tissue.Name, ' mRNA') from
- ProbeFreeze,
- ProbeSetFreeze, InbredSet, Tissue where ProbeFreeze.TissueId = Tissue.Id and
+ types[species][group_name] = [("Phenotypes", "Phenotypes"), ("Genotypes", "Genotypes")]
+ types[species][group_name] += build_types(species, group_name)
+ return types
+
+
+def build_types(species, group):
+ Cursor.execute("""select distinct Tissue.Name, concat(Tissue.Name, ' mRNA')
+ from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue, Species
+ where Species.Name = %s and Species.Id = InbredSet.SpeciesId and
+ InbredSet.Name = %s and
+ ProbeFreeze.TissueId = Tissue.Id and
ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name = %s and ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
+ ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
ProbeSetFreeze.public > %s
- order by Tissue.Name""", (group_name, webqtlConfig.PUBLICTHRESH))
- group += Cursor.fetchall()
- return types
+ order by Tissue.Name""", (species, group, webqtlConfig.PUBLICTHRESH))
+ return Cursor.fetchall()
def get_datasets(types):
@@ -97,39 +102,44 @@ def get_datasets(types):
for group, type_list in group_dict.iteritems():
datasets[species][group] = {}
for type_name, type_full_name in type_list:
- dataset_text = dataset_value = None
- if type_name == "Phenotypes":
- dataset_value = "%sPublish" % group
- if group == 'MDP':
- dataset_text = "Mouse Phenome Database"
- else:
- dataset_text = "%s Published Phenotypes" % group
-
- elif type_name == "Genotypes":
- dataset_value = "%sGeno" % group
- dataset_text = "%s Genotypes" % group
-
- if dataset_value:
- datasets[species][group][type_name] = [(dataset_value, dataset_text)]
- else:
- Cursor.execute("""select ProbeSetFreeze.Name, ProbeSetFreeze.FullName from
- ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue where
- ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and Tissue.Name = %s
- and ProbeFreeze.TissueId = Tissue.Id and ProbeFreeze.InbredSetId =
- InbredSet.Id and ProbeSetFreeze.public > %s order by
- ProbeSetFreeze.CreateTime desc""", (type_name,
- webqtlConfig.PUBLICTHRESH))
- datasets[species][group][type_name] = Cursor.fetchall()
-
+ datasets[species][group][type_name] = build_datasets(species, group, type_name)
return datasets
+def build_datasets(species, group, type_name):
+ dataset_text = dataset_value = None
+ if type_name == "Phenotypes":
+ dataset_value = "%sPublish" % group
+ if group == 'MDP':
+ dataset_text = "Mouse Phenome Database"
+ else:
+ dataset_text = "%s Published Phenotypes" % group
+
+ elif type_name == "Genotypes":
+ dataset_value = "%sGeno" % group
+ dataset_text = "%s Genotypes" % group
+
+ if dataset_value:
+ return [(dataset_value, dataset_text)]
+ else:
+ Cursor.execute("""select 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 > %s order by
+ ProbeSetFreeze.CreateTime desc""", (
+ species, group, type_name, webqtlConfig.PUBLICTHRESH))
+ return Cursor.fetchall()
+
+
def main():
species = get_species()
groups = get_groups(species)
types = get_types(groups)
datasets = get_datasets(types)
-
+
species.append(('All Species', 'All Species'))
groups['All Species'] = [('All Groups', 'All Groups')]
types['All Species'] = {}
@@ -137,18 +147,25 @@ def main():
datasets['All Species'] = {}
datasets['All Species']['All Groups'] = {}
datasets['All Species']['All Groups']['Phenotypes'] = [('All Phenotypes','All Phenotypes')]
-
+
data = dict(species=species,
groups=groups,
types=types,
datasets=datasets,
)
-
- output_file = """../wqflask/static/new/javascript/dataset_menu_structure.json"""
-
+
+ output_file = """../wqflask/static/new/javascript/dataset_menu_structure"""
+
with open(output_file, 'w') as fh:
json.dump(data, fh, indent=" ", sort_keys=True)
-
+
+ print("\nWrote file to:", output_file)
+
+def test_it():
+ types = build_types("Mouse", "BXD")
+ print("build_types:", pf(types))
+ datasets = build_datasets("Mouse", "BXD", "Hippocampus")
+ print("build_datasets:", pf(datasets))
if __name__ == '__main__':
- main() \ No newline at end of file
+ main()