From 64fdffd07eaf51cbd4268d0cfafefea74938d731 Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 18 Apr 2019 13:39:09 -0500 Subject: Fixed issue that caused removed strains to still appear in the haplotype analyst track --- .../marker_regression/display_mapping_results.py | 44 ++++++++++------------ wqflask/wqflask/marker_regression/run_mapping.py | 38 +++++++++++-------- wqflask/wqflask/templates/mapping_results.html | 1 + wqflask/wqflask/views.py | 1 + 4 files changed, 44 insertions(+), 40 deletions(-) diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py index 1ce0e725..f4d5ca66 100644 --- a/wqflask/wqflask/marker_regression/display_mapping_results.py +++ b/wqflask/wqflask/marker_regression/display_mapping_results.py @@ -235,7 +235,7 @@ class DisplayMappingResults(object): self.selectedChr = int(start_vars['selected_chr']) - self.strainlist = self.dataset.group.samplelist + self.strainlist = start_vars['samples'] self.genotype = self.dataset.group.read_genotype_file() if self.mapping_method == "reaper" and self.manhattan_plot != True: self.genotype = self.genotype.addinterval() @@ -343,20 +343,19 @@ class DisplayMappingResults(object): ## BEGIN HaplotypeAnalyst ## count the amount of individuals to be plotted, and increase self.graphHeight if self.haplotypeAnalystChecked and self.selectedChr > -1: - #thisTrait = self.traitList[0] - thisTrait = self.this_trait - _strains, _vals, _vars, _aliases = thisTrait.export_informative() - smd=[] - for ii, _val in enumerate(_vals): - temp = GeneralObject(name=_strains[ii], value=_val) - smd.append(temp) - samplelist = list(self.genotype.prgy) - for j,_geno in enumerate (self.genotype[0][1].genotype): - for item in smd: - if item.name == samplelist[j]: - self.NR_INDIVIDUALS = self.NR_INDIVIDUALS + 1 + thisTrait = self.this_trait + _strains, _vals, _vars, _aliases = thisTrait.export_informative() + smd=[] + for ii, _val in enumerate(_vals): + temp = GeneralObject(name=_strains[ii], value=_val) + smd.append(temp) + samplelist = list(self.genotype.prgy) + for j,_geno in enumerate (self.genotype[0][1].genotype): + for item in smd: + if item.name == samplelist[j]: + self.NR_INDIVIDUALS = self.NR_INDIVIDUALS + 1 # default: - self.graphHeight = self.graphHeight + 2 * (self.NR_INDIVIDUALS+10) * self.EACH_GENE_HEIGHT + self.graphHeight = self.graphHeight + 2 * (self.NR_INDIVIDUALS+10) * self.EACH_GENE_HEIGHT ## END HaplotypeAnalyst ################################################################ @@ -1159,13 +1158,8 @@ class DisplayMappingResults(object): if self.plotScale != 'physic' or self.selectedChr == -1 or not self.geneCol: return - clickableRegionLabelFont=pid.Font(ttf="verdana", size=9, bold=0) - xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset plotWidth = canvas.size[0] - xLeftOffset - xRightOffset - plotHeight = canvas.size[1] - yTopOffset - yBottomOffset - yZero = canvas.size[1] - yBottomOffset - fontZoom = zoom yPaddingTop = yTopOffset @@ -1174,7 +1168,7 @@ class DisplayMappingResults(object): smd=[] for ii, _val in enumerate(_vals): - if _strains[ii] in self.dataset.group.samplelist: + if _strains[ii] in self.samples: temp = GeneralObject(name=_strains[ii], value=_val) smd.append(temp) @@ -1188,11 +1182,11 @@ class DisplayMappingResults(object): plotRight = xRightOffset #### find out PlotRight - for i, _chr in enumerate(self.genotype): + for _chr in self.genotype: if _chr.name == self.ChrList[self.selectedChr][0]: - for j, _locus in enumerate(_chr): - txStart = _chr[j].Mb - txEnd = _chr[j].Mb + for i, _locus in enumerate(_chr): + txStart = _chr[i].Mb + txEnd = _chr[i].Mb geneStartPix = xLeftOffset + plotXScale*(float(txStart) - startMb) - 0 geneEndPix = xLeftOffset + plotXScale*(float(txEnd) - startMb) - 0 @@ -1204,7 +1198,7 @@ class DisplayMappingResults(object): drawit = 0; if drawit == 1: - if _chr[j].name != " - " : + if _chr[i].name != " - " : plotRight = geneEndPix + 4 #### end find out PlotRight diff --git a/wqflask/wqflask/marker_regression/run_mapping.py b/wqflask/wqflask/marker_regression/run_mapping.py index a0466c0f..4770b14b 100644 --- a/wqflask/wqflask/marker_regression/run_mapping.py +++ b/wqflask/wqflask/marker_regression/run_mapping.py @@ -56,27 +56,35 @@ class RunMapping(object): self.json_data = {} self.json_data['lodnames'] = ['lod.hk'] - self.samples = [] # Want only ones with values - self.vals = [] - all_samples_ordered = self.dataset.group.all_samples_ordered() primary_sample_names = list(all_samples_ordered) - for sample in self.dataset.group.samplelist: - # sample is actually the name of an individual - in_trait_data = False - for item in self.this_trait.data: - if self.this_trait.data[item].name == sample: - value = start_vars['value:' + self.this_trait.data[item].name] - self.samples.append(self.this_trait.data[item].name) - self.vals.append(value) - in_trait_data = True - break - if not in_trait_data: + self.vals = [] + if 'samples' in start_vars: + self.samples = start_vars['samples'].split(",") + for sample in self.samples: value = start_vars.get('value:' + sample) if value: - self.samples.append(sample) self.vals.append(value) + else: + self.samples = [] + + for sample in self.dataset.group.samplelist: + # sample is actually the name of an individual + in_trait_data = False + for item in self.this_trait.data: + if self.this_trait.data[item].name == sample: + value = start_vars['value:' + self.this_trait.data[item].name] + if value != "x": + self.samples.append(self.this_trait.data[item].name) + self.vals.append(value) + in_trait_data = True + break + if not in_trait_data: + value = start_vars.get('value:' + sample) + if value: + self.samples.append(sample) + self.vals.append(value) #ZS: Check if genotypes exist in the DB in order to create links for markers if "geno_db_exists" in start_vars: diff --git a/wqflask/wqflask/templates/mapping_results.html b/wqflask/wqflask/templates/mapping_results.html index f31c5fe5..ba4d4d7c 100644 --- a/wqflask/wqflask/templates/mapping_results.html +++ b/wqflask/wqflask/templates/mapping_results.html @@ -22,6 +22,7 @@ {% endif %} + {% for sample in samples %} {% endfor %} diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py index d0c75a5b..109e30cc 100644 --- a/wqflask/wqflask/views.py +++ b/wqflask/wqflask/views.py @@ -585,6 +585,7 @@ def mapping_results_page(): 'dataset', 'group', 'species', + 'samples', 'vals', 'first_run', 'gwa_filename', -- cgit v1.2.3