From ee1e49b90663be72032c8dee32748e97bc28e1e9 Mon Sep 17 00:00:00 2001 From: zsloan Date: Fri, 21 Dec 2018 10:48:33 -0600 Subject: Fixed collections so they can be very large (1000+ traits) Added option to submit traits in collection to BNW Fixed issue with "x" values for user-submitted traits Fixed issue where post-publications descriptions were wrongly appearing in global search results --- wqflask/base/data_set.py | 11 +- wqflask/maintenance/convert_geno_to_bimbam.py | 4 +- wqflask/wqflask/collect.py | 48 ++-- wqflask/wqflask/external_tools/__init__.py | 0 wqflask/wqflask/external_tools/send_to_bnw.py | 72 ++++++ .../wqflask/external_tools/send_to_geneweaver.py | 21 ++ wqflask/wqflask/gsearch.py | 22 +- wqflask/wqflask/search_results.py | 12 - wqflask/wqflask/show_trait/SampleList.py | 2 +- wqflask/wqflask/show_trait/show_trait.py | 4 +- .../new/javascript/dataset_menu_structure.json | 262 +++++++++++---------- .../static/new/javascript/search_results.js | 18 +- wqflask/wqflask/static/new/js_external/md5.min.js | 2 + wqflask/wqflask/templates/bnw_page.html | 7 + wqflask/wqflask/templates/collections/add.html | 4 + wqflask/wqflask/templates/collections/view.html | 13 + wqflask/wqflask/templates/search_result_page.html | 1 + wqflask/wqflask/templates/show_trait_details.html | 5 - wqflask/wqflask/views.py | 19 ++ 19 files changed, 348 insertions(+), 179 deletions(-) create mode 100644 wqflask/wqflask/external_tools/__init__.py create mode 100644 wqflask/wqflask/external_tools/send_to_geneweaver.py create mode 100644 wqflask/wqflask/static/new/js_external/md5.min.js create mode 100644 wqflask/wqflask/templates/bnw_page.html (limited to 'wqflask') diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py index 4a422ee4..55782576 100644 --- a/wqflask/base/data_set.py +++ b/wqflask/base/data_set.py @@ -371,23 +371,16 @@ class DatasetGroup(object): result = Redis.get(key) if result is not None: - #logger.debug("Sample List Cache hit!!!") - #logger.debug("Before unjsonifying {}: {}".format(type(result), result)) self.samplelist = json.loads(result) - #logger.debug(" type: ", type(self.samplelist)) - #logger.debug(" self.samplelist: ", self.samplelist) else: logger.debug("Cache not hit") genotype_fn = locate_ignore_error(self.name+".geno",'genotype') - mapping_fn = locate_ignore_error(self.name+".fam",'mapping') - if mapping_fn: - self.samplelist = get_group_samplelists.get_samplelist("plink", mapping_fn) - elif genotype_fn: + if genotype_fn: self.samplelist = get_group_samplelists.get_samplelist("geno", genotype_fn) else: self.samplelist = None - logger.debug("Sample list: ",self.samplelist) + if USE_REDIS: Redis.set(key, json.dumps(self.samplelist)) Redis.expire(key, 60*5) diff --git a/wqflask/maintenance/convert_geno_to_bimbam.py b/wqflask/maintenance/convert_geno_to_bimbam.py index 8f331a06..528b98cf 100644 --- a/wqflask/maintenance/convert_geno_to_bimbam.py +++ b/wqflask/maintenance/convert_geno_to_bimbam.py @@ -180,8 +180,8 @@ class ConvertGenoFile(object): break if __name__=="__main__": - Old_Geno_Directory = """/home/zas1024/genotype_files/genotype/""" - New_Geno_Directory = """/home/zas1024/genotype_files/genotype/bimbam/""" + Old_Geno_Directory = """/export/local/home/zas1024/gn2-zach/genotype_files/genotype""" + New_Geno_Directory = """/export/local/home/zas1024/gn2-zach/genotype_files/genotype/bimbam""" #Input_File = """/home/zas1024/gene/genotype_files/genotypes/BXD.geno""" #Output_File = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/bxd.snps""" #convertob = ConvertGenoFile("/home/zas1024/gene/genotype_files/genotypes/SRxSHRSPF2.geno", "/home/zas1024/gene/genotype_files/new_genotypes/SRxSHRSPF2.json") diff --git a/wqflask/wqflask/collect.py b/wqflask/wqflask/collect.py index e51fa157..a04e4b13 100644 --- a/wqflask/wqflask/collect.py +++ b/wqflask/wqflask/collect.py @@ -85,9 +85,9 @@ class AnonCollection(object): num_members = collection['num_members'] return num_members - def add_traits(self, params): + def add_traits(self, unprocessed_traits): #assert collection_name == "Default", "Unexpected collection name for anonymous user" - self.traits = list(process_traits(params['traits'])) + self.traits = list(process_traits(unprocessed_traits)) existing_collections = Redis.get(self.key) logger.debug("existing_collections:", existing_collections) if existing_collections != None and existing_collections != "None": @@ -144,7 +144,6 @@ class AnonCollection(object): return str(len_now) def process_traits(unprocessed_traits): - #print("unprocessed_traits are:", unprocessed_traits) if isinstance(unprocessed_traits, basestring): unprocessed_traits = unprocessed_traits.split(",") traits = set() @@ -167,26 +166,38 @@ def report_change(len_before, len_now): else: logger.debug("No new traits were added.") +@app.route("/collections/store_trait_list", methods=('POST',)) +def store_traits_list(): + params = request.form + + traits = params['traits'] + hash = params['hash'] + + Redis.set(hash, traits) + + return hash @app.route("/collections/add") def collections_add(): - traits=request.args['traits'] - if g.user_session.logged_in: - user_collections = g.user_session.user_collections - #logger.debug("user_collections are:", user_collections) - return render_template("collections/add.html", - traits = traits, - collections = user_collections, - ) + collections = g.user_session.user_collections else: anon_collections = user_manager.AnonUser().get_collections() - collection_names = [] + collections = [] for collection in anon_collections: - collection_names.append({'id':collection['id'], 'name':collection['name']}) + collections.append({'id':collection['id'], 'name':collection['name']}) + + if 'traits' in request.args: + traits=request.args['traits'] return render_template("collections/add.html", traits = traits, - collections = collection_names, + collections = collections, + ) + else: + hash = request.args['hash'] + return render_template("collections/add.html", + hash = hash, + collections = collections, ) @app.route("/collections/new") @@ -231,7 +242,12 @@ def collections_new(): def create_new(collection_name): params = request.args - unprocessed_traits = params['traits'] + if "hash" in params: + unprocessed_traits = Redis.get(params['hash']) + Redis.delete(hash) + else: + unprocessed_traits = params['traits'] + traits = process_traits(unprocessed_traits) if g.user_session.logged_in: @@ -241,7 +257,7 @@ def create_new(collection_name): else: ac = AnonCollection(collection_name) ac.changed_timestamp = datetime.datetime.utcnow().strftime('%b %d %Y %I:%M%p') - ac.add_traits(params) + ac.add_traits(unprocessed_traits) return redirect(url_for('view_collection', collection_id=ac.id)) @app.route("/collections/list") diff --git a/wqflask/wqflask/external_tools/__init__.py b/wqflask/wqflask/external_tools/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/wqflask/wqflask/external_tools/send_to_bnw.py b/wqflask/wqflask/external_tools/send_to_bnw.py index e69de29b..e8f168f4 100644 --- a/wqflask/wqflask/external_tools/send_to_bnw.py +++ b/wqflask/wqflask/external_tools/send_to_bnw.py @@ -0,0 +1,72 @@ +## Copyright (C) University of Tennessee Health Science Center, Memphis, TN. +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Affero General Public License for more details. +# +# This program is available from Source Forge: at GeneNetwork Project +# (sourceforge.net/projects/genenetwork/). +# +# Contact Dr. Robert W. Williams at rwilliams@uthsc.edu +# +# +# This module is used by GeneNetwork project (www.genenetwork.org) + +from __future__ import absolute_import, print_function, division + +from base.trait import GeneralTrait +from utility import helper_functions, corr_result_helpers + +import utility.logger +logger = utility.logger.getLogger(__name__ ) + +class SendToBNW(object): + def __init__(self, start_vars): + trait_db_list = [trait.strip() for trait in start_vars['trait_list'].split(',')] + helper_functions.get_trait_db_obs(self, trait_db_list) + + trait_samples_list = [] + + for trait_db in self.trait_list: + trait_1 = trait_db[0] + this_sample_data = trait_1.data + + trait1_samples = list(this_sample_data.keys()) + trait_samples_list.append(trait1_samples) + + shared_samples = list(set(trait_samples_list[0]).intersection(*trait_samples_list)) + + self.form_value = "" #ZS: string that is passed to BNW through form + values_list = [] + for trait_db in self.trait_list: + this_trait = trait_db[0] + this_sample_data = this_trait.data + + trait_vals = [] + for sample in this_sample_data: + if sample in shared_samples: + trait_vals.append(this_sample_data[sample].value) + + values_list.append(trait_vals) + self.form_value += "_" + this_trait.name + "," + + values_list = zip(*values_list) + self.form_value = self.form_value[:-1] + self.form_value += ";" + + for row in values_list: + has_none = False + for cell in row: + if not cell: + has_none = True + break + if has_none: + continue + self.form_value += ",".join(str(cell) for cell in row) + self.form_value += ";" \ No newline at end of file diff --git a/wqflask/wqflask/external_tools/send_to_geneweaver.py b/wqflask/wqflask/external_tools/send_to_geneweaver.py new file mode 100644 index 00000000..956286af --- /dev/null +++ b/wqflask/wqflask/external_tools/send_to_geneweaver.py @@ -0,0 +1,21 @@ +## Copyright (C) University of Tennessee Health Science Center, Memphis, TN. +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License +# as published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Affero General Public License for more details. +# +# This program is available from Source Forge: at GeneNetwork Project +# (sourceforge.net/projects/genenetwork/). +# +# Contact Dr. Robert W. Williams at rwilliams@uthsc.edu +# +# +# This module is used by GeneNetwork project (www.genenetwork.org) + +from __future__ import absolute_import, print_function, division \ No newline at end of file diff --git a/wqflask/wqflask/gsearch.py b/wqflask/wqflask/gsearch.py index 37eb46cb..94965507 100644 --- a/wqflask/wqflask/gsearch.py +++ b/wqflask/wqflask/gsearch.py @@ -91,6 +91,7 @@ class GSearch(object): InbredSet.`Name`, PublishFreeze.`Name`, PublishXRef.`Id`, + Phenotype.`Pre_publication_description`, Phenotype.`Post_publication_description`, Publication.`Authors`, Publication.`Year`, @@ -126,23 +127,26 @@ class GSearch(object): this_trait['dataset'] = line[2] this_trait['species'] = line[0] this_trait['group'] = line[1] - this_trait['description'] = line[4] - this_trait['authors'] = line[5] - this_trait['year'] = line[6] + if line[8] != None: + this_trait['description'] = line[5] + else: + this_trait['description'] = line[4] + this_trait['authors'] = line[6] + this_trait['year'] = line[7] if this_trait['year'].isdigit(): this_trait['pubmed_text'] = this_trait['year'] else: this_trait['pubmed_text'] = "N/A" - if line[7] != "" and line[7] != None: - this_trait['pubmed_link'] = webqtlConfig.PUBMEDLINK_URL % line[7] + if line[8] != "" and line[8] != None: + this_trait['pubmed_link'] = webqtlConfig.PUBMEDLINK_URL % line[8] else: this_trait['pubmed_link'] = "N/A" this_trait['LRS_score_repr'] = "N/A" - if line[8] != "" and line[8] != None: - this_trait['LRS_score_repr'] = '%3.1f' % line[8] + if line[9] != "" and line[9] != None: + this_trait['LRS_score_repr'] = '%3.1f' % line[9] this_trait['additive'] = "N/A" - if line[9] != "": - this_trait['additive'] = line[9] + if line[10] != "": + this_trait['additive'] = line[10] #dataset = create_dataset(line[2], "Publish") #trait_id = line[3] diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py index 53c96591..171fd0f9 100644 --- a/wqflask/wqflask/search_results.py +++ b/wqflask/wqflask/search_results.py @@ -44,18 +44,6 @@ views.py). # Names and IDs of group / F2 set ########################################### - # All Phenotypes is a special case we'll deal with later - #if kw['dataset'] == "All Phenotypes": - # self.cursor.execute(""" - # select PublishFreeze.Name, InbredSet.Name, InbredSet.Id from PublishFreeze, - # InbredSet where PublishFreeze.Name not like 'BXD300%' and InbredSet.Id = - # PublishFreeze.InbredSetId""") - # results = self.cursor.fetchall() - # self.dataset = map(lambda x: DataSet(x[0], self.cursor), results) - # self.dataset_groups = map(lambda x: x[1], results) - # self.dataset_group_ids = map(lambda x: x[2], results) - #else: - self.uc_id = uuid.uuid4() logger.debug("uc_id:", self.uc_id) # contains a unique id diff --git a/wqflask/wqflask/show_trait/SampleList.py b/wqflask/wqflask/show_trait/SampleList.py index 6d9f07a0..f2259b55 100644 --- a/wqflask/wqflask/show_trait/SampleList.py +++ b/wqflask/wqflask/show_trait/SampleList.py @@ -46,7 +46,7 @@ class SampleList(object): sample_name = sample_name.replace("_2nd_", "") if type(self.this_trait) is list: #ZS: self.this_trait will be a list if it is a Temp trait - if counter <= len(self.this_trait) and self.this_trait[counter-1] != 'X': + if counter <= len(self.this_trait) and str(self.this_trait[counter-1]).upper() != 'X': sample = webqtlCaseData.webqtlCaseData(name=sample_name, value=float(self.this_trait[counter-1])) else: sample = webqtlCaseData.webqtlCaseData(name=sample_name) diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py index 514c2300..2955f69a 100644 --- a/wqflask/wqflask/show_trait/show_trait.py +++ b/wqflask/wqflask/show_trait/show_trait.py @@ -185,8 +185,8 @@ class ShowTrait(object): #ZS: Get list of chromosomes to select for mapping self.chr_list = [["All", -1]] - for i, this_chr in enumerate(self.species.chromosomes.chromosomes): - self.chr_list.append([self.species.chromosomes.chromosomes[this_chr].name, i]) + for i, this_chr in enumerate(self.dataset.species.chromosomes.chromosomes): + self.chr_list.append([self.dataset.species.chromosomes.chromosomes[this_chr].name, i]) self.genofiles = get_genofiles(self.dataset) diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json index a4ec6ece..3f2673c1 100644 --- a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json +++ b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json @@ -116,15 +116,15 @@ "B30_K_1206_M", "Barley1 Leaf MAS 5.0 SCRI (Dec06)" ], - [ - "125", - "B30_K_1206_R", - "Barley1 Leaf gcRMA SCRI (Dec06)" - ], [ "126", "B30_K_1206_Rn", "Barley1 Leaf gcRMAn SCRI (Dec06)" + ], + [ + "125", + "B30_K_1206_R", + "Barley1 Leaf gcRMA SCRI (Dec06)" ] ], "Phenotypes": [ @@ -1346,15 +1346,15 @@ "HLC_0311", "GSE9588 Human Liver Normal (Mar11) Both Sexes" ], - [ - "384", - "HLCF_0311", - "GSE9588 Human Liver Normal (Mar11) Females" - ], [ "383", "HLCM_0311", "GSE9588 Human Liver Normal (Mar11) Males" + ], + [ + "384", + "HLCF_0311", + "GSE9588 Human Liver Normal (Mar11) Females" ] ], "Phenotypes": [ @@ -1607,15 +1607,15 @@ "NCI_Agil_Mam_Tum_RMA_0409", "NCI Mammary LMT miRNA v2 (Apr09) RMA" ], - [ - "36", - "MA_M_0704_M", - "NCI Mammary mRNA M430 (July04) MAS5" - ], [ "37", "MA_M_0704_R", "NCI Mammary mRNA M430 (July04) RMA" + ], + [ + "36", + "MA_M_0704_M", + "NCI Mammary mRNA M430 (July04) MAS5" ] ] }, @@ -1682,15 +1682,15 @@ ] ], "Liver mRNA": [ - [ - "38", - "LVF2_M_0704_M", - "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) MAS5" - ], [ "39", "LVF2_M_0704_R", "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA" + ], + [ + "38", + "LVF2_M_0704_M", + "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) MAS5" ] ], "Phenotypes": [ @@ -1712,6 +1712,11 @@ }, "B6D2F2": { "Brain mRNA": [ + [ + "77", + "BRF2_M_0805_R", + "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA" + ], [ "76", "BRF2_M_0805_M", @@ -1722,25 +1727,20 @@ "BRF2_M_0805_P", "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) PDNN" ], - [ - "77", - "BRF2_M_0805_R", - "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA" - ], [ "33", "BRF2_M_0304_P", "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) PDNN" ], - [ - "31", - "BRF2_M_0304_M", - "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) MAS5" - ], [ "32", "BRF2_M_0304_R", "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA" + ], + [ + "31", + "BRF2_M_0304_M", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) MAS5" ] ], "Genotypes": [ @@ -1818,6 +1818,11 @@ ] ], "Striatum mRNA": [ + [ + "84", + "SA_M2_0905_R", + "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA" + ], [ "83", "SA_M2_0905_M", @@ -1827,26 +1832,21 @@ "85", "SA_M2_0905_P", "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) PDNN" - ], - [ - "84", - "SA_M2_0905_R", - "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA" ] ] }, "BHF2": { "Adipose mRNA": [ - [ - "197", - "UCLA_BHF2_ADIPOSE_FEMALE", - "UCLA BHF2 Adipose Female mlratio" - ], [ "196", "UCLA_BHF2_ADIPOSE_MALE", "UCLA BHF2 Adipose Male mlratio" ], + [ + "197", + "UCLA_BHF2_ADIPOSE_FEMALE", + "UCLA BHF2 Adipose Female mlratio" + ], [ "165", "UCLA_BHF2_ADIPOSE_0605", @@ -1854,16 +1854,16 @@ ] ], "Brain mRNA": [ - [ - "199", - "UCLA_BHF2_BRAIN_FEMALE", - "UCLA BHF2 Brain Female mlratio" - ], [ "198", "UCLA_BHF2_BRAIN_MALE", "UCLA BHF2 Brain Male mlratio" ], + [ + "199", + "UCLA_BHF2_BRAIN_FEMALE", + "UCLA BHF2 Brain Female mlratio" + ], [ "166", "UCLA_BHF2_BRAIN_0605", @@ -1878,16 +1878,16 @@ ] ], "Liver mRNA": [ - [ - "201", - "UCLA_BHF2_LIVER_FEMALE", - "UCLA BHF2 Liver Female mlratio" - ], [ "200", "UCLA_BHF2_LIVER_MALE", "UCLA BHF2 Liver Male mlratio" ], + [ + "201", + "UCLA_BHF2_LIVER_FEMALE", + "UCLA BHF2 Liver Female mlratio" + ], [ "167", "UCLA_BHF2_LIVER_0605", @@ -2106,21 +2106,26 @@ "IBR_M_0606_R", "INIA Brain mRNA M430 (Jun06) RMA" ], - [ - "101", - "IBR_M_0106_P", - "INIA Brain mRNA M430 (Jan06) PDNN" - ], [ "102", "IBR_M_0106_R", "INIA Brain mRNA M430 (Jan06) RMA" ], + [ + "101", + "IBR_M_0106_P", + "INIA Brain mRNA M430 (Jan06) PDNN" + ], [ "95", "BR_U_1105_P", "UTHSC Brain mRNA U74Av2 (Nov05) PDNN" ], + [ + "80", + "BR_U_0805_M", + "UTHSC Brain mRNA U74Av2 (Aug05) MAS5" + ], [ "82", "BR_U_0805_R", @@ -2131,11 +2136,6 @@ "BR_U_0805_P", "UTHSC Brain mRNA U74Av2 (Aug05) PDNN" ], - [ - "80", - "BR_U_0805_M", - "UTHSC Brain mRNA U74Av2 (Aug05) MAS5" - ], [ "42", "CB_M_0204_P", @@ -2232,6 +2232,11 @@ "Eye_M2_0908_R_ND", "Eye M430v2 WT Gpnmb (Sep08) RMA" ], + [ + "279", + "Eye_M2_0908_R_WT", + "Eye M430v2 WT Tyrp1 (Sep08) RMA" + ], [ "278", "Eye_M2_0908_R_MT", @@ -2242,11 +2247,6 @@ "Eye_M2_0908_WTWT", "Eye M430v2 WT WT (Sep08) RMA" ], - [ - "279", - "Eye_M2_0908_R_WT", - "Eye M430v2 WT Tyrp1 (Sep08) RMA" - ], [ "400", "DBA2J-ONH-1212", @@ -2530,16 +2530,16 @@ ] ], "Kidney mRNA": [ - [ - "240", - "MA_M2M_0706_R", - "Mouse kidney M430v2 Male (Aug06) RMA" - ], [ "239", "MA_M2F_0706_R", "Mouse kidney M430v2 Female (Aug06) RMA" ], + [ + "240", + "MA_M2M_0706_R", + "Mouse kidney M430v2 Male (Aug06) RMA" + ], [ "118", "MA_M2_0806_R", @@ -2550,18 +2550,23 @@ "MA_M2_0806_P", "Mouse Kidney M430v2 Sex Balanced (Aug06) PDNN" ], - [ - "115", - "MA_M2_0706_R", - "Mouse Kidney M430v2 (Jul06) RMA" - ], [ "116", "MA_M2_0706_P", "Mouse Kidney M430v2 (Jul06) PDNN" + ], + [ + "115", + "MA_M2_0706_R", + "Mouse Kidney M430v2 (Jul06) RMA" ] ], "Liver Metabolome": [ + [ + "836", + "UTHSC-ETHZ-EPFL_LivPMetExtAHFD0817", + "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction A, HFD Cohorts (Mar 2017) log2" + ], [ "838", "UTHSC-ETHZ-EPFL_LivPMetExtBHFD0817", @@ -2577,11 +2582,6 @@ "UTHSC-ETHZ-EPFL_LivPMetExtBCD0817", "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction B, Chow Diet Cohorts (Mar 2017) log2" ], - [ - "836", - "UTHSC-ETHZ-EPFL_LivPMetExtAHFD0817", - "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction A, HFD Cohorts (Mar 2017) log2" - ], [ "473", "EPFL-LISP_LivPMetCDHFD1213", @@ -2691,11 +2691,6 @@ "EPFLMouseLiverHFDRMA0413", "EPFL/LISP BXD HFD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA" ], - [ - "849", - "EPFLMouseLiverCDEx0413", - "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level" - ], [ "848", "EPFLMouseLiverHFCEx0413", @@ -2706,6 +2701,11 @@ "EPFLMouseLiverCDRMA0413", "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA" ], + [ + "849", + "EPFLMouseLiverCDEx0413", + "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level" + ], [ "433", "EPFLMouseLiverBothExRMA0413", @@ -2834,16 +2834,16 @@ ] ], "Neocortex mRNA": [ - [ - "374", - "DevNeocortex_ILM6.2P3RInv_1111", - "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv" - ], [ "375", "DevNeocortex_ILM6.2P14RInv_1111", "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv" ], + [ + "374", + "DevNeocortex_ILM6.2P3RInv_1111", + "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv" + ], [ "284", "HQFNeoc_1210v2_RankInv", @@ -2859,15 +2859,15 @@ "HQFNeoc_0208_RankInv", "HQF BXD Neocortex ILM6v1.1 (Feb08) RankInv" ], - [ - "275", - "DevNeocortex_ILM6.2P14RInv_1110", - "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv" - ], [ "274", "DevNeocortex_ILM6.2P3RInv_1110", "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv" + ], + [ + "275", + "DevNeocortex_ILM6.2P14RInv_1110", + "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv" ] ], "Nucleus Accumbens mRNA": [ @@ -3094,6 +3094,11 @@ ] ], "Ventral Tegmental Area mRNA": [ + [ + "229", + "VCUEtOH_0609_R", + "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA" + ], [ "228", "VCUSal_0609_R", @@ -3103,11 +3108,6 @@ "230", "VCUEtvsSal_0609_R", "VCU BXD VTA Et vs Sal M430 2.0 (Jun09) RMA" - ], - [ - "229", - "VCUEtOH_0609_R", - "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA" ] ] }, @@ -3440,15 +3440,15 @@ ] ], "Hippocampus mRNA": [ - [ - "99", - "HC_M2CB_1205_P", - "Hippocampus Consortium M430v2 CXB (Dec05) PDNN" - ], [ "100", "HC_M2CB_1205_R", "Hippocampus Consortium M430v2 CXB (Dec05) RMA" + ], + [ + "99", + "HC_M2CB_1205_P", + "Hippocampus Consortium M430v2 CXB (Dec05) PDNN" ] ], "Liver mRNA": [ @@ -3474,6 +3474,13 @@ ] }, "D2GM": { + "Phenotypes": [ + [ + "None", + "D2GMPublish", + "D2GM Phenotypes" + ] + ], "Retina mRNA": [ [ "847", @@ -3531,6 +3538,16 @@ ] ], "Hippocampus mRNA": [ + [ + "213", + "Illum_LXS_Hipp_NOS_1008", + "Hippocampus Illumina NOS (Oct08) RankInv beta" + ], + [ + "219", + "Illum_LXS_Hipp_NON_1008", + "Hippocampus Illumina NON (Oct08) RankInv beta" + ], [ "212", "Illum_LXS_Hipp_RSE_1008", @@ -3546,16 +3563,6 @@ "Illum_LXS_Hipp_RSS_1008", "Hippocampus Illumina RSS (Oct08) RankInv beta" ], - [ - "213", - "Illum_LXS_Hipp_NOS_1008", - "Hippocampus Illumina NOS (Oct08) RankInv beta" - ], - [ - "219", - "Illum_LXS_Hipp_NON_1008", - "Hippocampus Illumina NON (Oct08) RankInv beta" - ], [ "143", "Illum_LXS_Hipp_loess0807", @@ -3646,15 +3653,15 @@ ] ], "Hippocampus mRNA": [ - [ - "272", - "HC_M2_0606_MDP", - "Hippocampus Consortium M430v2 (Jun06) RMA MDP" - ], [ "273", "UMUTAffyExon_0209_RMA_MDP", "UMUTAffy Hippocampus Exon (Feb09) RMA MDP" + ], + [ + "272", + "HC_M2_0606_MDP", + "Hippocampus Consortium M430v2 (Jun06) RMA MDP" ] ], "Liver mRNA": [ @@ -3716,6 +3723,13 @@ ] }, "Retina-RGC-Rheaume": { + "Phenotypes": [ + [ + "None", + "Retina-RGC-RheaumePublish", + "Retina-RGC-Rheaume Phenotypes" + ] + ], "Retina Single-cell RNA-Seq": [ [ "865", @@ -5470,6 +5484,10 @@ ] ], "D2GM": [ + [ + "Phenotypes", + "Phenotypes" + ], [ "Retina mRNA", "Retina mRNA" @@ -5569,6 +5587,10 @@ ] ], "Retina-RGC-Rheaume": [ + [ + "Phenotypes", + "Phenotypes" + ], [ "Retina Single-cell RNA-Seq", "Retina Single-cell RNA-Seq" diff --git a/wqflask/wqflask/static/new/javascript/search_results.js b/wqflask/wqflask/static/new/javascript/search_results.js index 2b878087..abcdf7e6 100644 --- a/wqflask/wqflask/static/new/javascript/search_results.js +++ b/wqflask/wqflask/static/new/javascript/search_results.js @@ -93,12 +93,24 @@ $(function() { traits = $("#trait_table input:checked").map(function() { return $(this).val(); }).get(); - console.log("checked length is:", traits.length); - console.log("checked is:", traits); + + var traits_hash = md5(traits.toString()); + + $.ajax({ + type: "POST", + url: "/collections/store_trait_list", + data: { + hash: traits_hash, + traits: traits.toString() + } + }); + return $.colorbox({ - href: "/collections/add?traits=" + traits + href: "/collections/add?hash=" + traits_hash }); + }; + removed_traits = function() { console.log('in removed_traits with checked_traits:', checked_traits); return checked_traits.closest("tr").fadeOut(); diff --git a/wqflask/wqflask/static/new/js_external/md5.min.js b/wqflask/wqflask/static/new/js_external/md5.min.js new file mode 100644 index 00000000..7d8a3f53 --- /dev/null +++ b/wqflask/wqflask/static/new/js_external/md5.min.js @@ -0,0 +1,2 @@ +!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this); +//# sourceMappingURL=md5.min.js.map \ No newline at end of file diff --git a/wqflask/wqflask/templates/bnw_page.html b/wqflask/wqflask/templates/bnw_page.html new file mode 100644 index 00000000..e506d8a8 --- /dev/null +++ b/wqflask/wqflask/templates/bnw_page.html @@ -0,0 +1,7 @@ +Opening BNW +
+ +
+ \ No newline at end of file diff --git a/wqflask/wqflask/templates/collections/add.html b/wqflask/wqflask/templates/collections/add.html index 889687ea..37cabdbd 100644 --- a/wqflask/wqflask/templates/collections/add.html +++ b/wqflask/wqflask/templates/collections/add.html @@ -6,7 +6,11 @@