aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
authorzsloan2019-02-22 17:07:58 -0600
committerzsloan2019-02-22 17:07:58 -0600
commit4b4007f00f26afadc42d451c78e1253235ad65f3 (patch)
tree0b57f53eb0586a6325c1b9cd2bb0ed4b4c513e1d /wqflask
parent91df491997694f1482119add20bb93bdd2f9e69b (diff)
downloadgenenetwork2-4b4007f00f26afadc42d451c78e1253235ad65f3.tar.gz
Fixed some appearance issues with several tables
Fixed issue where cofactor selection screens were broken Changed case attributes to be applied across groups, though need to discuss this with Rob since it shouldn't always be done this way Added new inversion transformation
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/base/trait.py4
-rw-r--r--wqflask/utility/Plot.py3
-rw-r--r--wqflask/wqflask/search_results.py11
-rw-r--r--wqflask/wqflask/show_trait/SampleList.py32
-rw-r--r--wqflask/wqflask/show_trait/show_trait.py22
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_menu_structure.json79
-rw-r--r--wqflask/wqflask/static/new/javascript/get_covariates_from_collection.js76
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js65
-rw-r--r--wqflask/wqflask/templates/search_result_page.html22
-rw-r--r--wqflask/wqflask/templates/show_trait.html30
-rw-r--r--wqflask/wqflask/templates/show_trait_mapping_tools.html2
-rw-r--r--wqflask/wqflask/templates/show_trait_transform_and_filter.html1
12 files changed, 221 insertions, 126 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index e57d4176..9f76306f 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -206,6 +206,7 @@ def jsonable(trait):
return dict(name=trait.name,
symbol=trait.symbol,
dataset=dataset.name,
+ dataset_name = dataset.shortname,
description=trait.description_display,
mean=trait.mean,
location=trait.location_repr,
@@ -217,6 +218,7 @@ def jsonable(trait):
if trait.pubmed_id:
return dict(name=trait.name,
dataset=dataset.name,
+ dataset_name = dataset.shortname,
description=trait.description_display,
authors=trait.authors,
pubmed_text=trait.pubmed_text,
@@ -228,6 +230,7 @@ def jsonable(trait):
else:
return dict(name=trait.name,
dataset=dataset.name,
+ dataset_name = dataset.shortname,
description=trait.description_display,
authors=trait.authors,
pubmed_text=trait.pubmed_text,
@@ -238,6 +241,7 @@ def jsonable(trait):
elif dataset.type == "Geno":
return dict(name=trait.name,
dataset=dataset.name,
+ dataset_name = dataset.shortname,
location=trait.location_repr
)
else:
diff --git a/wqflask/utility/Plot.py b/wqflask/utility/Plot.py
index 529cd117..cce8435d 100644
--- a/wqflask/utility/Plot.py
+++ b/wqflask/utility/Plot.py
@@ -98,8 +98,6 @@ def find_outliers(vals):
"""
- logger.debug("xerxes vals is:", pf(vals))
-
if vals:
#logger.debug("vals is:", pf(vals))
stats = corestats.Stats(vals)
@@ -114,7 +112,6 @@ def find_outliers(vals):
upper_bound = None
lower_bound = None
- logger.debug(pf(locals()))
return upper_bound, lower_bound
# parameter: data is either object returned by reaper permutation function (called by MarkerRegressionPage.py)
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index c67063b0..893fd172 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -112,7 +112,7 @@ views.py).
trait_dict['hmac'] = user_manager.data_hmac('{}:{}'.format(this_trait.name, this_trait.dataset.name))
if this_trait.dataset.type == "ProbeSet":
trait_dict['symbol'] = this_trait.symbol
- trait_dict['description'] = this_trait.description_display
+ trait_dict['description'] = insert_newlines(this_trait.description_display)
trait_dict['location'] = this_trait.location_repr
trait_dict['mean'] = "N/A"
trait_dict['additive'] = "N/A"
@@ -125,7 +125,7 @@ views.py).
elif this_trait.dataset.type == "Geno":
trait_dict['location'] = this_trait.location_repr
elif this_trait.dataset.type == "Publish":
- trait_dict['description'] = this_trait.description_display
+ trait_dict['description'] = insert_newlines(this_trait.description_display)
trait_dict['authors'] = this_trait.authors
trait_dict['pubmed_id'] = "N/A"
if this_trait.pubmed_id:
@@ -222,3 +222,10 @@ views.py).
return the_search
else:
return None
+
+def insert_newlines(string, every=64):
+ """ This is because it is seemingly impossible to change the width of the description column, so I'm just manually adding line breaks """
+ lines = []
+ for i in xrange(0, len(string), every):
+ lines.append(string[i:i+every])
+ return '\n'.join(lines)
diff --git a/wqflask/wqflask/show_trait/SampleList.py b/wqflask/wqflask/show_trait/SampleList.py
index 50d7b6c0..50026bba 100644
--- a/wqflask/wqflask/show_trait/SampleList.py
+++ b/wqflask/wqflask/show_trait/SampleList.py
@@ -39,7 +39,7 @@ class SampleList(object):
#self.sample_qnorm = get_transform_vals(self.dataset, this_trait)
- if self.this_trait and self.dataset and self.dataset.type == 'ProbeSet':
+ if self.this_trait and self.dataset:
self.get_extra_attribute_values()
for counter, sample_name in enumerate(sample_names, 1):
@@ -72,10 +72,9 @@ class SampleList(object):
self.sample_list.append(sample)
- logger.debug("self.attributes is", pf(self.attributes))
+ #logger.debug("attribute vals are", pf(self.sample_attribute_values))
self.do_outliers()
- logger.debug("*the_samples are [%i]: %s" % (len(self.sample_list), pf(self.sample_list)))
def __repr__(self):
return "<SampleList> --> %s" % (pf(self.__dict__))
@@ -98,11 +97,11 @@ class SampleList(object):
# Get attribute names and distinct values for each attribute
results = g.db.execute('''
- SELECT DISTINCT CaseAttribute.Id, CaseAttribute.Name, CaseAttributeXRef.Value
- FROM CaseAttribute, CaseAttributeXRef
- WHERE CaseAttributeXRef.CaseAttributeId = CaseAttribute.Id
- AND CaseAttributeXRef.ProbeSetFreezeId = %s
- ORDER BY CaseAttribute.Name''', (str(self.dataset.id),))
+ SELECT DISTINCT CaseAttribute.Id, CaseAttribute.Name, CaseAttributeXRefNew.Value
+ FROM CaseAttribute, CaseAttributeXRefNew
+ WHERE CaseAttributeXRefNew.CaseAttributeId = CaseAttribute.Id
+ AND CaseAttributeXRefNew.InbredSetId = %s
+ ORDER BY CaseAttribute.Name''', (str(self.dataset.group.id),))
self.attributes = {}
for attr, values in itertools.groupby(results.fetchall(), lambda row: (row.Id, row.Name)):
@@ -115,16 +114,17 @@ class SampleList(object):
def get_extra_attribute_values(self):
if self.attributes:
- results = g.db.execute('''
- SELECT Strain.Name AS SampleName, CaseAttributeId AS Id, CaseAttributeXRef.Value
- FROM Strain, StrainXRef, InbredSet, CaseAttributeXRef
+ query = '''
+ SELECT Strain.Name AS SampleName, CaseAttributeId AS Id, CaseAttributeXRefNew.Value
+ FROM Strain, StrainXRef, InbredSet, CaseAttributeXRefNew
WHERE StrainXRef.StrainId = Strain.Id
AND InbredSet.Id = StrainXRef.InbredSetId
- AND CaseAttributeXRef.StrainId = Strain.Id
- AND InbredSet.Name = %s
- AND CaseAttributeXRef.ProbeSetFreezeId = %s
- ORDER BY SampleName''',
- (self.dataset.group.name, self.this_trait.dataset.id))
+ AND CaseAttributeXRefNew.StrainId = Strain.Id
+ AND InbredSet.Id = CaseAttributeXRefNew.InbredSetId
+ AND CaseAttributeXRefNew.InbredSetId = %s
+ ORDER BY SampleName''' % self.dataset.group.id
+
+ results = g.db.execute(query)
for sample_name, items in itertools.groupby(results.fetchall(), lambda row: row.SampleName):
attribute_values = {}
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index 0d1ed345..9b4470fe 100644
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -350,6 +350,28 @@ def quantile_normalize_vals(sample_groups):
return qnorm_by_group
+def get_z_scores(sample_groups):
+ zscore_by_group = []
+ for sample_type in sample_groups:
+ trait_vals = []
+ for sample in sample_type.sample_list:
+ try:
+ trait_vals.append(float(sample.value))
+ except:
+ continue
+
+ qnorm_vals = normf(trait_vals)
+ qnorm_vals_with_x = []
+ counter = 0
+ for sample in sample_type.sample_list:
+ if sample.display_value == "x":
+ qnorm_vals_with_x.append("x")
+ else:
+ qnorm_vals_with_x.append(qnorm_vals[counter])
+ counter += 1
+
+ qnorm_by_group.append(qnorm_vals_with_x)
+
def get_nearest_marker(this_trait, this_db):
this_chr = this_trait.locus_chr
logger.debug("this_chr:", this_chr)
diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
index 3f2673c1..7d00d509 100644
--- a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
+++ b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
@@ -1560,7 +1560,7 @@
"AIL-LGSM-F34-A": {
"Phenotypes": [
[
- "None",
+ "655",
"AIL-LGSM-F34-APublish",
"AIL-LGSM-F34-A Phenotypes"
]
@@ -1569,7 +1569,7 @@
"AIL-LGSM-F34-F39-43-GBS": {
"Phenotypes": [
[
- "None",
+ "654",
"AIL-LGSM-F34-F39-43-GBSPublish",
"AIL-LGSM-F34-F39-43-GBS Phenotypes"
]
@@ -1578,7 +1578,7 @@
"AIL-LGSM-F34-GBS": {
"Phenotypes": [
[
- "None",
+ "656",
"AIL-LGSM-F34-GBSPublish",
"AIL-LGSM-F34-GBS Phenotypes"
]
@@ -1587,7 +1587,7 @@
"AIL-LGSM-F39-43-GBS": {
"Phenotypes": [
[
- "None",
+ "657",
"AIL-LGSM-F39-43-GBSPublish",
"AIL-LGSM-F39-43-GBS Phenotypes"
]
@@ -1713,11 +1713,6 @@
"B6D2F2": {
"Brain mRNA": [
[
- "77",
- "BRF2_M_0805_R",
- "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA"
- ],
- [
"76",
"BRF2_M_0805_M",
"OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) MAS5"
@@ -1728,6 +1723,11 @@
"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"
@@ -2082,16 +2082,16 @@
],
"Brain mRNA": [
[
- "164",
- "UTHSC_BXD_WB_RNASeq1112",
- "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Untrimmed"
- ],
- [
"590",
"UTHSC_BXD_WB_RNASeqtrim1_1112",
"UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Trimmed 1.0"
],
[
+ "164",
+ "UTHSC_BXD_WB_RNASeq1112",
+ "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Untrimmed"
+ ],
+ [
"394",
"UTHSC_BXD_WB_RNASeqEx1112",
"UTHSC Mouse BXD Whole Brain RNA Sequence Exon Level (Nov12) RPKM"
@@ -2233,11 +2233,6 @@
"Eye M430v2 WT Gpnmb (Sep08) RMA"
],
[
- "279",
- "Eye_M2_0908_R_WT",
- "Eye M430v2 WT Tyrp1 (Sep08) RMA"
- ],
- [
"278",
"Eye_M2_0908_R_MT",
"Eye M430v2 Mutant Tyrp1 (Sep08) RMA"
@@ -2248,6 +2243,11 @@
"Eye M430v2 WT WT (Sep08) RMA"
],
[
+ "279",
+ "Eye_M2_0908_R_WT",
+ "Eye M430v2 WT Tyrp1 (Sep08) RMA"
+ ],
+ [
"400",
"DBA2J-ONH-1212",
"Howell et al. 2011, DBA/2J Glaucoma Optic Nerve Head M430 2.0 (Dec12) RMA"
@@ -2531,16 +2531,16 @@
],
"Kidney mRNA": [
[
- "239",
- "MA_M2F_0706_R",
- "Mouse kidney M430v2 Female (Aug06) RMA"
- ],
- [
"240",
"MA_M2M_0706_R",
"Mouse kidney M430v2 Male (Aug06) RMA"
],
[
+ "239",
+ "MA_M2F_0706_R",
+ "Mouse kidney M430v2 Female (Aug06) RMA"
+ ],
+ [
"118",
"MA_M2_0806_R",
"Mouse kidney M430v2 Sex Balanced (Aug06) RMA"
@@ -2692,6 +2692,11 @@
"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",
"EPFL/LISP BXD HFC Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level"
@@ -2702,11 +2707,6 @@
"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",
"EPFL/LISP BXD CD+HFD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level"
@@ -3121,6 +3121,13 @@
]
},
"BXD-Harvested": {
+ "Hippocampus mRNA": [
+ [
+ "873",
+ "JAX-BXD-Hip-Pro-0219",
+ "JAX BXD Hippocampal Proteome (Feb19)"
+ ]
+ ],
"Liver mRNA": [
[
"843",
@@ -3539,11 +3546,6 @@
],
"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"
@@ -3564,6 +3566,11 @@
"Hippocampus Illumina RSS (Oct08) RankInv beta"
],
[
+ "213",
+ "Illum_LXS_Hipp_NOS_1008",
+ "Hippocampus Illumina NOS (Oct08) RankInv beta"
+ ],
+ [
"143",
"Illum_LXS_Hipp_loess0807",
"Hippocampus Illumina (Aug07) LOESS"
@@ -5333,6 +5340,10 @@
"Phenotypes"
],
[
+ "Hippocampus mRNA",
+ "Hippocampus mRNA"
+ ],
+ [
"Liver mRNA",
"Liver mRNA"
]
diff --git a/wqflask/wqflask/static/new/javascript/get_covariates_from_collection.js b/wqflask/wqflask/static/new/javascript/get_covariates_from_collection.js
index f2e694d8..fc6e5a78 100644
--- a/wqflask/wqflask/static/new/javascript/get_covariates_from_collection.js
+++ b/wqflask/wqflask/static/new/javascript/get_covariates_from_collection.js
@@ -2,12 +2,65 @@
var add_trait_data, assemble_into_json, back_to_collections, collection_click, collection_list, color_by_trait, create_trait_data_csv, get_this_trait_vals, get_trait_data, process_traits, selected_traits, submit_click, this_trait_data, trait_click,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-collection_list = null;
-
this_trait_data = null;
selected_traits = {};
+$('#collections_list').attr("style", "width: 100%;");
+$('#trait_table').dataTable( {
+ "drawCallback": function( settings ) {
+ $('#trait_table tr').click(function(event) {
+ if (event.target.type !== 'checkbox') {
+ $(':checkbox', this).trigger('click');
+ }
+ });
+ },
+ "columns": [
+ { "type": "natural", "width": "3%" },
+ { "type": "natural", "width": "8%" },
+ { "type": "natural", "width": "20%" },
+ { "type": "natural", "width": "25%" },
+ { "type": "natural", "width": "25%" },
+ { "type": "natural", "width": "15%" }
+ ],
+ "columnDefs": [ {
+ "targets": 0,
+ "orderable": false
+ } ],
+ "order": [[1, "asc" ]],
+ "sDom": "RZtr",
+ "iDisplayLength": -1,
+ "autoWidth": true,
+ "bDeferRender": true,
+ "bSortClasses": false,
+ "paging": false,
+ "orderClasses": true
+} );
+
+$('#collection_table').dataTable( {
+ "createdRow": function ( row, data, index ) {
+ if ($('td', row).eq(2).text().length > 40) {
+ $('td', row).eq(2).text($('td', row).eq(2).text().substring(0, 40));
+ $('td', row).eq(2).text($('td', row).eq(2).text() + '...')
+ }
+ if ($('td', row).eq(4).text().length > 50) {
+ $('td', row).eq(4).text($('td', row).eq(4).text().substring(0, 50));
+ $('td', row).eq(4).text($('td', row).eq(4).text() + '...')
+ }
+ },
+ "columnDefs": [ {
+ "targets": 0,
+ "orderable": false
+ } ],
+ "order": [[1, "asc" ]],
+ "sDom": "ZRtr",
+ "iDisplayLength": -1,
+ "autoWidth": true,
+ "bSortClasses": false,
+ "paging": false,
+ "orderClasses": true
+} );
+
collection_click = function() {
var this_collection_url;
console.log("Clicking on:", $(this));
@@ -28,16 +81,20 @@ submit_click = function() {
$('#collections_holder').find('input[type=checkbox]:checked').each(function() {
var this_dataset, this_trait;
this_trait = $(this).parents('tr').find('.trait').text();
+ this_description = $(this).parents('tr').find('.description').text();
console.log("this_trait is:", this_trait);
- this_dataset = $(this).parents('tr').find('.dataset').text();
+ this_dataset = $(this).parents('tr').find('.dataset').data("dataset");
console.log("this_dataset is:", this_dataset);
covariates_string += this_trait + ":" + this_dataset + ","
- covariates_display_string += this_trait + "\n"
+ this_covariate_display_string = this_trait + ": " + this_description
+ if (this_covariate_display_string.length > 50) {
+ this_covariate_display_string = this_covariate_display_string.substring(0, 45) + "..."
+ }
+ covariates_display_string += this_covariate_display_string + "\n"
});
// Trim the last comma
covariates_string = covariates_string.substring(0, covariates_string.length - 1)
//covariates_display_string = covariates_display_string.substring(0, covariates_display_string.length - 2)
- console.log("COVARIATES:", covariates_string)
$("input[name=covariates]").val(covariates_string)
$(".selected_covariates").val(covariates_display_string)
@@ -125,17 +182,16 @@ process_traits = function(trait_data, textStatus, jqXHR) {
the_html = "<button id='back_to_collections' class='btn btn-inverse btn-small'>";
the_html += "<i class='icon-white icon-arrow-left'></i> Back </button>";
the_html += " <button id='submit' class='btn btn-primary btn-small'> Submit </button>";
- the_html += "<table class='table table-hover'>";
- the_html += "<thead><tr><th></th><th>Record</th><th>Data Set</th><th>Description</th><th>Mean</th></tr></thead>";
+ the_html += "<table id='collection_table' style='padding-top: 10px;' class='table table-hover'>";
+ the_html += "<thead><tr><th></th><th>Record</th><th>Data Set</th><th>Description</th></tr></thead>";
the_html += "<tbody>";
for (_i = 0, _len = trait_data.length; _i < _len; _i++) {
trait = trait_data[_i];
the_html += "<tr class='trait_line'>";
the_html += "<td class='select_trait'><input type='checkbox' name='selectCheck' class='checkbox edit_sample_checkbox'></td>";
the_html += "<td class='trait'>" + trait.name + "</td>";
- the_html += "<td class='dataset'>" + trait.dataset + "</td>";
- the_html += "<td>" + trait.description + "</td>";
- the_html += "<td>" + (trait.mean || '&nbsp;') + "</td></tr>";
+ the_html += "<td class='dataset' data-dataset='" + trait.dataset + "'>" + trait.dataset_name + "</td>";
+ the_html += "<td class='description'>" + trait.description + "</td>";
}
the_html += "</tbody>";
the_html += "</table>";
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 210945f0..bcb67527 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -2,8 +2,6 @@ var Stat_Table_Rows, is_number,
__hasProp = {}.hasOwnProperty,
__slice = [].slice;
-console.log("start_b");
-
is_number = function(o) {
return !isNaN((o - 0) && o !== null);
};
@@ -65,7 +63,6 @@ var add, block_by_attribute_value, block_by_index, block_outliers, change_stats_
add = function() {
var trait;
trait = $("input[name=trait_hmac]").val();
- console.log("trait is:", trait);
return $.colorbox({
href: "/collections/add?traits=" + trait
});
@@ -100,9 +97,7 @@ open_trait_selection = function() {
inline: true,
href: "#collections_holder",
onComplete: function(){
- console.log("before get script")
$.getScript("/static/new/javascript/get_traits_from_collection.js");
- console.log("after get script")
}
});
return $('a.collection_name').attr('onClick', 'return false');
@@ -115,10 +110,10 @@ open_covariate_selection = function() {
$.colorbox({
inline: true,
href: "#collections_holder",
+ width: "1000px",
+ height: "700px",
onComplete: function(){
- console.log("before get cov script")
$.getScript("/static/new/javascript/get_covariates_from_collection.js");
- console.log("after get cov script")
}
});
return $('a.collection_name').attr('onClick', 'return false');
@@ -142,21 +137,16 @@ stats_mdp_change = function() {
change_stats_value = function(sample_sets, category, value_type, decimal_places, effects) {
var current_value, id, in_box, the_value, title_value;
id = "#" + process_id(category, value_type);
- console.log("the_id:", id);
in_box = $(id).html;
current_value = parseFloat($(in_box)).toFixed(decimal_places);
the_value = sample_sets[category][value_type]();
- console.log("After running sample_sets, the_value is:", the_value);
if (decimal_places > 0) {
title_value = the_value.toFixed(decimal_places * 2);
the_value = the_value.toFixed(decimal_places);
} else {
title_value = null;
}
- console.log("*-* the_value:", the_value);
- console.log("*-* current_value:", current_value);
if (the_value !== current_value) {
- console.log("object:", $(id).html(the_value));
if (effects) {
$(id).html(the_value).effect("highlight");
} else {
@@ -179,7 +169,6 @@ update_stat_values = function(sample_sets) {
_results1 = [];
for (_j = 0, _len1 = Stat_Table_Rows.length; _j < _len1; _j++) {
row = Stat_Table_Rows[_j];
- console.log("Calling change_stats_value");
_results1.push(change_stats_value(sample_sets, category, row.vn, row.digits, show_effects));
}
return _results1;
@@ -356,7 +345,6 @@ process_id = function() {
processed = "";
for (_i = 0, _len = values.length; _i < _len; _i++) {
value = values[_i];
- console.log("value:", value);
value = value.replace(" ", "_");
if (processed.length) {
processed += "-";
@@ -378,7 +366,6 @@ edit_data_change = function() {
samples_other: {},
samples_all: {}
};
- console.log("at beginning:", sample_sets);
tables = ['samples_primary', 'samples_other'];
for (_i = 0, _len = tables.length; _i < _len; _i++) {
table = tables[_i];
@@ -412,39 +399,30 @@ edit_data_change = function() {
}
}
}
- console.log("towards end:", sample_sets);
update_stat_values(sample_sets);
if ($('#histogram').hasClass('js-plotly-plot')){
- console.log("redrawing histogram");
redraw_histogram();
}
if ($('#bar_chart').hasClass('js-plotly-plot')){
- console.log("redrawing bar chart");
redraw_bar_chart();
}
if ($('#box_plot').hasClass('js-plotly-plot')){
- console.log("redrawing box plot");
redraw_box_plot();
}
if ($('#violin_plot').hasClass('js-plotly-plot')){
- console.log("redrawing violin plot");
redraw_violin_plot();
}
if ($('#prob_plot_div').hasClass('js-plotly-plot')){
- console.log("redrawing probability plot");
return redraw_prob_plot();
}
};
show_hide_outliers = function() {
var label;
- console.log("FOOBAR in beginning of show_hide_outliers");
label = $('#show_hide_outliers').val();
- console.log("lable is:", label);
if (label === "Hide Outliers") {
return $('#show_hide_outliers').val("Show Outliers");
} else if (label === "Show Outliers") {
- console.log("Found Show Outliers");
$('#show_hide_outliers').val("Hide Outliers");
return console.log("Should be now Hide Outliers");
}
@@ -452,7 +430,6 @@ show_hide_outliers = function() {
on_corr_method_change = function() {
var corr_method;
corr_method = $('select[name=corr_type]').val();
- console.log("corr_method is:", corr_method);
$('.correlation_desc').hide();
$('#' + corr_method + "_r_desc").show().effect("highlight");
if (corr_method === "lit") {
@@ -487,7 +464,6 @@ create_value_dropdown = function(value) {
};
populate_sample_attributes_values_dropdown = function() {
var attribute_info, key, sample_attributes, selected_attribute, value, _i, _len, _ref, _ref1, _results;
- console.log("in beginning of psavd");
$('#attribute_values').empty();
sample_attributes = {};
_ref = js_data.attribute_names;
@@ -496,9 +472,7 @@ populate_sample_attributes_values_dropdown = function() {
attribute_info = _ref[key];
sample_attributes[attribute_info.name] = attribute_info.distinct_values;
}
- console.log("[visa] attributes is:", sample_attributes);
selected_attribute = $('#exclude_menu').val().replace("_", " ");
- console.log("selected_attribute is:", selected_attribute);
_ref1 = sample_attributes[selected_attribute];
_results = [];
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
@@ -507,7 +481,7 @@ populate_sample_attributes_values_dropdown = function() {
}
return _results;
};
-if (js_data.attribute_names.length > 0) {
+if (Object.keys(js_data.attribute_names).length > 0) {
populate_sample_attributes_values_dropdown();
}
$('#exclude_menu').change(populate_sample_attributes_values_dropdown);
@@ -547,21 +521,15 @@ block_by_index = function() {
}
} else {
index = parseInt(index_set);
- console.log("index:", index);
index_list.push(index);
}
}
- console.log("index_list:", index_list);
_results = [];
for (_k = 0, _len1 = index_list.length; _k < _len1; _k++) {
index = index_list[_k];
if ($('#block_group').val() === "primary") {
- console.log("block_group:", $('#block_group').val());
- console.log("row:", $('#Primary_' + index.toString()));
_results.push($('#Primary_' + index.toString()).find('.trait_value_input').val("x"));
} else if ($('#block_group').val() === "other") {
- console.log("block_group:", $('#block_group').val());
- console.log("row:", $('#Other_' + index.toString()));
_results.push($('#Other_' + index.toString()).find('.trait_value_input').val("x"));
} else {
_results.push(void 0);
@@ -592,9 +560,7 @@ reset_samples_table = function() {
$('input[name="transform"]').val("");
return $('.trait_value_input').each((function(_this) {
return function(_index, element) {
- console.log("value is:", $(element).val());
$(element).val($(element).data('value'));
- console.log("data-value is:", $(element).data('value'));
return $(element).parents('.value_se').show();
};
})(this));
@@ -629,6 +595,21 @@ sqrt_normalize_data = function() {
})(this));
};
+invert_data = function() {
+ return $('.edit_sample_value').each((function(_this) {
+ return function(_index, element) {
+ current_value = parseFloat($(element).val());
+ if(isNaN(current_value)) {
+ return current_value
+ } else {
+ $(element).val(-(current_value));
+ return -(current_value)
+ }
+ };
+ })(this));
+};
+
+
qnorm_data = function() {
return $('.edit_sample_value').each((function(_this) {
return function(_index, element) {
@@ -656,6 +637,9 @@ normalize_data = function() {
$('input[name="transform"]').val("sqrt")
}
}
+ else if ($('#norm_method option:selected').val() == 'invert'){
+ invert_data()
+ }
else if ($('#norm_method option:selected').val() == 'qnorm'){
if ($('input[name="transform"]').val() != "qnorm") {
qnorm_data()
@@ -696,7 +680,6 @@ get_sample_table_data = function(table_name) {
attribute_info = _ref[key];
row_data[attribute_info.name] = $.trim($(element).find('.column_name-' + attribute_info.name.replace(" ", "_")).text());
}
- console.log("row_data is:", row_data);
return samples.push(row_data);
};
})(this));
@@ -707,18 +690,14 @@ export_sample_table_data = function() {
sample_data = {};
sample_data.primary_samples = get_sample_table_data('samples_primary');
sample_data.other_samples = get_sample_table_data('samples_other');
- console.log("sample_data is:", sample_data);
json_sample_data = JSON.stringify(sample_data);
- console.log("json_sample_data is:", json_sample_data);
$('input[name=export_data]').val(json_sample_data);
- console.log("export_data is", $('input[name=export_data]').val());
format = $('input[name=export_format]').val();
if (format === "excel") {
$('#trait_data_form').attr('action', '/export_trait_excel');
} else {
$('#trait_data_form').attr('action', '/export_trait_csv');
}
- console.log("action is:", $('#trait_data_form').attr('action'));
return $('#trait_data_form').submit();
};
@@ -728,9 +707,7 @@ $('.export_format').change(function() {
});
$('.export').click(export_sample_table_data);
-console.log("before registering block_outliers");
$('#block_outliers').click(block_outliers);
-console.log("after registering block_outliers");
_.mixin(_.str.exports());
get_sample_vals = function(sample_list) {
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index 36a25665..31a5b94e 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -117,7 +117,7 @@
</form>
<br />
- <div id="table_container">
+ <div id="table_container" style="width: 1400px;">
<table class="table-hover table-striped cell-border" id='trait_table' style="float: left;">
<tbody>
<td colspan="100%" align="center"><br><b><font size="15">Loading...</font></b><br></td>
@@ -224,10 +224,6 @@
}
$('td', row).eq(4).attr('title', $('td', row).eq(4).text());
$('td', row).eq(4).attr('data-export', $('td', row).eq(4).text());
- if ($('td', row).eq(4).text().length > 55) {
- $('td', row).eq(4).text($('td', row).eq(4).text().substring(0, 55));
- $('td', row).eq(4).text($('td', row).eq(4).text() + '...')
- }
$('td', row).slice(6,10).attr("align", "right");
$('td', row).eq(5).attr('data-export', $('td', row).eq(5).text());
$('td', row).eq(6).attr('data-export', $('td', row).eq(6).text());
@@ -237,16 +233,8 @@
{% elif dataset.type == 'Publish' %}
$('td', row).eq(3).attr('title', $('td', row).eq(3).text());
$('td', row).eq(3).attr('data-export', $('td', row).eq(3).text());
- if ($('td', row).eq(3).text().length > 20) {
- $('td', row).eq(3).text($('td', row).eq(3).text().substring(0, 20));
- $('td', row).eq(3).text($('td', row).eq(3).text() + '...')
- }
$('td', row).eq(4).attr('title', $('td', row).eq(4).text());
$('td', row).eq(4).attr('data-export', $('td', row).eq(4).text());
- if ($('td', row).eq(4).text().length > 55) {
- $('td', row).eq(4).text($('td', row).eq(4).text().substring(0, 55));
- $('td', row).eq(4).text($('td', row).eq(4).text() + '...')
- }
$('td', row).slice(6,9).attr("align", "right");
$('td', row).eq(5).attr('data-export', $('td', row).eq(5).text());
$('td', row).eq(6).attr('data-export', $('td', row).eq(6).text());
@@ -288,6 +276,7 @@
{
'title': "Description",
'type': "natural",
+ 'width': "500px",
'data': "description"
},
{
@@ -321,11 +310,13 @@
{
'title': "Description",
'type': "natural",
+ 'width': "500px",
'data': "description"
},
{
'title': "Authors",
'type': "natural",
+ 'width': "300px",
'data': "authors"
},
{
@@ -351,17 +342,20 @@
{
'title': "Max LRS Location",
'type': "natural",
+ 'width': "160px",
'data': "lrs_location"
},
{
- 'title': "Additive Effect<a href=\"http://genenetwork.org//glossary.html#A\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
+ 'title': "Additive<br>Effect<a href=\"http://genenetwork.org//glossary.html#A\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
'type': "natural",
+ 'width': "100px",
'data': "additive",
'orderSequence': [ "desc", "asc"]
}{% elif dataset.type == 'Geno' %},
{
'title': "Location",
'type': "natural",
+ 'width': "160px",
'data': "location"
}{% endif %}
],
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index def40f5d..9d2cb7ed 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -10,7 +10,6 @@
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/noUiSlider/nouislider.css" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/noUiSlider/nouislider.pips.css" />
- <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
@@ -142,7 +141,6 @@
<script type="text/javascript" src="/static/new/javascript/scatter-matrix.js"></script>
<script type="text/javascript" src="/static/new/javascript/plotly_probability_plot.js"></script>
<script type="text/javascript" src="/static/new/javascript/compare_traits_scatterplot.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/get_covariates_from_collection.js"></script>
<script type="text/javascript" src="/static/new/javascript/show_trait_mapping_tools.js"></script>
<script type="text/javascript" src="/static/new/javascript/show_trait.js"></script>
@@ -152,6 +150,8 @@
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.scientific.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/noUiSlider/nouislider.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/new/javascript/get_covariates_from_collection.js"></script>
+
<script type="text/javascript" charset="utf-8">
$.fn.dataTable.ext.order['dom-checkbox'] = function ( settings, col )
@@ -177,6 +177,22 @@
}
});
+ //ZS: This variable is just created to get the column position of the first case attribute, since it's needed to set the row classes in createdRow for the DataTable
+ {% if sample_groups[0].attributes|length > 0 %}
+ {% if sample_groups[0].se_exists() %}
+ {% if has_num_cases %}
+ attribute_start_pos = 6
+ {% else %}
+ attribute_start_pos = 5
+ {% endif %}
+ {% else %}
+ {% if has_num_cases %}
+ attribute_start_pos = 4
+ {% else %}
+ attribute_start_pos = 3
+ {% endif %}
+ {% endif %}
+ {% endif %}
$('#samples_primary').DataTable( {
'initComplete': function(settings, json) {
@@ -210,6 +226,11 @@
$('td', row).eq(4).addClass("column_name-num_cases")
$('td', row).eq(4).attr("style", "text-align: right; padding-top: 2px; padding-bottom: 0px;");
{% endif %} {% endif %}
+ {% if sample_groups[0].attributes|length > 0 %}
+ {% for attribute in sample_groups[0].attributes|sort() %}
+ $('td', row).eq(attribute_start_pos + {{ loop.index }}).addClass("column_name-{{ sample_groups[0].attributes[attribute].name }}")
+ {% endfor %}
+ {% endif %}
},
'data': js_data['sample_lists'][0],
'columns': [
@@ -335,6 +356,11 @@
$('td', row).eq(4).addClass("column_name-num_cases")
$('td', row).eq(4).attr("style", "text-align: right; padding-top: 2px; padding-bottom: 0px;");
{% endif %} {% endif %}
+ {% if sample_groups[1].attributes|length > 0 %}
+ {% for attribute in sample_groups[1].attributes|sort() %}
+ $('td', row).eq(attribute_start_pos + {{ loop.index }}).addClass("column_name-{{ sample_groups[1].attributes[attribute].name }}")
+ {% endfor %}
+ {% endif %}
},
'data': js_data['sample_lists'][1],
'columns': [
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index e7f3eca3..e79cf1ab 100644
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -89,7 +89,7 @@
<button type="button" id="select_covariates" class="btn btn-default">Select</button>
<button type="button" id="remove_covariates" class="btn btn-default">Remove</button>
</div>
- <textarea rows="3" cols="20" readonly placeholder="No covariates selected" style="overflow-y: scroll; resize: none;" class="selected_covariates"></textarea>
+ <textarea rows="3" cols="50" readonly placeholder="No covariates selected" style="overflow-y: scroll; resize: none;" class="selected_covariates"></textarea>
{% endif %}
{% elif g.cookie_session.display_num_collections() == "" %}
No collections available. Please add traits to a collection to use them as covariates.
diff --git a/wqflask/wqflask/templates/show_trait_transform_and_filter.html b/wqflask/wqflask/templates/show_trait_transform_and_filter.html
index d1765778..04ceaeaf 100644
--- a/wqflask/wqflask/templates/show_trait_transform_and_filter.html
+++ b/wqflask/wqflask/templates/show_trait_transform_and_filter.html
@@ -54,6 +54,7 @@
<option value="log2">Log2</option>
<option value="qnorm">Quantile</option>
<option value="sqrt">Square Root</option>
+ <option value="invert">Invert +/-</option>
</select>
</div>
<!--