aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Sloan2012-09-13 16:10:27 -0500
committerZachary Sloan2012-09-13 16:10:27 -0500
commita979480aae5eaa056c84dc3cb05a5e2443c4fbd0 (patch)
tree77ca8ba9963de1c7cdcde55e9dc36f7f338db7fb
parentf1d7725c5f7529c5f587bab4ea89d3467b903ddb (diff)
downloadgenenetwork2-a979480aae5eaa056c84dc3cb05a5e2443c4fbd0.tar.gz
Worked on improving readData and informativeStrains functions in webqtlFormData while trying to get correlation page running
-rw-r--r--misc/notes.txt6
-rwxr-xr-xwqflask/base/webqtlFormData.py72
-rw-r--r--wqflask/wqflask/correlation/CorrelationPage.py18
-rw-r--r--wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee28
-rw-r--r--wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js11
-rw-r--r--wqflask/wqflask/templates/trait_data_and_analysis.html12
-rw-r--r--wqflask/wqflask/views.py6
7 files changed, 83 insertions, 70 deletions
diff --git a/misc/notes.txt b/misc/notes.txt
index be023c1d..9d31fb5d 100644
--- a/misc/notes.txt
+++ b/misc/notes.txt
@@ -36,6 +36,12 @@ coffee --help (for information about setting options)
===========================================
+Unset ASKPASS when trying to git push
+
+unset SSH_ASKPASS
+
+===========================================
+
Python stuff:
Classes should always inherit "object" \ No newline at end of file
diff --git a/wqflask/base/webqtlFormData.py b/wqflask/base/webqtlFormData.py
index 177c72a2..9f58d437 100755
--- a/wqflask/base/webqtlFormData.py
+++ b/wqflask/base/webqtlFormData.py
@@ -63,7 +63,7 @@ class webqtlFormData:
for item in start_vars:
self.__dict__[item] = start_vars[item]
- #print(" Now self.dict is:", pf(self.__dict__))
+ print(" Now self.dict is:", pf(self.__dict__))
#Todo: This can't be good below...rework
try:
@@ -216,6 +216,13 @@ class webqtlFormData:
#### Todo: Rewrite below when we get to someone submitting their own trait #####
+ def to_float(item):
+ try:
+ return float(item)
+ except ValueError:
+ return None
+
+ print("bottle strainlist is:", strainlist)
if traitfiledata:
tt = traitfiledata.split()
values = map(webqtlUtil.StringAsFloat, tt)
@@ -223,12 +230,17 @@ class webqtlFormData:
tt = traitpastedata.split()
values = map(webqtlUtil.StringAsFloat, tt)
else:
- values = map(self.FormDataAsFloat, strainlist)
+ print("mapping formdataasfloat")
+ #values = map(self.FormDataAsFloat, strainlist)
+ values = [to_float(getattr(self, key)) for key in strainlist]
+ print("rocket values is:", values)
+
if len(values) < len(strainlist):
values += [None] * (len(strainlist) - len(values))
elif len(values) > len(strainlist):
values = values[:len(strainlist)]
+ print("now values is:", values)
if variancefiledata:
@@ -257,40 +269,48 @@ class webqtlFormData:
self.allTraitData = {}
for i, _strain in enumerate(strainlist):
if values[i] != None:
- self.allTraitData[_strain] = webqtlCaseData(values[i], variances[i], nstrains[i])
+ self.allTraitData[_strain] = webqtlCaseData(
+ _strain, values[i], variances[i], nstrains[i])
+ print("allTraitData is:", pf(self.allTraitData))
- def informativeStrains(self, strainlst=[], incVars = 0):
- '''if readData was called, use this to output the informative strains
- (strain with values)'''
- if not strainlst:
- strainlst = self.strainlist
+ def informativeStrains(self, strainlist=None, include_variances = None):
+ '''if readData was called, use this to output informative strains (strain with values)'''
+
+ if not strainlist:
+ strainlist = self.strainlist
+
strains = []
- vals = []
- vars = []
- for _strain in strainlst:
- if self.allTraitData.has_key(_strain):
- _val, _var = self.allTraitData[_strain].val, self.allTraitData[_strain].var
+ values = []
+ variances = []
+
+ #print("self.allTraitData is:", pf(self.allTraitData))
+
+ for strain in strainlist:
+ if strain in self.allTraitData:
+ _val, _var = self.allTraitData[strain].value, self.allTraitData[strain].variance
if _val != None:
- if incVars:
+ if include_variances:
if _var != None:
- strains.append(_strain)
- vals.append(_val)
- vars.append(_var)
+ strains.append(strain)
+ values.append(_val)
+ variances.append(_var)
else:
- strains.append(_strain)
- vals.append(_val)
- vars.append(None)
- return strains, vals, vars, len(strains)
+ strains.append(strain)
+ values.append(_val)
+ variances.append(None)
+
+ return strains, values, variances, len(strains)
- def FormDataAsFloat(self, key):
- try:
- return float(self.formdata.getfirst(key))
- except:
- return None
+ #def FormDataAsFloat(self, key):
+ #
+ # #try:
+ # # return float(self.key)
+ # #except:
+ # # return None
def FormVarianceAsFloat(self, key):
diff --git a/wqflask/wqflask/correlation/CorrelationPage.py b/wqflask/wqflask/correlation/CorrelationPage.py
index 62e4c4ab..0af5297a 100644
--- a/wqflask/wqflask/correlation/CorrelationPage.py
+++ b/wqflask/wqflask/correlation/CorrelationPage.py
@@ -157,7 +157,7 @@ def get_correlation_method_key(form_data):
#XZ, 09/28/2008: if user select "4", then display 1, 3 and 4.
#XZ, 09/28/2008: if user select "5", then display 2, 3 and 5.
- method = form_data.formdata.getvalue("method")
+ method = form_data.method
if method not in ["1", "2", "3" ,"4", "5"]:
return "1"
@@ -166,7 +166,7 @@ def get_correlation_method_key(form_data):
def get_custom_trait(form_data, cursor):
"""Pulls the custom trait, if it exists, out of the form data"""
- trait_name = form_data.formdata.getvalue('fullname')
+ trait_name = form_data.fullname
if trait_name:
trait = webqtlTrait(fullname=trait_name, cursor=cursor)
@@ -178,7 +178,7 @@ def get_custom_trait(form_data, cursor):
#XZ, 09/18/2008: get the information such as value, variance of the input strain names from the form.
def get_sample_data(fd):
- print("fd is:", pf(fd.__dict__))
+ #print("fd is:", pf(fd.__dict__))
if fd.allstrainlist:
mdpchoice = fd.MDPChoice
#XZ, in HTML source code, it is "BXD Only", "BXH Only", and so on
@@ -277,10 +277,10 @@ class CorrelationPage(templatePage):
return templatePage.error(heading = heading, detail = [message], error=error)
def __init__(self, fd):
- print("in CorrelationPage __init__ fd is:", pf(fd.__dict__))
+ #print("in CorrelationPage __init__ fd is:", pf(fd.__dict__))
# Call the superclass constructor
templatePage.__init__(self, fd)
- print("in CorrelationPage __init__ now fd is:", pf(fd.__dict__))
+ #print("in CorrelationPage __init__ now fd is:", pf(fd.__dict__))
# Connect to the database
if not self.openMysql():
return
@@ -290,6 +290,7 @@ class CorrelationPage(templatePage):
fd.readGenotype()
sample_list = get_sample_data(fd)
+ print("sample_list is", pf(sample_list))
# Whether the user chose BXD Only, Non-BXD Only, or All Strains
# (replace BXD with whatever the group/inbredset name is)
@@ -321,17 +322,18 @@ class CorrelationPage(templatePage):
#XZ, 09/18/2008: filter out the strains that have no value.
self.sample_names, vals, vars, N = fd.informativeStrains(sample_list)
- #CF - If less than a minimum number of strains/cases in common, don't calculate anything
+ print("samplenames is:", pf(self.sample_names))
+ #CF - If less than a minimum number of strains/cases in common, don't calculate anything
if len(self.sample_names) < self.corrMinInformative:
detail = ['Fewer than %d strain data were entered for %s data set. No calculation of correlation has been attempted.' % (self.corrMinInformative, fd.RISet)]
self.error(heading=None, detail=detail)
- self.method = get_correlation_method_key(fd)
+ self.method = fd.method
correlation_method = self.CORRELATION_METHODS[self.method]
rankOrder = self.RANK_ORDERS[self.method]
- # CF - Number of results returned
+ # CF - Number of results returned
self.returnNumber = int(fd.criteria)
self.record_count = 0
diff --git a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
index 7bfa6d01..5c153ccb 100644
--- a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
+++ b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.coffee
@@ -166,20 +166,20 @@ $ ->
$('select[name=corr_method]').change(on_corr_method_change)
- on_corr_submit = ->
- console.log("in beginning of on_corr_submit")
- values = $('#trait_data_form').serialize()
- console.log("in on_corr_submit, values are:", values)
-
- params = $.param(values)
- window.location.href = "/corr_compute?" + params
-
- #$.ajax "/corr_compute",
- # type: 'GET'
- # dataType: 'html'
- # data: values
-
- $('#corr_compute').click(on_corr_submit)
+ #on_corr_submit = ->
+ # console.log("in beginning of on_corr_submit")
+ # values = $('#trait_data_form').serialize()
+ # console.log("in on_corr_submit, values are:", values)
+ #
+ # params = $.param(values)
+ # window.location.href = "/corr_compute?" + params
+ #
+ # #$.ajax "/corr_compute",
+ # # type: 'GET'
+ # # dataType: 'html'
+ # # data: values
+ #
+ #$('#corr_compute').click(on_corr_submit)
###
End Calculate Correlations Code
diff --git a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
index e1f870d9..55acbada 100644
--- a/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
+++ b/wqflask/wqflask/static/new/javascript/trait_data_and_analysis.js
@@ -10,7 +10,7 @@
};
$(function() {
- var edit_data_change, hide_tabs, make_table, on_corr_method_change, on_corr_submit, process_id, show_hide_outliers, stats_mdp_change, update_stat_values;
+ var edit_data_change, hide_tabs, make_table, on_corr_method_change, process_id, show_hide_outliers, stats_mdp_change, update_stat_values;
hide_tabs = function(start) {
var x, _i, _results;
_results = [];
@@ -199,15 +199,6 @@
return $('#' + corr_method + "_r_desc").show().effect("highlight");
};
$('select[name=corr_method]').change(on_corr_method_change);
- on_corr_submit = function() {
- var params, values;
- console.log("in beginning of on_corr_submit");
- values = $('#trait_data_form').serialize();
- console.log("in on_corr_submit, values are:", values);
- params = $.param(values);
- return window.location.href = "/corr_compute?" + params;
- };
- $('#corr_compute').click(on_corr_submit);
/*
End Calculate Correlations Code
*/
diff --git a/wqflask/wqflask/templates/trait_data_and_analysis.html b/wqflask/wqflask/templates/trait_data_and_analysis.html
index a5d0e05c..c25db7c4 100644
--- a/wqflask/wqflask/templates/trait_data_and_analysis.html
+++ b/wqflask/wqflask/templates/trait_data_and_analysis.html
@@ -8,7 +8,7 @@
<table width="100%" cellspacing="0" cellpadding="5">
<tr>
<td valign="top" width="100%" bgcolor="#FAFAFA">
- <form method="post" action="/webqtl/main.py" name="dataInput" id="trait_data_form">
+ <form method="post" action="/corr_compute" name="dataInput" id="trait_data_form">
{# <input type="hidden" name="isSE" value="yes">
<input type="hidden" name="permCheck">
<input type="hidden" name="otherStrainVals" value="_">
@@ -683,13 +683,7 @@
<p class="sectionheader" id="title3" style="border-radius: 5px;">&nbsp;&nbsp;Calculate Correlations</p>
- <p id="sectionbody3"></p><script language="Javascript" type="text/javascript">
-<!--
-
- $(function() { $("#corr_tabs").tabs(); });
-
- //-->
- </script>
+ <p id="sectionbody3"></p>
<table class="target4" cellpadding="0" cellspacing="0" width="100%">
<tr>
@@ -771,7 +765,7 @@
"sample_method" value="spearman"><br>
<br>
- <input type="button" name="corr_compute" id="corr_compute" class="button" value="Compute"><br><br>
+ <input type="submit" name="corr_compute" id="corr_compute" class="button" value="Compute"><br><br>
<span id="sample_r_desc" class="correlation_desc fs12">
The <a href="/correlationAnnotation.html#sample_r" target="_blank">Sample Correlation</a>
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 114ec458..677c7f43 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -75,10 +75,10 @@ def showDatabaseBXD():
print("showDatabaseBXD template_vars:", pf(template_vars.__dict__))
return render_template("trait_data_and_analysis.html", **template_vars.__dict__)
-@app.route("/corr_compute")
+@app.route("/corr_compute", methods=('POST',))
def corr_compute():
- print("In corr_compute")
- fd = webqtlFormData.webqtlFormData(request.args)
+ #print("In corr_compute, request.args is:", pf(request.form))
+ fd = webqtlFormData.webqtlFormData(request.form)
print("Have fd")
template_vars = CorrelationPage.CorrelationPage(fd)
print("Made it to rendering")