aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Sloan2012-10-05 16:40:09 -0500
committerZachary Sloan2012-10-05 16:40:09 -0500
commit370648d8303e278482e59322d83d9bd42ca84a4e (patch)
tree4867c6360fae70a682bddd58402d3d6224a6484e
parent890427d945da9d25b1eb204fac2fd49dd07685c9 (diff)
downloadgenenetwork2-370648d8303e278482e59322d83d9bd42ca84a4e.tar.gz
Began changes to search result page python code
-rw-r--r--wqflask/wqflask/search_results.py72
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.coffee58
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js53
-rw-r--r--wqflask/wqflask/templates/show_trait.html22
4 files changed, 149 insertions, 56 deletions
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index d393d0c1..a9972349 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -771,37 +771,40 @@ class SearchResultPage(templatePage):
DescriptionText = self.ORDescriptionText
itemCmd = item[0]
- lowerLimit = float(item[1])
- upperLimit = float(item[2])
+ lower_limit = float(item[1])
+ upper_limit = float(item[2])
if itemCmd.upper() in ("TRANSLRS", "CISLRS"):
if item[3]:
mthresh = float(item[3])
clauseItem = " %sXRef.LRS > %2.7f and %sXRef.LRS < %2.7f " % \
- (self.dbType, min(lowerLimit, upperLimit), self.dbType, max(lowerLimit, upperLimit))
+ (self.dbType, min(lower_limit, upper_limit), self.dbType, max(lower_limit, upper_limit))
if itemCmd.upper() == "CISLRS":
clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and %s.Chr = Geno.Chr and ABS(%s.Mb-Geno.Mb) < %2.7f """ % (self.dbType, self.speciesId, self.dbType, self.dbType, mthresh)
- DescriptionText.append(HT.Span(' with a ', HT.U('cis-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit), mthresh)))
+ DescriptionText.append(HT.Span(' with a ', HT.U('cis-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit), mthresh)))
else:
clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and (%s.Chr != Geno.Chr or (%s.Chr != Geno.Chr and ABS(%s.Mb-Geno.Mb) > %2.7f)) """ % (self.dbType, self.speciesId, self.dbType, self.dbType, self.dbType, mthresh)
- DescriptionText.append(HT.Span(' with a ', HT.U('trans-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit), mthresh)))
+ DescriptionText.append(HT.Span(' with a ', HT.U('trans-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit), mthresh)))
query.append(" (%s) " % clauseItem)
self.orderByDefalut = "LRS"
else:
pass
elif itemCmd.upper() in ("RANGE"):
#XZ, 03/05/2009: Xiaodong changed Data to ProbeSetData
- clauseItem = " (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) > %2.7f and (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) < %2.7f " % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit))
+ clauseItem = " (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) > %2.7f and (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) < %2.7f " % (min(lower_limit, upper_limit), max(lower_limit, upper_limit))
query.append(" (%s) " % clauseItem)
- DescriptionText.append(HT.Span(' with a range of expression that varied between %g and %g' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit)), " (fold difference)"))
+ DescriptionText.append(HT.Span(' with a range of expression that varied between %g and %g' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit)), " (fold difference)"))
else:
clauseItem = " %sXRef.%s > %2.7f and %sXRef.%s < %2.7f " % \
- (self.dbType, itemCmd, min(lowerLimit, upperLimit), self.dbType, itemCmd, max(lowerLimit, upperLimit))
+ (self.dbType, itemCmd, min(lower_limit, upper_limit), self.dbType, itemCmd, max(lower_limit, upper_limit))
query.append(" (%s) " % clauseItem)
self.orderByDefalut = itemCmd
- DescriptionText.append(HT.Span(' with ', HT.U(itemCmd), ' between %g and %g' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit))))
+ DescriptionText.append(HT.Span(' with ', HT.U(itemCmd), ' between %g and %g' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit))))
for k, item in enumerate(m3_OR+m3_AND):
+ print("enumerating m3_OR+m3_AND with k: %s - item %s" % (k, item))
+ if self.dbType not in ("ProbeSet", "Geno"):
+ continue
if k >=len(m3_OR):
query = self.ANDQuery
DescriptionText = self.ANDDescriptionText
@@ -809,23 +812,32 @@ class SearchResultPage(templatePage):
query = self.ORQuery
DescriptionText = self.ORDescriptionText
itemCmd = item[0]
- chrsch = item[1]
- lowerLimit = float(item[2])
- upperLimit = float(item[3])
- fname = 'target genes'
+
+
+ chr_number = item[1] # chromosome number
+ lower_limit = float(item[2])
+ upper_limit = float(item[3])
+
if self.dbType == "ProbeSet":
- clauseItem = " %s.Chr = '%s' and %s.Mb > %2.7f and %s.Mb < %2.7f " % \
- (self.dbType, chrsch, self.dbType, min(lowerLimit, upperLimit), self.dbType, max(lowerLimit, upperLimit))
+ fname = 'target genes'
elif self.dbType == "Geno":
fname = 'loci'
- clauseItem = " %s.Chr = '%s' and %s.Mb > %2.7f and %s.Mb < %2.7f " % \
- (self.dbType, chrsch, self.dbType, min(lowerLimit, upperLimit), self.dbType, max(lowerLimit, upperLimit))
- else:
- continue
+
+ if lower_limit > upper_limit:
+ lower_limit, upper_limit = upper_limit, lower_limit
+
+
+
+ clauseItem = " %s.Chr = '%s' and %s.Mb > %2.7f and %s.Mb < %2.7f " % (
+ self.dbType, chr_number, self.dbType, lower_limit, self.dbType, upper_limit)
+
+
query.append(" (%s) " % clauseItem)
self.orderByDefalut = itemCmd
- DescriptionText.append(HT.Span(' with ', HT.U('target genes'), ' on chromosome %s between %g and %g Mb' % \
- (chrsch, min(lowerLimit, upperLimit), max(lowerLimit, upperLimit))))
+
+ self.results_desc = dict()
+ #DescriptionText.append(HT.Span(' with ', HT.U('target genes'), ' on chromosome %s between %g and %g Mb' % \
+ # (chr_number, min(lower_limit, upper_limit), max(lower_limit, upper_limit))))
for k, item in enumerate(m5_OR+m5_AND):
if k >=len(m5_OR):
@@ -835,22 +847,22 @@ class SearchResultPage(templatePage):
query = self.ORQuery
DescriptionText = self.ORDescriptionText
itemCmd = item[0]
- lowerLimit = float(item[1])
- upperLimit = float(item[2])
- chrsch = item[3]
- MblowerLimit = float(item[4])
- MbupperLimit = float(item[5])
+ lower_limit = float(item[1])
+ upper_limit = float(item[2])
+ chr_number = item[3]
+ mb_lower_limit = float(item[4])
+ mb_upper_limit = float(item[5])
if self.dbType == "ProbeSet" or self.dbType == "Publish":
clauseItem = " %sXRef.LRS > %2.7f and %sXRef.LRS < %2.7f " % \
- (self.dbType, min(lowerLimit, upperLimit), self.dbType, max(lowerLimit, upperLimit))
+ (self.dbType, min(lower_limit, upper_limit), self.dbType, max(lower_limit, upper_limit))
clauseItem += " and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and Geno.Chr = '%s' and Geno.Mb > %2.7f and Geno.Mb < %2.7f" \
- % (self.dbType, self.speciesId, chrsch, min(MblowerLimit, MbupperLimit), max(MblowerLimit, MbupperLimit))
+ % (self.dbType, self.speciesId, chr_number, min(mb_lower_limit, mb_upper_limit), max(mb_lower_limit, mb_upper_limit))
query.append(" (%s) " % clauseItem)
self.orderByDefalut = "MB"
DescriptionText.append(HT.Span(' with ', HT.U('LRS'), ' between %g and %g' % \
- (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit)), \
+ (min(lower_limit, upper_limit), max(lower_limit, upper_limit)), \
' on chromosome %s between %g and %g Mb' % \
- (chrsch, min(MblowerLimit, MbupperLimit), max(MblowerLimit, MbupperLimit))))
+ (chr_number, min(mb_lower_limit, mb_upper_limit), max(mb_lower_limit, mb_upper_limit))))
pass
return 1
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.coffee b/wqflask/wqflask/static/new/javascript/show_trait.coffee
index 29489fb9..b89e15ce 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.coffee
+++ b/wqflask/wqflask/static/new/javascript/show_trait.coffee
@@ -196,28 +196,56 @@ $ ->
exclude_by_value = $('#attribute_values').val()
cell_class = ".column_name-#{attribute_name}"
- $(cell_class).each (index, element)=>
+ $(cell_class).each (index, element) =>
if $.trim($(element).text()) == exclude_by_value
row = $(element).parent('tr')
$(row).find(".trait_value_input").val("x")
-
- #sample_lists = js_data['sample_lists']
- #console.log("sample_lists is:", sample_lists)
- #for sample_list in sample_lists
- # for sample in sample_list
- # console.log("sample is:", sample)
- # if sample.extra_attributes[attribute_name] == exclude_by_value
- # console.log("is exclude_by_value")
- # console.log("sample.name is:", sample.name)
- # attr_cell = $('td:contains('+sample.name+')').parent().find('td.column_name-'+ attribute_name)
- # console.log("attr_cell is:", attr_cell)
- # value_cell = attr_cell.parent().find('td.column_name-Value')
- # value_cell.children('input').val("x")
-
$('#exclude_group').click(block_by_attribute_value)
##End Block Samples By Attribute Value Code
+
+ ##Block Samples By Index Code
+ block_by_index = ->
+ index_string = $('#remove_samples_field').val()
+ console.log("index_string is:", index_string)
+ index_list = []
+ for index_set in index_string.split(",")
+ if index_set.indexOf('-') != -1
+ try
+ start_index = parseInt(index_set.split("-")[0])
+ console.log("start_index:", start_index)
+ end_index = parseInt(index_set.split("-")[1])
+ console.log("end_index:", end_index)
+ index_list.push(index) for index in [start_index..end_index]
+ catch error
+ alert("Syntax error")
+ else
+ #try
+ index = parseInt(index_set)
+ console.log("index:", index)
+ index_list.push(index)
+ #catch(erro)
+ # alert("Syntax error")
+ console.log("index_list:", index_list)
+ for index in index_list
+ if $('#block_group').val() == "primary"
+ console.log("block_group:", $('#block_group').val())
+ console.log("row:", $('#Primary_'+index.toString()))
+ $('#Primary_'+index.toString()).find('.trait_value_input').val("x")
+ else if $('#block_group').val() == "other"
+ $('#Other_'+index.toString()).find('.trait_value_input').val("x")
+
+ $('#remove_samples_field').validate(
+ rules:
+ field:
+ required: true
+ number: true
+ )
+
+ $('#block_by_index').click(block_by_index)
+
+ ##End Block Samples By Index Code
console.log("before registering show_hide_outliers")
$('#show_hide_outliers').click(show_hide_outliers)
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index a5582519..6d3dee13 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -11,7 +11,7 @@
};
$(function() {
- var block_by_attribute_value, change_stats_value, create_value_dropdown, edit_data_change, hide_tabs, make_table, on_corr_method_change, populate_sample_attributes_values_dropdown, process_id, show_hide_outliers, stats_mdp_change, update_stat_values;
+ var block_by_attribute_value, block_by_index, change_stats_value, create_value_dropdown, edit_data_change, hide_tabs, make_table, on_corr_method_change, populate_sample_attributes_values_dropdown, process_id, show_hide_outliers, stats_mdp_change, update_stat_values;
hide_tabs = function(start) {
var x, _i, _results;
_results = [];
@@ -238,6 +238,57 @@
});
};
$('#exclude_group').click(block_by_attribute_value);
+ block_by_index = function() {
+ var end_index, index, index_list, index_set, index_string, start_index, _i, _j, _k, _len, _len1, _ref, _results;
+ index_string = $('#remove_samples_field').val();
+ console.log("index_string is:", index_string);
+ index_list = [];
+ _ref = index_string.split(",");
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ index_set = _ref[_i];
+ if (index_set.indexOf('-') !== -1) {
+ try {
+ start_index = parseInt(index_set.split("-")[0]);
+ console.log("start_index:", start_index);
+ end_index = parseInt(index_set.split("-")[1]);
+ console.log("end_index:", end_index);
+ for (index = _j = start_index; start_index <= end_index ? _j <= end_index : _j >= end_index; index = start_index <= end_index ? ++_j : --_j) {
+ index_list.push(index);
+ }
+ } catch (error) {
+ alert("Syntax error");
+ }
+ } 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") {
+ _results.push($('#Other_' + index.toString()).find('.trait_value_input').val("x"));
+ } else {
+ _results.push(void 0);
+ }
+ }
+ return _results;
+ };
+ $('#remove_samples_field').validate({
+ rules: {
+ field: {
+ required: true,
+ number: true
+ }
+ }
+ });
+ $('#block_by_index').click(block_by_index);
console.log("before registering show_hide_outliers");
$('#show_hide_outliers').click(show_hide_outliers);
console.log("after registering show_hide_outliers");
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index f85cf98e..5a364f8b 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -1214,18 +1214,19 @@
<div style=
"border: 3px solid #EEEEEE; -moz-border-radius: 10px; -webkit-border-radius: 10px; width: 625px; padding: 5px 5px 10px 8px; font-size: 12px; background: #DDDDDD;">
<span id="showHideOptions" style="line-height:225%;"><strong>&nbsp;&nbsp;Block samples by index:&nbsp;&nbsp;&nbsp;&nbsp;</strong>
- <input type="text" name="removeField" style=
- "background-color:white;border: 1px solid black;font-size: 14px;">&nbsp;&nbsp;&nbsp;<span id="blockMenuSpan"><select name=
- "block_method" size="1">
- <option value="1">
- BXD Only
+ <input type="text" id="remove_samples_field" style=
+ "background-color:white;border: 1px solid black;font-size: 14px;">&nbsp;&nbsp;&nbsp;
+ <span id="blockMenuSpan">
+ <select id="block_group" size="1">
+ <option value="primary">
+ {{ sample_group_types['primary_only'] }}
</option>
-
- <option value="0">
- Non-BXD Only
+ <option value="other">
+ {{ sample_group_types['other_only'] }}
</option>
- </select></span> &nbsp;&nbsp;&nbsp;
- <input type="button" name="blockSamples" class="button" value=" Block ">
+ </select>
+ </span> &nbsp;&nbsp;&nbsp;
+ <input type="button" id="block_by_index" class="button" value=" Block ">
<br>
{% if sample_groups[0].attributes %}
@@ -1362,6 +1363,7 @@
<script type="text/javascript" src="/static/new/js_external/underscore-min.js"></script>-->
<script type="text/javascript" src="/static/new/js_external/underscore.string.min.js"></script>
+ <script type="text/javascript" src="/static/new/packages/ValidationPlugin/dist/jquery.validate.min.js"></script>
<script type="text/javascript" src="/static/new/javascript/stats.js"></script>
<script type="text/javascript" src="/static/new/javascript/show_trait.js"></script>