diff options
5 files changed, 50 insertions, 16 deletions
diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py index 05bb5b60..c396b14b 100755 --- a/wqflask/wqflask/marker_regression/marker_regression.py +++ b/wqflask/wqflask/marker_regression/marker_regression.py @@ -52,6 +52,8 @@ class MarkerRegression(object): #tempdata = temp_data.TempData(temp_uuid) + self.temp_uuid = temp_uuid #needed to pass temp_uuid to gn1 mapping code (marker_regression_gn1.py) + self.json_data = {} self.json_data['lodnames'] = ['lod.hk'] @@ -76,6 +78,11 @@ class MarkerRegression(object): self.score_type = "LRS" #ZS: LRS or LOD self.mapping_scale = "physic" self.num_perm = 0 + + #ZS: This is passed to GN1 code for single chr mapping + self.selected_chr = -1 + if "selected_chr" in start_vars: + self.selected_chr = int(start_vars['selected_chr']) self.dataset.group.get_markers() if self.mapping_method == "gemma": @@ -720,7 +727,9 @@ class MarkerRegression(object): def gen_data(self, temp_uuid): """Generates p-values for each marker""" - pheno_vector = np.array([val == "x" and np.nan or float(val) for val in self.vals]) + + print("self.vals is:", self.vals) + pheno_vector = np.array([(val == "x" or val == "") and np.nan or float(val) for val in self.vals]) #lmm_uuid = str(uuid.uuid4()) diff --git a/wqflask/wqflask/marker_regression/marker_regression_gn1.py b/wqflask/wqflask/marker_regression/marker_regression_gn1.py index 1da98c63..a0033bd2 100644 --- a/wqflask/wqflask/marker_regression/marker_regression_gn1.py +++ b/wqflask/wqflask/marker_regression/marker_regression_gn1.py @@ -172,10 +172,16 @@ class MarkerRegression(object): #helper_functions.get_species_dataset_trait(self, start_vars) + self.temp_uuid = start_vars['temp_uuid'] + self.dataset = start_vars['dataset'] self.this_trait = start_vars['this_trait'] self.species = start_vars['species'] + + self.vals = start_vars['vals'] #Needed to put into form for when it is resubmitted for single chr views or remapping + self.mapping_method = start_vars['mapping_method'] #Needing for form submission when doing single chr mapping or remapping after changing options + self.js_data = start_vars['js_data'] #ZS: Think I can just get all this from dataset object now @@ -226,9 +232,9 @@ class MarkerRegression(object): #self.controlLocus = fd.formdata.getvalue('controlLocus', '') #try: - # self.selectedChr = int(fd.formdata.getvalue('chromosomes', "-1")) + self.selectedChr = int(start_vars['selected_chr']) #except: - self.selectedChr = -1 + # self.selectedChr = -1 #whether include parents and F1 for InbredSet #fd.parentsf14regression = fd.formdata.getvalue('parentsf14regression') @@ -1921,10 +1927,12 @@ class MarkerRegression(object): #startPosX = xLeftOffset thisLRSColor = self.colorCollection[0] - if qtlresult['chr'] != previous_chr: + if qtlresult['chr'] != previous_chr and self.selectedChr == -1: previous_chr = qtlresult['chr'] previous_chr_as_int += 1 + print("ChrLengthDistList:", self.ChrLengthDistList) + newStartPosX = (self.ChrLengthDistList[previous_chr_as_int - 1]+self.GraphInterval)*plotXScale if newStartPosX != oldStartPosX: startPosX += newStartPosX @@ -1933,7 +1941,7 @@ class MarkerRegression(object): #startPosX += (self.ChrLengthDistList[j]+self.GraphInterval)*plotXScale #for j, _chr in enumerate(self.genotype): - if 1 == 1: + if self.selectedChr == -1 or qtlresult['chr'] == self.selectedChr: #LRSCoordXY = [] #AdditiveCoordXY = [] #DominanceCoordXY = [] @@ -2120,7 +2128,7 @@ class MarkerRegression(object): COORDS = "%d,%d,%d,%d" %(chrStartPix, yTopOffset, chrEndPix,yTopOffset +20) #add by NL 09-03-2010 - HREF = "javascript placeholder" + HREF = "javascript:chrView(%d,%s);" % (i,self.ChrLengthMbList) #HREF = "javascript:changeView(%d,%s);" % (i,self.ChrLengthMbList) Areas = HT.Area(shape='rect',coords=COORDS,href=HREF) gifmap.areas.append(Areas) diff --git a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js index 3834e60b..721752dd 100755 --- a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js +++ b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js @@ -165,7 +165,7 @@ $("#pylmm_compute").on("click", (function(_this) { return function() { var form_data, url; - $("#progress_bar_container").modal(); + //$("#progress_bar_container").modal(); url = "/marker_regression"; $('input[name=method]').val("pylmm"); $('input[name=num_perm]').val($('input[name=num_perm_pylmm]').val()); diff --git a/wqflask/wqflask/templates/marker_regression_gn1.html b/wqflask/wqflask/templates/marker_regression_gn1.html index e6bc2d65..f5bec6ea 100644 --- a/wqflask/wqflask/templates/marker_regression_gn1.html +++ b/wqflask/wqflask/templates/marker_regression_gn1.html @@ -6,22 +6,30 @@ {% endblock %} {% from "base_macro.html" import header %} {% block content %} - {{ header("Mapping", + {{ header("Whole Genome Mapping Results", '{}: {}'.format(this_trait.name, this_trait.description_fmt)) }} <div class="container"> - <div> - <h2> - Whole Genome Mapping - </h2> - </div> + <form method="post" target="_blank" action="/marker_regression" name="marker_regression" id="marker_regression_form"> + <input type="hidden" name="temp_uuid" value="{{ temp_uuid }}"> + <input type="hidden" name="trait_id" value="{{ this_trait.name }}"> + <input type="hidden" name="dataset" value="{{ dataset.name }}"> + {% for sample in dataset.group.samplelist %} + <input type="hidden" name="value:{{ sample }}" value="{{ vals[loop.index - 1] }}"> + {% endfor %} + <input type="hidden" name="maf"> + <input type="hidden" name="method" value="{{ mapping_method }}"> + <input type="hidden" name="selected_chr" value="{{ selectedChr }}"> + <input type="hidden" name="manhattan_plot"> + <input type="hidden" name="num_perm"> <div id="chart_container"> <div class="qtlcharts" id="topchart"> {{ gifmap|safe }} <img src="/static/output/{{ filename }}.jpeg" usemap="#WebQTLImageMap"> </div> </div> - <div style="width:45%;"> + </form> + <div style="width:48%;"> <h2> Results </h2> @@ -102,12 +110,12 @@ console.time("Creating table"); $('#qtl_results').dataTable( { "columns": [ - { "type": "natural", "bSortable": false }, + { "type": "natural", "sWidth": "10%", "bSortable": false }, { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, { "type": "natural" }, - { "type": "natural" } + { "type": "natural", "sWidth": "30%"} ], "buttons": [ 'csv' @@ -124,6 +132,14 @@ console.timeEnd("Creating table"); }); + + chrView = function(this_chr, chr_mb_list) { + $('input[name=selected_chr]').val(this_chr + 1) + $('input[name=chr_mb_list]').val(chr_mb_list) + + return $('#marker_regression_form').submit(); + }; + </script> {% endblock %} diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py index 2a426eda..9c5a3c92 100755 --- a/wqflask/wqflask/views.py +++ b/wqflask/wqflask/views.py @@ -335,6 +335,7 @@ def marker_regression_page(): 'trait_id', 'dataset', 'method', + 'selected_chr', 'mapping_scale', 'score_type', 'suggestive', |