diff options
Diffstat (limited to 'wqflask')
-rwxr-xr-x | wqflask/base/trait.py | 28 | ||||
-rwxr-xr-x | wqflask/maintenance/gen_select_dataset.py | 52 | ||||
-rwxr-xr-x | wqflask/wqflask/interval_mapping/interval_mapping.py | 29 | ||||
-rwxr-xr-x | wqflask/wqflask/marker_regression/marker_regression.py | 128 | ||||
-rwxr-xr-x | wqflask/wqflask/static/new/javascript/dataset_menu_structure.json | 696 | ||||
-rwxr-xr-x | wqflask/wqflask/static/new/javascript/histogram.coffee | 27 | ||||
-rwxr-xr-x | wqflask/wqflask/static/new/javascript/histogram.js | 245 | ||||
-rwxr-xr-x | wqflask/wqflask/static/new/javascript/show_trait.coffee | 1 | ||||
-rwxr-xr-x | wqflask/wqflask/static/new/javascript/show_trait.js | 1 | ||||
-rwxr-xr-x | wqflask/wqflask/templates/index_page.html | 12 | ||||
-rw-r--r-- | wqflask/wqflask/templates/pair_scan_results.html | 2 | ||||
-rwxr-xr-x | wqflask/wqflask/templates/show_trait.html | 10 | ||||
-rwxr-xr-x | wqflask/wqflask/templates/show_trait_details.html | 6 | ||||
-rwxr-xr-x | wqflask/wqflask/templates/show_trait_mapping_tools.html | 118 |
14 files changed, 473 insertions, 882 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py index f3648b80..8930c917 100755 --- a/wqflask/base/trait.py +++ b/wqflask/base/trait.py @@ -53,7 +53,8 @@ class GeneralTrait(object): self.pvalue = None self.mean = None self.num_overlap = None - + self.strand_probe = None + self.symbol = None if kw.get('fullname'): name2 = value.split("::") @@ -533,12 +534,27 @@ class GeneralTrait(object): return setDescription @property + def name_header_fmt(self): + '''Return a human-readable name for use in page header''' + if self.dataset.type == 'ProbeSet': + return self.symbol + elif self.dataset.type == 'Geno': + return self.name + elif self.dataset.type == 'Publish': + return self.post_publication_abbreviation + else: + return "unnamed" + + @property def description_fmt(self): '''Return a text formated description''' - if self.description: - formatted = self.description - if self.probe_target_description: - formatted += "; " + self.probe_target_description + if self.dataset.type == 'ProbeSet': + if self.description: + formatted = self.description + if self.probe_target_description: + formatted += "; " + self.probe_target_description + elif self.dataset.type == 'Publish': + formatted = self.post_publication_description else: formatted = "Not available" return formatted.capitalize() @@ -652,4 +668,4 @@ def get_sample_data(): # jsonable_sample_data[sample] = trait_ob.data[sample].value # #return jsonable_sample_data -
\ No newline at end of file + diff --git a/wqflask/maintenance/gen_select_dataset.py b/wqflask/maintenance/gen_select_dataset.py index 694efeca..a2ad8c91 100755 --- a/wqflask/maintenance/gen_select_dataset.py +++ b/wqflask/maintenance/gen_select_dataset.py @@ -35,7 +35,9 @@ from __future__ import print_function, division #config = config.Config(cdict).from_envvar('WQFLASK_SETTINGS') #print("cdict is:", cdict) -import our_settings +import sys +sys.path.append("/home/zas1024/") +import zach_settings import MySQLdb @@ -47,7 +49,7 @@ import urlparse from pprint import pformat as pf -#Engine = sa.create_engine(our_settings.SQLALCHEMY_DATABASE_URI) +#Engine = sa.create_engine(zach_settings.SQLALCHEMY_DATABASE_URI) # build MySql database connection @@ -60,7 +62,7 @@ from pprint import pformat as pf def parse_db_uri(db_uri): """Converts a database URI to the db name, host name, user name, and password""" - parsed_uri = urlparse.urlparse(our_settings.DB_URI) + parsed_uri = urlparse.urlparse(zach_settings.DB_URI) db_conn_info = dict( db = parsed_uri.path[1:], @@ -104,12 +106,48 @@ def get_types(groups): types[species] = {} for group_name, _group_full_name in group_dict: # make group an alias to shorten the code - types[species][group_name] = [("Phenotypes", "Phenotypes"), ("Genotypes", "Genotypes")] - types[species][group_name] += build_types(species, group_name) + #types[species][group_name] = [("Phenotypes", "Phenotypes"), ("Genotypes", "Genotypes")] + if phenotypes_exist(group_name): + types[species][group_name] = [("Phenotypes", "Phenotypes")] + if genotypes_exist(group_name): + if group_name in types[species]: + types[species][group_name] += [("Genotypes", "Genotypes")] + else: + types[species][group_name] = [("Genotypes", "Genotypes")] + if group_name in types[species]: + types[species][group_name] += build_types(species, group_name) + else: + types[species][group_name] = build_types(species, group_name) return types +def phenotypes_exist(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) + + if results != None: + return True + else: + return False + +def genotypes_exist(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) + + if results != None: + return True + else: + return False + def build_types(species, group): """Fetches tissues @@ -196,7 +234,7 @@ def build_datasets(species, group, type_name): def main(): """Generates and outputs (as json file) the data for the main dropdown menus on the home page""" - parse_db_uri(our_settings.DB_URI) + parse_db_uri(zach_settings.DB_URI) species = get_species() groups = get_groups(species) @@ -236,6 +274,6 @@ def _test_it(): #print("build_datasets:", pf(datasets)) if __name__ == '__main__': - Conn = MySQLdb.Connect(**parse_db_uri(our_settings.DB_URI)) + Conn = MySQLdb.Connect(**parse_db_uri(zach_settings.DB_URI)) Cursor = Conn.cursor() main() diff --git a/wqflask/wqflask/interval_mapping/interval_mapping.py b/wqflask/wqflask/interval_mapping/interval_mapping.py index 1cd3fc80..4b4b7f73 100755 --- a/wqflask/wqflask/interval_mapping/interval_mapping.py +++ b/wqflask/wqflask/interval_mapping/interval_mapping.py @@ -24,9 +24,6 @@ from base import data_set from base import species from base import webqtlConfig from utility import webqtlUtil -# from wqflask.my_pylmm.data import prep_data -# from wqflask.my_pylmm.pyLMM import lmm -# from wqflask.my_pylmm.pyLMM import input from utility import helper_functions from utility import Plot, Bunch from utility import temp_data @@ -223,32 +220,6 @@ class IntervalMapping(object): "cM":reaper_locus.cM, "name":reaper_locus.name, "additive":qtl.additive} self.qtl_results.append(qtl) - def gen_pylmm_results(self, tempdata): - print("USING PYLMM") - self.dataset.group.get_markers() - - pheno_vector = np.array([val == "x" and np.nan or float(val) for val in self.vals]) - if self.dataset.group.species == "human": - p_values, t_stats = self.gen_human_results(pheno_vector, tempdata) - else: - genotype_data = [marker['genotypes'] for marker in self.dataset.group.markers.markers] - - no_val_samples = self.identify_empty_samples() - trimmed_genotype_data = self.trim_genotypes(genotype_data, no_val_samples) - - genotype_matrix = np.array(trimmed_genotype_data).T - - t_stats, p_values = lmm.run( - pheno_vector, - genotype_matrix, - restricted_max_likelihood=True, - refit=False, - temp_data=tempdata - ) - - print("p_values:", p_values) - self.dataset.group.markers.add_pvalues(p_values) - self.qtl_results = self.dataset.group.markers.markers def gen_qtl_results_2(self, tempdata): """Generates qtl results for plotting interval map""" diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py index 76d05bd8..999a32b8 100755 --- a/wqflask/wqflask/marker_regression/marker_regression.py +++ b/wqflask/wqflask/marker_regression/marker_regression.py @@ -120,57 +120,83 @@ class MarkerRegression(object): else: print("RUNNING NOTHING") - self.lod_cutoff = 2 - self.filtered_markers = [] - highest_chr = 1 #This is needed in order to convert the highest chr to X/Y - for marker in qtl_results: - if marker['chr'] > 0 or marker['chr'] == "X" or marker['chr'] == "X/Y": - if marker['chr'] > highest_chr or marker['chr'] == "X" or marker['chr'] == "X/Y": - highest_chr = marker['chr'] - if 'lod_score' in marker: - self.filtered_markers.append(marker) - - self.json_data['chr'] = [] - self.json_data['pos'] = [] - self.json_data['lod.hk'] = [] - self.json_data['markernames'] = [] - - self.json_data['suggestive'] = self.suggestive - self.json_data['significant'] = self.significant - - #Need to convert the QTL objects that qtl reaper returns into a json serializable dictionary - self.qtl_results = [] - for index,qtl in enumerate(self.filtered_markers): - if index<40: - print("lod score is:", qtl['lod_score']) - if qtl['chr'] == highest_chr and highest_chr != "X" and highest_chr != "X/Y": - print("changing to X") - self.json_data['chr'].append("X") - else: - self.json_data['chr'].append(str(qtl['chr'])) - self.json_data['pos'].append(qtl['Mb']) - self.json_data['lod.hk'].append(str(qtl['lod_score'])) - self.json_data['markernames'].append(qtl['name']) - - #Get chromosome lengths for drawing the interval map plot - chromosome_mb_lengths = {} - self.json_data['chrnames'] = [] - for key in self.species.chromosomes.chromosomes.keys(): - self.json_data['chrnames'].append([self.species.chromosomes.chromosomes[key].name, self.species.chromosomes.chromosomes[key].mb_length]) - chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length - - # print("json_data:", self.json_data) - - - self.js_data = dict( - json_data = self.json_data, - this_trait = self.this_trait.name, - data_set = self.dataset.name, - maf = self.maf, - manhattan_plot = self.manhattan_plot, - chromosomes = chromosome_mb_lengths, - qtl_results = self.filtered_markers, - ) + if self.pair_scan == True: + self.filtered_markers = [] + highest_chr = 1 #This is needed in order to convert the highest chr to X/Y + for marker in qtl_results: + if marker['chr1'] > 0 or marker['chr1'] == "X" or marker['chr1'] == "X/Y": + if marker['chr1'] > highest_chr or marker['chr1'] == "X" or marker['chr1'] == "X/Y": + highest_chr = marker['chr1'] + if 'lod_score' in marker: + self.filtered_markers.append(marker) + + for qtl in enumerate(self.filtered_markers): + self.json_data['chr1'].append(str(qtl['chr1'])) + self.json_data['chr2'].append(str(qtl['chr2'])) + self.json_data['Mb'].append(qtl['Mb']) + self.json_data['markernames'].append(qtl['name']) + + self.js_data = dict( + json_data = self.json_data, + this_trait = self.this_trait.name, + data_set = self.dataset.name, + maf = self.maf, + manhattan_plot = self.manhattan_plot, + qtl_results = self.filtered_markers, + ) + + else: + self.lod_cutoff = 2 + self.filtered_markers = [] + highest_chr = 1 #This is needed in order to convert the highest chr to X/Y + for marker in qtl_results: + if marker['chr'] > 0 or marker['chr'] == "X" or marker['chr'] == "X/Y": + if marker['chr'] > highest_chr or marker['chr'] == "X" or marker['chr'] == "X/Y": + highest_chr = marker['chr'] + if 'lod_score' in marker: + self.filtered_markers.append(marker) + + self.json_data['chr'] = [] + self.json_data['pos'] = [] + self.json_data['lod.hk'] = [] + self.json_data['markernames'] = [] + + self.json_data['suggestive'] = self.suggestive + self.json_data['significant'] = self.significant + + #Need to convert the QTL objects that qtl reaper returns into a json serializable dictionary + self.qtl_results = [] + for index, qtl in enumerate(self.filtered_markers): + if index<40: + print("lod score is:", qtl['lod_score']) + if qtl['chr'] == highest_chr and highest_chr != "X" and highest_chr != "X/Y": + print("changing to X") + self.json_data['chr'].append("X") + else: + self.json_data['chr'].append(str(qtl['chr'])) + self.json_data['pos'].append(qtl['Mb']) + self.json_data['lod.hk'].append(str(qtl['lod_score'])) + self.json_data['markernames'].append(qtl['name']) + + #Get chromosome lengths for drawing the interval map plot + chromosome_mb_lengths = {} + self.json_data['chrnames'] = [] + for key in self.species.chromosomes.chromosomes.keys(): + self.json_data['chrnames'].append([self.species.chromosomes.chromosomes[key].name, self.species.chromosomes.chromosomes[key].mb_length]) + chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length + + # print("json_data:", self.json_data) + + + self.js_data = dict( + json_data = self.json_data, + this_trait = self.this_trait.name, + data_set = self.dataset.name, + maf = self.maf, + manhattan_plot = self.manhattan_plot, + chromosomes = chromosome_mb_lengths, + qtl_results = self.filtered_markers, + ) def run_gemma(self): diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json index fabf3998..e790c9c0 100755 --- a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json +++ b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json @@ -56,12 +56,6 @@ }, "barley": { "QSM": { - "Genotypes": [ - [ - "QSMGeno", - "QSM Genotypes" - ] - ], "Leaf mRNA": [ [ "B1LI0809R", @@ -79,12 +73,6 @@ "B1MI0809R", "Barley1 Leaf MOCK TTKS (Aug09) RMA" ] - ], - "Phenotypes": [ - [ - "QSMPublish", - "QSM Published Phenotypes" - ] ] }, "SXM": { @@ -114,12 +102,12 @@ "Barley1 Leaf MAS 5.0 SCRI (Dec06)" ], [ - "B30_K_1206_Rn", - "Barley1 Leaf gcRMAn SCRI (Dec06)" - ], - [ "B30_K_1206_R", "Barley1 Leaf gcRMA SCRI (Dec06)" + ], + [ + "B30_K_1206_Rn", + "Barley1 Leaf gcRMAn SCRI (Dec06)" ] ], "Phenotypes": [ @@ -132,18 +120,6 @@ }, "drosophila": { "DGRP": { - "Genotypes": [ - [ - "DGRPGeno", - "DGRP Genotypes" - ] - ], - "Phenotypes": [ - [ - "DGRPPublish", - "DGRP Published Phenotypes" - ] - ], "Whole Body mRNA": [ [ "NCSU_DrosWB_LC_RMA_0111", @@ -152,18 +128,6 @@ ] }, "Oregon-R_x_2b3": { - "Genotypes": [ - [ - "Oregon-R_x_2b3Geno", - "Oregon-R_x_2b3 Genotypes" - ] - ], - "Phenotypes": [ - [ - "Oregon-R_x_2b3Publish", - "Oregon-R_x_2b3 Published Phenotypes" - ] - ], "Whole Body mRNA": [ [ "UAB_DrosWB_LC_RMA_1009", @@ -195,18 +159,6 @@ "GSE5281_RMA0709", "GSE5281 Human Brain Best 102 Liang (Jul09) RMA" ] - ], - "Genotypes": [ - [ - "AD-cases-controlsGeno", - "AD-cases-controls Genotypes" - ] - ], - "Phenotypes": [ - [ - "AD-cases-controlsPublish", - "AD-cases-controls Published Phenotypes" - ] ] }, "AD-cases-controls-Myers": { @@ -229,12 +181,6 @@ "AD-cases-controls-MyersGeno", "AD-cases-controls-Myers Genotypes" ] - ], - "Phenotypes": [ - [ - "AD-cases-controls-MyersPublish", - "AD-cases-controls-Myers Published Phenotypes" - ] ] }, "Aging-Brain-UCI": { @@ -244,24 +190,12 @@ "GSE11882 UCI Human Entorhinal Cortex Affy U133 Plus2 (Sep13) RMA" ] ], - "Genotypes": [ - [ - "Aging-Brain-UCIGeno", - "Aging-Brain-UCI Genotypes" - ] - ], "Hippocampus mRNA": [ [ "UCI_HC_0913", "GSE11882 UCI Human Hippocampus Affy U133 Plus2 (Sep13) RMA" ] ], - "Phenotypes": [ - [ - "Aging-Brain-UCIPublish", - "Aging-Brain-UCI Published Phenotypes" - ] - ], "Postcentral Gyrus mRNA": [ [ "UCI_PCG_0913", @@ -282,18 +216,6 @@ "GSE15745 NIH Human Brain Cerebellum ILM humanRef-8 v2.0 (May10) RankInv" ] ], - "Genotypes": [ - [ - "Brain-Normal-NIH-GibbsGeno", - "Brain-Normal-NIH-Gibbs Genotypes" - ] - ], - "Phenotypes": [ - [ - "Brain-Normal-NIH-GibbsPublish", - "Brain-Normal-NIH-Gibbs Published Phenotypes" - ] - ], "Pons mRNA": [ [ "GSE15745-GPL6104_Po0510", @@ -314,12 +236,6 @@ ] }, "CANDLE": { - "Genotypes": [ - [ - "CANDLEGeno", - "CANDLE Genotypes" - ] - ], "Methylation": [ [ "CANDLE_Meth27_0313", @@ -344,12 +260,6 @@ ] }, "CEPH-2004": { - "Genotypes": [ - [ - "CEPH-2004Geno", - "CEPH-2004 Genotypes" - ] - ], "Lymphoblast B-cell mRNA": [ [ "UT_CEPH_RankInv0909", @@ -359,12 +269,6 @@ "Human_1008", "Monks CEPH B-cells Agilent (Dec04) Log10Ratio" ] - ], - "Phenotypes": [ - [ - "CEPH-2004Publish", - "CEPH-2004 Published Phenotypes" - ] ] }, "GTEx": { @@ -558,12 +462,6 @@ "GTEx Human Frontal Cortex (Apr14) RPKM" ] ], - "Genotypes": [ - [ - "GTExGeno", - "GTEx Genotypes" - ] - ], "Heart - Atrial Appendage mRNA": [ [ "GTEx_log2_HeartAt_0314", @@ -684,12 +582,6 @@ "GTEx Human Pancreas (Apr14) RPKM" ] ], - "Phenotypes": [ - [ - "GTExPublish", - "GTEx Published Phenotypes" - ] - ], "Pituitary Gland mRNA": [ [ "GTEx_log2_Pitui_0314", @@ -870,18 +762,6 @@ "HBTRC-MLC Human Cerebellum Agilent HD (Jun11) mlratio" ] ], - "Genotypes": [ - [ - "HBGeno", - "HB Genotypes" - ] - ], - "Phenotypes": [ - [ - "HBPublish", - "HB Published Phenotypes" - ] - ], "Prefrontal Cortex mRNA": [ [ "HBTRC-MLPFC_0611", @@ -920,12 +800,6 @@ ] }, "HCP": { - "Genotypes": [ - [ - "HCPGeno", - "HCP Genotypes" - ] - ], "Phenotypes": [ [ "HCPPublish", @@ -934,12 +808,6 @@ ] }, "HLC": { - "Genotypes": [ - [ - "HLCGeno", - "HLC Genotypes" - ] - ], "Liver mRNA": [ [ "HLC_0311", @@ -962,12 +830,6 @@ ] }, "HLT": { - "Genotypes": [ - [ - "HLTGeno", - "HLT Genotypes" - ] - ], "Lung mRNA": [ [ "GSE23546HLT0613", @@ -985,12 +847,6 @@ "GRNG-GSE23545HLT0613", "GRNG/GSE23545 Whole-Genome GXD Non-Tumorous Human Lung Tissues Affy HuRSTA array (Jun11) RMA" ] - ], - "Phenotypes": [ - [ - "HLTPublish", - "HLT Published Phenotypes" - ] ] }, "HSB": { @@ -1012,12 +868,6 @@ "Human Dorsolateral Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile" ] ], - "Genotypes": [ - [ - "HSBGeno", - "HSB Genotypes" - ] - ], "Hippocampus mRNA": [ [ "KIN_YSM_HIP_0711", @@ -1048,12 +898,6 @@ "Human Orbital Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile" ] ], - "Phenotypes": [ - [ - "HSBPublish", - "HSB Published Phenotypes" - ] - ], "Posterior Inferior Parietal Cortex mRNA": [ [ "KIN_YSM_IPC_0711", @@ -1118,12 +962,6 @@ "INIA Macaca fasicularis Brain (Jan10) RMA **" ] ], - "Genotypes": [ - [ - "Macaca-fasicularisGeno", - "Macaca-fasicularis Genotypes" - ] - ], "Hippocampus mRNA": [ [ "INIA_MacFas_Hc_RMA_0110", @@ -1136,12 +974,6 @@ "INIA Macaca fasicularis Nucleus Accumbens (Jan10) RMA **" ] ], - "Phenotypes": [ - [ - "Macaca-fasicularisPublish", - "Macaca-fasicularis Published Phenotypes" - ] - ], "Prefrontal Cortex mRNA": [ [ "INIA_MacFas_Pf_RMA_0110", @@ -1164,18 +996,12 @@ "NCI Mammary LMT miRNA v2 (Apr09) RMA" ], [ - "MA_M_0704_R", - "NCI Mammary mRNA M430 (July04) RMA" - ], - [ "MA_M_0704_M", "NCI Mammary mRNA M430 (July04) MAS5" - ] - ], - "Phenotypes": [ + ], [ - "AKXDPublish", - "AKXD Published Phenotypes" + "MA_M_0704_R", + "NCI Mammary mRNA M430 (July04) RMA" ] ] }, @@ -1226,12 +1052,12 @@ ], "Liver mRNA": [ [ - "LVF2_M_0704_R", - "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA" - ], - [ "LVF2_M_0704_M", "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) MAS5" + ], + [ + "LVF2_M_0704_R", + "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA" ] ], "Phenotypes": [ @@ -1244,10 +1070,6 @@ "B6D2F2": { "Brain mRNA": [ [ - "BRF2_M_0805_M", - "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) MAS5" - ], - [ "BRF2_M_0805_P", "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) PDNN" ], @@ -1256,16 +1078,20 @@ "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA" ], [ - "BRF2_M_0304_P", - "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) PDNN" + "BRF2_M_0805_M", + "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) MAS5" ], [ - "BRF2_M_0304_R", - "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA" + "BRF2_M_0304_P", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) PDNN" ], [ "BRF2_M_0304_M", "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) MAS5" + ], + [ + "BRF2_M_0304_R", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA" ] ], "Genotypes": [ @@ -1273,12 +1099,6 @@ "B6D2F2Geno", "B6D2F2 Genotypes" ] - ], - "Phenotypes": [ - [ - "B6D2F2Publish", - "B6D2F2 Published Phenotypes" - ] ] }, "B6D2F2-PSU": { @@ -1305,32 +1125,14 @@ "PSU-B6D2F2_M2000812", "PSU B6D2F2 Muscle Affy Mouse Genome 430 2.0 (Aug12) RMA Males Aged 200 **" ] - ], - "Phenotypes": [ - [ - "B6D2F2-PSUPublish", - "B6D2F2-PSU Published Phenotypes" - ] ] }, "B6D2RI": { - "Genotypes": [ - [ - "B6D2RIGeno", - "B6D2RI Genotypes" - ] - ], "Hippocampus mRNA": [ [ "UTHSC_B6D2RI_H_0912", "UTHSC B6D2RI Aged Hippocampus Affy Mouse Gene 1.0 ST (Sep12) RMA **" ] - ], - "Phenotypes": [ - [ - "B6D2RIPublish", - "B6D2RI Published Phenotypes" - ] ] }, "BDF2-1999": { @@ -1345,12 +1147,6 @@ "UCLA_BDF2_LIVER_1999", "UCLA BDF2 Liver (1999) mlratio" ] - ], - "Phenotypes": [ - [ - "BDF2-1999Publish", - "BDF2-1999 Published Phenotypes" - ] ] }, "BDF2-2005": { @@ -1360,52 +1156,46 @@ "BDF2-2005 Genotypes" ] ], - "Phenotypes": [ - [ - "BDF2-2005Publish", - "BDF2-2005 Published Phenotypes" - ] - ], "Striatum mRNA": [ [ - "SA_M2_0905_R", - "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA" - ], - [ "SA_M2_0905_M", "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) MAS5" ], [ "SA_M2_0905_P", "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) PDNN" + ], + [ + "SA_M2_0905_R", + "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA" ] ] }, "BHF2": { "Adipose mRNA": [ [ - "UCLA_BHF2_ADIPOSE_MALE", - "UCLA BHF2 Adipose Male mlratio" - ], - [ "UCLA_BHF2_ADIPOSE_FEMALE", "UCLA BHF2 Adipose Female mlratio" ], [ + "UCLA_BHF2_ADIPOSE_MALE", + "UCLA BHF2 Adipose Male mlratio" + ], + [ "UCLA_BHF2_ADIPOSE_0605", "UCLA BHF2 Adipose (June05) mlratio" ] ], "Brain mRNA": [ [ - "UCLA_BHF2_BRAIN_MALE", - "UCLA BHF2 Brain Male mlratio" - ], - [ "UCLA_BHF2_BRAIN_FEMALE", "UCLA BHF2 Brain Female mlratio" ], [ + "UCLA_BHF2_BRAIN_MALE", + "UCLA BHF2 Brain Male mlratio" + ], + [ "UCLA_BHF2_BRAIN_0605", "UCLA BHF2 Brain (June05) mlratio" ] @@ -1418,37 +1208,31 @@ ], "Liver mRNA": [ [ - "UCLA_BHF2_LIVER_MALE", - "UCLA BHF2 Liver Male mlratio" - ], - [ "UCLA_BHF2_LIVER_FEMALE", "UCLA BHF2 Liver Female mlratio" ], [ + "UCLA_BHF2_LIVER_MALE", + "UCLA BHF2 Liver Male mlratio" + ], + [ "UCLA_BHF2_LIVER_0605", "UCLA BHF2 Liver (June05) mlratio" ] ], "Muscle mRNA": [ [ - "UCLA_BHF2_MUSCLE_MALE", - "UCLA BHF2 Muscle Male mlratio **" - ], - [ "UCLA_BHF2_MUSCLE_FEMALE", "UCLA BHF2 Muscle Female mlratio **" ], [ + "UCLA_BHF2_MUSCLE_MALE", + "UCLA BHF2 Muscle Male mlratio **" + ], + [ "UCLA_BHF2_MUSCLE_0605", "UCLA BHF2 Muscle (June05) mlratio **" ] - ], - "Phenotypes": [ - [ - "BHF2Publish", - "BHF2 Published Phenotypes" - ] ] }, "BHHBF2": { @@ -1513,12 +1297,6 @@ "UCLA_BHHBF2_MUSCLE_FEMALE", "UCLA BHHBF2 Muscle Female Only" ] - ], - "Phenotypes": [ - [ - "BHHBF2Publish", - "BHHBF2 Published Phenotypes" - ] ] }, "BXD": { @@ -1604,14 +1382,14 @@ "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Trimmed 2.0" ], [ - "UTHSC_BXD_WB_RNASeq1112", - "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Untrimmed" - ], - [ "UTHSC_BXD_WB_RNASeqtrim1_1112", "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Trimmed 1.0" ], [ + "UTHSC_BXD_WB_RNASeq1112", + "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Untrimmed" + ], + [ "UTHSC_BXD_WB_RNASeqEx1112", "UTHSC Mouse BXD Whole Brain RNA Sequence Exon Level (Nov12) RPKM" ], @@ -1624,6 +1402,10 @@ "UTHSC Brain mRNA U74Av2 (Nov05) PDNN" ], [ + "BR_U_0805_P", + "UTHSC Brain mRNA U74Av2 (Aug05) PDNN" + ], + [ "BR_U_0805_M", "UTHSC Brain mRNA U74Av2 (Aug05) MAS5" ], @@ -1632,10 +1414,6 @@ "UTHSC Brain mRNA U74Av2 (Aug05) RMA" ], [ - "BR_U_0805_P", - "UTHSC Brain mRNA U74Av2 (Aug05) PDNN" - ], - [ "CB_M_0204_P", "INIA Brain mRNA M430 (Feb04) PDNN" ] @@ -1746,10 +1524,6 @@ "Eye M430v2 WT Gpnmb (Sep08) RMA **" ], [ - "Eye_M2_0908_R_MT", - "Eye M430v2 Mutant Tyrp1 (Sep08) RMA **" - ], - [ "Eye_M2_0908_WTWT", "Eye M430v2 WT WT (Sep08) RMA **" ], @@ -1758,6 +1532,10 @@ "Eye M430v2 WT Tyrp1 (Sep08) RMA **" ], [ + "Eye_M2_0908_R_MT", + "Eye M430v2 Mutant Tyrp1 (Sep08) RMA **" + ], + [ "DBA2J-ONH-1212", "Howell et al. 2011, DBA/2J Glaucoma Optic Nerve Head M430 2.0 (Dec12) RMA" ], @@ -1962,12 +1740,12 @@ "Mouse Kidney M430v2 Sex Balanced (Aug06) PDNN" ], [ - "MA_M2_0706_P", - "Mouse Kidney M430v2 (Jul06) PDNN" - ], - [ "MA_M2_0706_R", "Mouse Kidney M430v2 (Jul06) RMA" + ], + [ + "MA_M2_0706_P", + "Mouse Kidney M430v2 (Jul06) PDNN" ] ], "Leucocytes mRNA": [ @@ -1988,14 +1766,14 @@ ], "Liver Proteome": [ [ - "EPFLETHZBXDprotHFD0514", - "EPFL/ETHZ BXD Liver, Soluble Proteins HFD (May14) SWATH **" - ], - [ "EPFLETHZBXDprotCD0514", "EPFL/ETHZ BXD Liver, Soluble Proteins CD (May14) SWATH **" ], [ + "EPFLETHZBXDprotHFD0514", + "EPFL/ETHZ BXD Liver, Soluble Proteins HFD (May14) SWATH **" + ], + [ "EPFLBXDprotHFDRPN0214", "EPFL/LISP BXD Liver, Soluble Proteins HFD (Feb14) SRM **" ], @@ -2132,14 +1910,14 @@ ], "Neocortex mRNA": [ [ - "DevNeocortex_ILM6.2P14RInv_1111", - "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv" - ], - [ "DevNeocortex_ILM6.2P3RInv_1111", "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv" ], [ + "DevNeocortex_ILM6.2P14RInv_1111", + "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv" + ], + [ "HQFNeoc_1210v2_RankInv", "HQF BXD Neocortex ILM6v1.1 (Dec10v2) RankInv" ], @@ -2152,12 +1930,12 @@ "HQF BXD Neocortex ILM6v1.1 (Feb08) RankInv" ], [ - "DevNeocortex_ILM6.2P3RInv_1110", - "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv" - ], - [ "DevNeocortex_ILM6.2P14RInv_1110", "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv" + ], + [ + "DevNeocortex_ILM6.2P3RInv_1110", + "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv" ] ], "Nucleus Accumbens mRNA": [ @@ -2256,14 +2034,14 @@ "ONC HEI Retina (April 2012) RankInv" ], [ - "DoDTATRCRetMoGene2_1313", - "DoD TATRC Retina Affy MoGene 2.0 ST (Dec13) RMA" - ], - [ "DoDTATRCRetExMoGene2_1313", "DoD TATRC Retina Affy MoGene 2.0 ST (Dec13) RMA Exon Level" ], [ + "DoDTATRCRetMoGene2_1313", + "DoD TATRC Retina Affy MoGene 2.0 ST (Dec13) RMA" + ], + [ "ONCRetMoGene2_0413", "DoD TATRC Retina Affy MoGene 2.0 ST (Oct13) RMA **" ], @@ -2284,12 +2062,12 @@ "B6D2 ONC Retina (April 2012) RankInv **" ], [ - "HEIONCvsCRetILM6_0911", - "HEI ONC vs Control Retina Illumina V6.2 (Sep11) RankInv **" - ], - [ "G2HEIONCRetILM6_0911", "G2 HEI ONC Retina Illumina V6.2 (Sep11) RankInv **" + ], + [ + "HEIONCvsCRetILM6_0911", + "HEI ONC vs Control Retina Illumina V6.2 (Sep11) RankInv **" ] ], "Spleen mRNA": [ @@ -2376,12 +2154,12 @@ "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov11) RankInv **" ], [ - "DevStriatum_ILM6.2P14RInv_1110", - "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov10) RankInv **" - ], - [ "DevStriatum_ILM6.2P3RInv_1110", "BIDMC/UTHSC Dev Striatum P3 ILMv6.2 (Nov10) RankInv **" + ], + [ + "DevStriatum_ILM6.2P14RInv_1110", + "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov10) RankInv **" ] ], "T Cell (helper) mRNA": [ @@ -2404,16 +2182,16 @@ ], "Ventral Tegmental Area mRNA": [ [ - "VCUEtOH_0609_R", - "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA **" - ], - [ "VCUSal_0609_R", "VCU BXD VTA Sal M430 2.0 (Jun09) RMA **" ], [ "VCUEtvsSal_0609_R", "VCU BXD VTA Et vs Sal M430 2.0 (Jun09) Sscore **" + ], + [ + "VCUEtOH_0609_R", + "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA **" ] ] }, @@ -2550,12 +2328,12 @@ ], "Hippocampus mRNA": [ [ - "HC_M2CB_1205_R", - "Hippocampus Consortium M430v2 CXB (Dec05) RMA" - ], - [ "HC_M2CB_1205_P", "Hippocampus Consortium M430v2 CXB (Dec05) PDNN" + ], + [ + "HC_M2CB_1205_R", + "Hippocampus Consortium M430v2 CXB (Dec05) RMA" ] ], "Phenotypes": [ @@ -2572,12 +2350,6 @@ ] }, "HS": { - "Genotypes": [ - [ - "HSGeno", - "HS Genotypes" - ] - ], "Hippocampus mRNA": [ [ "OXUKHS_ILMHipp_RI0510", @@ -2604,18 +2376,6 @@ ] }, "HS-CC": { - "Genotypes": [ - [ - "HS-CCGeno", - "HS-CC Genotypes" - ] - ], - "Phenotypes": [ - [ - "HS-CCPublish", - "HS-CC Published Phenotypes" - ] - ], "Striatum mRNA": [ [ "OHSU_HS-CC_ILMStr_0211", @@ -2660,14 +2420,6 @@ "Hippocampus Illumina (May07) RankInv" ], [ - "Illum_LXS_Hipp_NON_1008", - "Hippocampus Illumina NON (Oct08) RankInv beta" - ], - [ - "Illum_LXS_Hipp_RSE_1008", - "Hippocampus Illumina RSE (Oct08) RankInv beta" - ], - [ "Illum_LXS_Hipp_NOE_1008", "Hippocampus Illumina NOE (Oct08) RankInv beta" ], @@ -2678,6 +2430,14 @@ [ "Illum_LXS_Hipp_NOS_1008", "Hippocampus Illumina NOS (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_NON_1008", + "Hippocampus Illumina NON (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_RSE_1008", + "Hippocampus Illumina RSE (Oct08) RankInv beta" ] ], "Phenotypes": [ @@ -2688,16 +2448,16 @@ ], "Prefrontal Cortex mRNA": [ [ - "VCUEtOH_0806_R", - "VCU LXS PFC EtOH M430A 2.0 (Aug06) RMA **" - ], - [ "VCUSal_0806_R", "VCU LXS PFC Sal M430A 2.0 (Aug06) RMA" ], [ "VCUEt_vs_Sal_0806_R", "VCU LXS PFC Et vs Sal M430A 2.0 (Aug06) Sscore **" + ], + [ + "VCUEtOH_0806_R", + "VCU LXS PFC EtOH M430A 2.0 (Aug06) RMA **" ] ] }, @@ -2736,12 +2496,12 @@ ], "Hippocampus mRNA": [ [ - "UMUTAffyExon_0209_RMA_MDP", - "UMUTAffy Hippocampus Exon (Feb09) RMA MDP" - ], - [ "HC_M2_0606_MDP", "Hippocampus Consortium M430v2 (Jun06) RMA MDP" + ], + [ + "UMUTAffyExon_0209_RMA_MDP", + "UMUTAffy Hippocampus Exon (Feb09) RMA MDP" ] ], "Liver mRNA": [ @@ -2774,12 +2534,6 @@ ] }, "NZBXFVB-N2": { - "Genotypes": [ - [ - "NZBXFVB-N2Geno", - "NZBXFVB-N2 Genotypes" - ] - ], "Mammary Tumors mRNA": [ [ "NCI_Mam_Tum_RMA_0409", @@ -2799,12 +2553,6 @@ "SOTNOT-OHSUGeno", "SOTNOT-OHSU Genotypes" ] - ], - "Phenotypes": [ - [ - "SOTNOT-OHSUPublish", - "SOTNOT-OHSU Published Phenotypes" - ] ] }, "Scripps-2013": { @@ -2817,29 +2565,11 @@ "ScrBXDACC4GEx0513", "Scripps BXD ACC 4 Groups Affy Mouse Gene 1.0 ST (May13) RMA Exon Level **" ] - ], - "Genotypes": [ - [ - "Scripps-2013Geno", - "Scripps-2013 Genotypes" - ] - ], - "Phenotypes": [ - [ - "Scripps-2013Publish", - "Scripps-2013 Published Phenotypes" - ] ] } }, "rat": { "HSNIH": { - "Genotypes": [ - [ - "HSNIHGeno", - "HSNIH Genotypes" - ] - ], "Phenotypes": [ [ "HSNIHPublish", @@ -2915,18 +2645,6 @@ "UIOWA_Eye_RMA_0906", "UIOWA Eye mRNA RAE230v2 (Sep06) RMA" ] - ], - "Genotypes": [ - [ - "SRxSHRSPF2Geno", - "SRxSHRSPF2 Genotypes" - ] - ], - "Phenotypes": [ - [ - "SRxSHRSPF2Publish", - "SRxSHRSPF2 Published Phenotypes" - ] ] } }, @@ -2946,12 +2664,6 @@ ] }, "J12XJ58F2": { - "Genotypes": [ - [ - "J12XJ58F2Geno", - "J12XJ58F2 Genotypes" - ] - ], "Phenotypes": [ [ "J12XJ58F2Publish", @@ -2962,12 +2674,6 @@ }, "tomato": { "LXP": { - "Genotypes": [ - [ - "LXPGeno", - "LXP Genotypes" - ] - ], "Phenotypes": [ [ "LXPPublish", @@ -3285,14 +2991,6 @@ "barley": { "QSM": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Leaf mRNA", "Leaf mRNA" ] @@ -3319,28 +3017,12 @@ "drosophila": { "DGRP": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Whole Body mRNA", "Whole Body mRNA" ] ], "Oregon-R_x_2b3": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Whole Body mRNA", "Whole Body mRNA" ] @@ -3349,24 +3031,12 @@ "human": { "AD-cases-controls": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Brain mRNA", "Brain mRNA" ] ], "AD-cases-controls-Myers": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3377,14 +3047,6 @@ ], "Aging-Brain-UCI": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Entorhinal Cortex mRNA", "Entorhinal Cortex mRNA" ], @@ -3403,14 +3065,6 @@ ], "Brain-Normal-NIH-Gibbs": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Cerebellum mRNA", "Cerebellum mRNA" ], @@ -3433,10 +3087,6 @@ "Phenotypes" ], [ - "Genotypes", - "Genotypes" - ], - [ "Methylation", "Methylation" ], @@ -3447,28 +3097,12 @@ ], "CEPH-2004": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Lymphoblast B-cell mRNA", "Lymphoblast B-cell mRNA" ] ], "GTEx": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Adrenal Gland mRNA", "Adrenal Gland mRNA" ], @@ -3659,14 +3293,6 @@ ], "HB": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Cerebellum mRNA", "Cerebellum mRNA" ], @@ -3683,10 +3309,6 @@ [ "Phenotypes", "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" ] ], "HLC": [ @@ -3695,38 +3317,18 @@ "Phenotypes" ], [ - "Genotypes", - "Genotypes" - ], - [ "Liver mRNA", "Liver mRNA" ] ], "HLT": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Lung mRNA", "Lung mRNA" ] ], "HSB": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Amygdala mRNA", "Amygdala mRNA" ], @@ -3795,14 +3397,6 @@ "macaque monkey": { "Macaca-fasicularis": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Amygdala mRNA", "Amygdala mRNA" ], @@ -3827,10 +3421,6 @@ "mouse": { "AKXD": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3881,10 +3471,6 @@ ], "B6D2F2": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3895,10 +3481,6 @@ ], "B6D2F2-PSU": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3909,24 +3491,12 @@ ], "B6D2RI": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Hippocampus mRNA", "Hippocampus mRNA" ] ], "BDF2-1999": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3937,10 +3507,6 @@ ], "BDF2-2005": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3951,10 +3517,6 @@ ], "BHF2": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -3977,10 +3539,6 @@ ], "BHHBF2": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ], @@ -4233,10 +3791,6 @@ "Phenotypes" ], [ - "Genotypes", - "Genotypes" - ], - [ "Hippocampus mRNA", "Hippocampus mRNA" ], @@ -4251,14 +3805,6 @@ ], "HS-CC": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Striatum mRNA", "Striatum mRNA" ] @@ -4323,34 +3869,18 @@ "Phenotypes" ], [ - "Genotypes", - "Genotypes" - ], - [ "Mammary Tumors mRNA", "Mammary Tumors mRNA" ] ], "SOTNOT-OHSU": [ [ - "Phenotypes", - "Phenotypes" - ], - [ "Genotypes", "Genotypes" ] ], "Scripps-2013": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Anterior Cingulate Cortex mRNA", "Anterior Cingulate Cortex mRNA" ] @@ -4361,10 +3891,6 @@ [ "Phenotypes", "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" ] ], "HXBBXH": [ @@ -4403,14 +3929,6 @@ ], "SRxSHRSPF2": [ [ - "Phenotypes", - "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" - ], - [ "Eye mRNA", "Eye mRNA" ] @@ -4431,10 +3949,6 @@ [ "Phenotypes", "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" ] ] }, @@ -4443,10 +3957,6 @@ [ "Phenotypes", "Phenotypes" - ], - [ - "Genotypes", - "Genotypes" ] ] } diff --git a/wqflask/wqflask/static/new/javascript/histogram.coffee b/wqflask/wqflask/static/new/javascript/histogram.coffee index 98f89ac6..68d9b5a2 100755 --- a/wqflask/wqflask/static/new/javascript/histogram.coffee +++ b/wqflask/wqflask/static/new/javascript/histogram.coffee @@ -4,7 +4,6 @@ class Histogram constructor: (@sample_list, @sample_group) ->
@sort_by = "name"
@format_count = d3.format(",.0f") #a formatter for counts
- @get_sample_vals()
@margin = {top: 10, right: 30, bottom: 30, left: 30}
@plot_width = 960 - @margin.left - @margin.right
@@ -12,21 +11,25 @@ class Histogram @x_buffer = @plot_width/20
@y_buffer = @plot_height/20
+ @plot_height -= @y_buffer
+
+ @get_sample_vals(@sample_list)
+ @redraw(@sample_vals)
+ redraw: (@sample_vals) ->
@y_min = d3.min(@sample_vals)
@y_max = d3.max(@sample_vals) * 1.1
-
- @plot_height -= @y_buffer
+
@create_x_scale()
@get_histogram_data()
@create_y_scale()
+ $("#histogram").empty()
@svg = @create_svg()
-
@create_graph()
- get_sample_vals: () ->
- @sample_vals = (sample.value for sample in @sample_list when sample.value != null)
+ get_sample_vals: (sample_list) ->
+ @sample_vals = (sample.value for sample in sample_list when sample.value != null)
create_svg: () ->
svg = d3.select("#histogram")
@@ -53,8 +56,9 @@ class Histogram get_histogram_data: () ->
console.log("sample_vals:", @sample_vals)
+ n_bins = Math.sqrt(@sample_vals.length)
@histogram_data = d3.layout.histogram()
- .bins(@x_scale.ticks(20))(@sample_vals)
+ .bins(@x_scale.ticks(n_bins))(@sample_vals)
console.log("histogram_data:", @histogram_data[0])
create_y_scale: () ->
@@ -112,17 +116,20 @@ class Histogram .attr("class", "bar")
.attr("transform", (d) =>
return "translate(" + @x_scale(d.x) + "," + @y_scale(d.y) + ")")
+
+ rect_width = @x_scale(@histogram_data[0].x + @histogram_data[0].dx) -
+ @x_scale(@histogram_data[0].x)
bar.append("rect")
.attr("x", 1)
- .attr("width", @x_scale(@histogram_data[0].x + @histogram_data[0].dx) - 1)
+ .attr("width", rect_width - 1)
.attr("height", (d) =>
return @plot_height - @y_scale(d.y)
)
bar.append("text")
.attr("dy", ".75em")
.attr("y", 6)
- .attr("x", @x_scale(@histogram_data[0].dx)/2)
+ .attr("x", rect_width / 2)
.attr("text-anchor", "middle")
.style("fill", "#fff")
.text((d) =>
@@ -131,4 +138,4 @@ class Histogram return @format_count(d.y)
)
-root.Histogram = Histogram
\ No newline at end of file +root.Histogram = Histogram
diff --git a/wqflask/wqflask/static/new/javascript/histogram.js b/wqflask/wqflask/static/new/javascript/histogram.js index 561a3068..d872a3ba 100755 --- a/wqflask/wqflask/static/new/javascript/histogram.js +++ b/wqflask/wqflask/static/new/javascript/histogram.js @@ -1,124 +1,135 @@ -// Generated by CoffeeScript 1.8.0 -var Histogram, root; - -root = typeof exports !== "undefined" && exports !== null ? exports : this; - -Histogram = (function() { - function Histogram(sample_list, sample_group) { - this.sample_list = sample_list; - this.sample_group = sample_group; - this.sort_by = "name"; - this.format_count = d3.format(",.0f"); - this.get_sample_vals(); - this.margin = { - top: 10, - right: 30, - bottom: 30, - left: 30 +// Generated by CoffeeScript 1.9.2 +(function() { + var Histogram, root; + + root = typeof exports !== "undefined" && exports !== null ? exports : this; + + Histogram = (function() { + function Histogram(sample_list1, sample_group) { + this.sample_list = sample_list1; + this.sample_group = sample_group; + this.sort_by = "name"; + this.format_count = d3.format(",.0f"); + this.margin = { + top: 10, + right: 30, + bottom: 30, + left: 30 + }; + this.plot_width = 960 - this.margin.left - this.margin.right; + this.plot_height = 500 - this.margin.top - this.margin.bottom; + this.x_buffer = this.plot_width / 20; + this.y_buffer = this.plot_height / 20; + this.plot_height -= this.y_buffer; + this.get_sample_vals(this.sample_list); + this.redraw(this.sample_vals); + } + + Histogram.prototype.redraw = function(sample_vals) { + this.sample_vals = sample_vals; + this.y_min = d3.min(this.sample_vals); + this.y_max = d3.max(this.sample_vals) * 1.1; + this.create_x_scale(); + this.get_histogram_data(); + this.create_y_scale(); + $("#histogram").empty(); + this.svg = this.create_svg(); + return this.create_graph(); }; - this.plot_width = 960 - this.margin.left - this.margin.right; - this.plot_height = 500 - this.margin.top - this.margin.bottom; - this.x_buffer = this.plot_width / 20; - this.y_buffer = this.plot_height / 20; - this.y_min = d3.min(this.sample_vals); - this.y_max = d3.max(this.sample_vals) * 1.1; - this.plot_height -= this.y_buffer; - this.create_x_scale(); - this.get_histogram_data(); - this.create_y_scale(); - this.svg = this.create_svg(); - this.create_graph(); - } - - Histogram.prototype.get_sample_vals = function() { - var sample; - return this.sample_vals = (function() { - var _i, _len, _ref, _results; - _ref = this.sample_list; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - sample = _ref[_i]; - if (sample.value !== null) { - _results.push(sample.value); + + Histogram.prototype.get_sample_vals = function(sample_list) { + var sample; + return this.sample_vals = (function() { + var i, len, results; + results = []; + for (i = 0, len = sample_list.length; i < len; i++) { + sample = sample_list[i]; + if (sample.value !== null) { + results.push(sample.value); + } } - } - return _results; - }).call(this); - }; - - Histogram.prototype.create_svg = function() { - var svg; - svg = d3.select("#histogram").append("svg").attr("class", "histogram").attr("width", this.plot_width + this.margin.left + this.margin.right).attr("height", this.plot_height + this.margin.top + this.margin.bottom).append("g").attr("transform", "translate(" + this.margin.left + "," + this.margin.top + ")"); - return svg; - }; - - Histogram.prototype.create_x_scale = function() { - var x0; - console.log("min/max:", d3.min(this.sample_vals) + "," + d3.max(this.sample_vals)); - x0 = Math.max(-d3.min(this.sample_vals), d3.max(this.sample_vals)); - return this.x_scale = d3.scale.linear().domain([d3.min(this.sample_vals), d3.max(this.sample_vals)]).range([0, this.plot_width]).nice(); - }; - - Histogram.prototype.get_histogram_data = function() { - console.log("sample_vals:", this.sample_vals); - this.histogram_data = d3.layout.histogram().bins(this.x_scale.ticks(20))(this.sample_vals); - return console.log("histogram_data:", this.histogram_data[0]); - }; - - Histogram.prototype.create_y_scale = function() { - return this.y_scale = d3.scale.linear().domain([ - 0, d3.max(this.histogram_data, (function(_this) { + return results; + })(); + }; + + Histogram.prototype.create_svg = function() { + var svg; + svg = d3.select("#histogram").append("svg").attr("class", "histogram").attr("width", this.plot_width + this.margin.left + this.margin.right).attr("height", this.plot_height + this.margin.top + this.margin.bottom).append("g").attr("transform", "translate(" + this.margin.left + "," + this.margin.top + ")"); + return svg; + }; + + Histogram.prototype.create_x_scale = function() { + var x0; + console.log("min/max:", d3.min(this.sample_vals) + "," + d3.max(this.sample_vals)); + x0 = Math.max(-d3.min(this.sample_vals), d3.max(this.sample_vals)); + return this.x_scale = d3.scale.linear().domain([d3.min(this.sample_vals), d3.max(this.sample_vals)]).range([0, this.plot_width]).nice(); + }; + + Histogram.prototype.get_histogram_data = function() { + var n_bins; + console.log("sample_vals:", this.sample_vals); + n_bins = Math.sqrt(this.sample_vals.length); + this.histogram_data = d3.layout.histogram().bins(this.x_scale.ticks(n_bins))(this.sample_vals); + return console.log("histogram_data:", this.histogram_data[0]); + }; + + Histogram.prototype.create_y_scale = function() { + return this.y_scale = d3.scale.linear().domain([ + 0, d3.max(this.histogram_data, (function(_this) { + return function(d) { + return d.y; + }; + })(this)) + ]).range([this.plot_height, 0]); + }; + + Histogram.prototype.create_graph = function() { + this.add_x_axis(); + this.add_y_axis(); + return this.add_bars(); + }; + + Histogram.prototype.add_x_axis = function() { + var x_axis; + x_axis = d3.svg.axis().scale(this.x_scale).orient("bottom"); + return this.svg.append("g").attr("class", "x axis").attr("transform", "translate(0," + this.plot_height + ")").call(x_axis); + }; + + Histogram.prototype.add_y_axis = function() { + var yAxis; + yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5); + return this.svg.append("g").attr("class", "y axis").call(yAxis).append("text").attr("transform", "rotate(-90)").attr("y", 6).attr("dy", ".71em").style("text-anchor", "end"); + }; + + Histogram.prototype.add_bars = function() { + var bar, rect_width; + console.log("bar_width:", this.x_scale(this.histogram_data[0].dx)); + bar = this.svg.selectAll(".bar").data(this.histogram_data).enter().append("g").attr("class", "bar").attr("transform", (function(_this) { return function(d) { - return d.y; + return "translate(" + _this.x_scale(d.x) + "," + _this.y_scale(d.y) + ")"; }; - })(this)) - ]).range([this.plot_height, 0]); - }; - - Histogram.prototype.create_graph = function() { - this.add_x_axis(); - this.add_y_axis(); - return this.add_bars(); - }; - - Histogram.prototype.add_x_axis = function() { - var x_axis; - x_axis = d3.svg.axis().scale(this.x_scale).orient("bottom"); - return this.svg.append("g").attr("class", "x axis").attr("transform", "translate(0," + this.plot_height + ")").call(x_axis); - }; - - Histogram.prototype.add_y_axis = function() { - var yAxis; - yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5); - return this.svg.append("g").attr("class", "y axis").call(yAxis).append("text").attr("transform", "rotate(-90)").attr("y", 6).attr("dy", ".71em").style("text-anchor", "end"); - }; - - Histogram.prototype.add_bars = function() { - var bar; - console.log("bar_width:", this.x_scale(this.histogram_data[0].dx)); - bar = this.svg.selectAll(".bar").data(this.histogram_data).enter().append("g").attr("class", "bar").attr("transform", (function(_this) { - return function(d) { - return "translate(" + _this.x_scale(d.x) + "," + _this.y_scale(d.y) + ")"; - }; - })(this)); - bar.append("rect").attr("x", 1).attr("width", this.x_scale(this.histogram_data[0].x + this.histogram_data[0].dx) - 1).attr("height", (function(_this) { - return function(d) { - return _this.plot_height - _this.y_scale(d.y); - }; - })(this)); - return bar.append("text").attr("dy", ".75em").attr("y", 6).attr("x", this.x_scale(this.histogram_data[0].dx) / 2).attr("text-anchor", "middle").style("fill", "#fff").text((function(_this) { - return function(d) { - var bar_height; - bar_height = _this.plot_height - _this.y_scale(d.y); - if (bar_height > 20) { - return _this.format_count(d.y); - } - }; - })(this)); - }; + })(this)); + rect_width = this.x_scale(this.histogram_data[0].x + this.histogram_data[0].dx) - this.x_scale(this.histogram_data[0].x); + bar.append("rect").attr("x", 1).attr("width", rect_width - 1).attr("height", (function(_this) { + return function(d) { + return _this.plot_height - _this.y_scale(d.y); + }; + })(this)); + return bar.append("text").attr("dy", ".75em").attr("y", 6).attr("x", rect_width / 2).attr("text-anchor", "middle").style("fill", "#fff").text((function(_this) { + return function(d) { + var bar_height; + bar_height = _this.plot_height - _this.y_scale(d.y); + if (bar_height > 20) { + return _this.format_count(d.y); + } + }; + })(this)); + }; + + return Histogram; - return Histogram; + })(); -})(); + root.Histogram = Histogram; -root.Histogram = Histogram; +}).call(this); diff --git a/wqflask/wqflask/static/new/javascript/show_trait.coffee b/wqflask/wqflask/static/new/javascript/show_trait.coffee index ee57831f..1d3123ba 100755 --- a/wqflask/wqflask/static/new/javascript/show_trait.coffee +++ b/wqflask/wqflask/static/new/javascript/show_trait.coffee @@ -238,6 +238,7 @@ $ -> sample_sets['samples_all'].add_value(real_value) already_seen[name] = true console.log("towards end:", sample_sets) + root.histogram.redraw(sample_sets['samples_primary'].the_values) update_stat_values(sample_sets) show_hide_outliers = -> diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js index c2dc07ee..9323862a 100755 --- a/wqflask/wqflask/static/new/javascript/show_trait.js +++ b/wqflask/wqflask/static/new/javascript/show_trait.js @@ -265,6 +265,7 @@ } } console.log("towards end:", sample_sets); + root.histogram.redraw(sample_sets['samples_primary'].the_values); return update_stat_values(sample_sets); }; show_hide_outliers = function() { diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html index 5e0a92e3..cb29a07c 100755 --- a/wqflask/wqflask/templates/index_page.html +++ b/wqflask/wqflask/templates/index_page.html @@ -206,12 +206,12 @@ <h3>GN1 Mirror and development sites</h3> <ul> - <li><a href="http://www.genenetwork.org/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">Main GN1 site at UTHSC</a> (main site)</li> - <li><a href="http://www.genenetwork.waimr.uwa.edu.au/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">Australia at the UWA</a></li> - <li><a href="http://gn.genetics.ucla.edu/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">California at UCLA</a></li> - <li><a href="http://genenetwork.helmholtz-hzi.de/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">Germany at the HZI</a></li> - <li><a href="http://genenetwork.memphis.edu/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">Memphis at the U of M</a></li> - <li><a href="http://genenetwork.epfl.ch/" target="_blank" style="font-size:12px;font-family:verdana;color:blue">Switzerland at the EPFL</a></li> + <li><a href="http://www.genenetwork.org/" target="_blank">Main GN1 site at UTHSC</a> (main site)</li> + <li><a href="http://www.genenetwork.waimr.uwa.edu.au/" target="_blank">Australia at the UWA</a></li> + <li><a href="http://gn.genetics.ucla.edu/" target="_blank">California at UCLA</a></li> + <li><a href="http://genenetwork.helmholtz-hzi.de/" target="_blank">Germany at the HZI</a></li> + <li><a href="http://genenetwork.memphis.edu/" target="_blank">Memphis at the U of M</a></li> + <li><a href="http://genenetwork.epfl.ch/" target="_blank">Switzerland at the EPFL</a></li> </ul> </section> diff --git a/wqflask/wqflask/templates/pair_scan_results.html b/wqflask/wqflask/templates/pair_scan_results.html index f46d7cbf..ab4a36bb 100644 --- a/wqflask/wqflask/templates/pair_scan_results.html +++ b/wqflask/wqflask/templates/pair_scan_results.html @@ -44,7 +44,7 @@ </tr> </thead> <tbody> - {% for marker in pair_scan_results %} + {% for marker in filtered_markers %} <tr> <td>{{loop.index}}</td> <td>{{marker.name}}</td> diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html index a1723ef8..d6f22f41 100755 --- a/wqflask/wqflask/templates/show_trait.html +++ b/wqflask/wqflask/templates/show_trait.html @@ -13,8 +13,12 @@ {% endblock %} {% block content %} <!-- Start of body --> - {{ header("{}".format(this_trait.symbol), - '{}: {}'.format(this_trait.name, this_trait.description_fmt)) }} + {% if this_trait.dataset.type != 'Geno' %} + {{ header("{}".format(this_trait.name_header_fmt), + '{}: {}'.format(this_trait.name, this_trait.description_fmt)) }} + {% else %} + {{ header("{}".format(this_trait.name_header_fmt)) }} + {% endif %} <form method="post" action="/corr_compute" name="trait_page" id="trait_data_form" @@ -31,7 +35,7 @@ <div class="page-header"> <h1>{{ dataset.group.species.capitalize() }} - {{ dataset.group.name }} - - {{ this_trait.symbol }} + {{ this_trait.name_header_fmt }} </h1> </div> diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html index 0afac1f7..e1780e42 100755 --- a/wqflask/wqflask/templates/show_trait_details.html +++ b/wqflask/wqflask/templates/show_trait_details.html @@ -1,9 +1,13 @@ <dl class="dl-horizontal"> + {% if this_trait.dataset.type == 'ProbeSet' %} <dt>Aliases</dt> <dd>{{ this_trait.alias_fmt }}</dd> + {% endif %} + {% if this_trait.dataset.type != 'Publish' %} <dt>Location</dt> <dd>{{ this_trait.location_fmt }}</dd> + {% endif %} <dt>Database</dt> <dd> @@ -16,7 +20,7 @@ <dt> <a href="/blatInfo.html" target="_blank" title="Values higher than 2 for the specificity are good"> - BLAT Specifity + BLAT Specificity </a> </dt> <dd>{{ "%0.3f" | format(this_trait.probe_set_specificity|float) }}</dd> diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html index 27504e51..bd1e6f1e 100755 --- a/wqflask/wqflask/templates/show_trait_mapping_tools.html +++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html @@ -4,14 +4,16 @@ <ul class="nav nav-pills"> <li class="active"> - <a href="#interval_mapping" data-toggle="tab">Interval Mapping</a> - </li> - <li> <a href="#pylmm" data-toggle="tab">pyLMM</a> </li> <li> <a href="#rqtl_geno" data-toggle="tab">rqtl</a> </li> + {% if dataset.group.species != 'human' %} + <li> + <a href="#interval_mapping" data-toggle="tab">Interval Mapping</a> + </li> + {% endif %} {% if dataset.group.species == 'human' %} <li> <a href="#plink" data-toggle="tab">PLINK</a> @@ -26,60 +28,7 @@ </ul> <div class="tab-content"> - <div class="tab-pane active" id="interval_mapping"> - <div style="padding: 20px" class="form-horizontal"> - <div class="mapping_method_fields form-group"> - <label for="mapping_permutations" class="col-xs-2 control-label">Permutations</label> - <div style="margin-left: 20px;" class="col-xs-4 controls"> - <input name="num_perm_reaper" value="2000" type="text" class="form-control"> - </div> - </div> - - <div class="mapping_method_fields form-group"> - <label for="mapping_bootstraps" class="col-xs-2 control-label" title="Bootstrapping Resamples">Bootstrap</label> - <div style="margin-left: 20px;" class="col-xs-4 controls"> - <input name="mapping_bootstraps" value="2000" type="text" class="form-control"> - </div> - </div> - - <div class="mapping_method_fields form-group"> - <label style="text-align:left;" class="col-xs-12 control-label">Display Additive Effect</label> - <div class="col-xs-12 controls" id="display_additive_effect"> - <label class="radio-inline"> - <input type="radio" name="display_additive" id="display_additive" value="yes" checked=""> - Yes - </label> - <label class="radio-inline"> - <input type="radio" name="display_additive" id="display_additive" value="no"> - No - </label> - </div> - </div> - - <div class="mapping_method_fields form-group"> - <label style="text-align:left;" class="col-xs-12 control-label">Manhattan Plot</label> - <div class="col-xs-12 controls"> - <label class="radio-inline"> - <input type="radio" name="manhattan_plot_reaper" value="true"> - Yes - </label> - <label class="radio-inline"> - <input type="radio" name="manhattan_plot_reaper" value="false" checked=""> - No - </label> - </div> - </div> - <div class="form-group"> - <div style="padding-left:15px;" class="controls"> - <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/interval_mapping" title="Compute Interval Mapping"> - <i class="icon-ok-circle icon-white"></i> Open Mapping Tool - </button> - </div> - </div> - </div> - </div> - - <div class="tab-pane" id="pylmm"> + <div class="tab-pane active" id="pylmm"> <div style="padding: 20px" class="form-horizontal"> <div class="mapping_method_fields form-group"> @@ -211,7 +160,60 @@ </div> </div> </div> - + {% if dataset.group.species != 'human' %} + <div class="tab-pane" id="interval_mapping"> + <div style="padding: 20px" class="form-horizontal"> + <div class="mapping_method_fields form-group"> + <label for="mapping_permutations" class="col-xs-2 control-label">Permutations</label> + <div style="margin-left: 20px;" class="col-xs-4 controls"> + <input name="num_perm_reaper" value="2000" type="text" class="form-control"> + </div> + </div> + + <div class="mapping_method_fields form-group"> + <label for="mapping_bootstraps" class="col-xs-2 control-label" title="Bootstrapping Resamples">Bootstrap</label> + <div style="margin-left: 20px;" class="col-xs-4 controls"> + <input name="mapping_bootstraps" value="2000" type="text" class="form-control"> + </div> + </div> + + <div class="mapping_method_fields form-group"> + <label style="text-align:left;" class="col-xs-12 control-label">Display Additive Effect</label> + <div class="col-xs-12 controls" id="display_additive_effect"> + <label class="radio-inline"> + <input type="radio" name="display_additive" id="display_additive" value="yes" checked=""> + Yes + </label> + <label class="radio-inline"> + <input type="radio" name="display_additive" id="display_additive" value="no"> + No + </label> + </div> + </div> + + <div class="mapping_method_fields form-group"> + <label style="text-align:left;" class="col-xs-12 control-label">Manhattan Plot</label> + <div class="col-xs-12 controls"> + <label class="radio-inline"> + <input type="radio" name="manhattan_plot_reaper" value="true"> + Yes + </label> + <label class="radio-inline"> + <input type="radio" name="manhattan_plot_reaper" value="false" checked=""> + No + </label> + </div> + </div> + <div class="form-group"> + <div style="padding-left:15px;" class="controls"> + <button id="interval_mapping_compute" class="btn submit_special btn-primary" data-url="/interval_mapping" title="Compute Interval Mapping"> + <i class="icon-ok-circle icon-white"></i> Open Mapping Tool + </button> + </div> + </div> + </div> + </div> + {% endif %} {% if dataset.group.species == 'human' %} <div class="tab-pane" id="plink"> <div style="padding: 20px" class="form-horizontal"> |