From 30e8aaad9672151c4b6bc43ea386d0d39ca131a7 Mon Sep 17 00:00:00 2001 From: zsloan Date: Wed, 9 Dec 2020 16:18:07 -0600 Subject: Exchanged metadata and legend positions and made some changes to Y positioning for the metadata --- .../marker_regression/display_mapping_results.py | 39 +++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py index 08c2d750..9f778160 100644 --- a/wqflask/wqflask/marker_regression/display_mapping_results.py +++ b/wqflask/wqflask/marker_regression/display_mapping_results.py @@ -644,8 +644,10 @@ class DisplayMappingResults(object): yTopOffset = max(90, yTopOffset) else: if self.legendChecked: - if self.covariates != "" and self.controlLocus and self.doControl != "false": - yTopOffset = max(120, yTopOffset) + if (self.mapping_method == "gemma" or self.mapping_method == "rqtl_geno") and self.covariates != "": + yTopOffset = max(115, yTopOffset) + elif self.mapping_method == "rqtl_geno" and self.controlLocus and self.doControl != "false" and self.covariates != "": + yTopOffset = max(130, yTopOffset) else: yTopOffset = max(100, yTopOffset) else: @@ -859,13 +861,12 @@ class DisplayMappingResults(object): if self.legendChecked: startPosY = 30 - nCol = 2 smallLabelFont = ImageFont.truetype(font=TREBUC_FILE, size=12*fontZoom) - leftOffset = xLeftOffset+(nCol-1)*200 + leftOffset = canvas.size[0] - xRightOffset - 190 im_drawer.rectangle( xy=((leftOffset, startPosY-6), (leftOffset+12, startPosY+6)), fill=YELLOW, outline=BLACK) - im_drawer.text(xy=(leftOffset+ 20, startPosY+TEXT_Y_DISPLACEMENT), + im_drawer.text(xy=(canvas.size[0] - xRightOffset - 170, startPosY+TEXT_Y_DISPLACEMENT), text='Frequency of the Peak LRS', font=smallLabelFont, fill=BLACK) @@ -1069,7 +1070,7 @@ class DisplayMappingResults(object): startPosY += stepPosY if self.additiveChecked: - startPosX = xLeftOffset + startPosX = canvas.size[0] - xRightOffset - 400 im_drawer.line( xy=((startPosX, startPosY), (startPosX+17, startPosY)), fill=self.ADDITIVE_COLOR_POSITIVE, width=2) @@ -1081,7 +1082,7 @@ class DisplayMappingResults(object): font=labelFont, fill=BLACK) if self.genotype.type == 'intercross' and self.dominanceChecked: - startPosX = xLeftOffset + startPosX = canvas.size[0] - xRightOffset - 400 startPosY += stepPosY im_drawer.line( xy=((startPosX, startPosY), (startPosX+17, startPosY)), @@ -1095,7 +1096,7 @@ class DisplayMappingResults(object): if self.haplotypeAnalystChecked: startPosY += stepPosY - startPosX = xLeftOffset + startPosX = canvas.size[0] - xRightOffset - 400 im_drawer.line( xy=((startPosX, startPosY), (startPosX+17, startPosY)), fill=self.HAPLOTYPE_POSITIVE, width=4) @@ -1114,7 +1115,10 @@ class DisplayMappingResults(object): if self.permChecked and self.nperm > 0: startPosY += stepPosY - startPosX = xLeftOffset + if self.bootChecked and not self.multipleInterval: + startPosX = canvas.size[0] - xRightOffset - 400 + else: + startPosX = canvas.size[0] - xRightOffset - 190 im_drawer.line( xy=((startPosX, startPosY), ( startPosX + 32, startPosY)), fill=self.SIGNIFICANT_COLOR, width=self.SIGNIFICANT_WIDTH) @@ -1123,10 +1127,10 @@ class DisplayMappingResults(object): fill=self.SUGGESTIVE_COLOR, width=self.SUGGESTIVE_WIDTH) im_drawer.text( text='Significant %s = %2.2f' % (self.LRS_LOD, self.significant), - xy=(xLeftOffset+42, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) + xy=(startPosX+42, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) im_drawer.text( text='Suggestive %s = %2.2f' % (self.LRS_LOD, self.suggestive), - xy=(xLeftOffset+42, startPosY + TEXT_Y_DISPLACEMENT +stepPosY), font=labelFont, + xy=(startPosX+42, startPosY + TEXT_Y_DISPLACEMENT +stepPosY), font=labelFont, fill=BLACK) labelFont = ImageFont.truetype(font=VERDANA_FILE, size=12*fontZoom) @@ -1197,22 +1201,26 @@ class DisplayMappingResults(object): im_drawer.textsize(string2, font=labelFont)[0]) im_drawer.text( text=identification, - xy=(canvas.size[0] - xRightOffset-d, 20*fontZoom), font=labelFont, + xy=(xLeftOffset, 20*fontZoom), font=labelFont, fill=labelColor) else: d = 4+ max( im_drawer.textsize(string1, font=labelFont)[0], im_drawer.textsize(string2, font=labelFont)[0]) im_drawer.text( - text=string1, xy=(canvas.size[0] - xRightOffset-d, 35*fontZoom), + text=string1, xy=(xLeftOffset, 35*fontZoom), font=labelFont, fill=labelColor) im_drawer.text( - text=string2, xy=(canvas.size[0] - xRightOffset-d, 50*fontZoom), + text=string2, xy=(xLeftOffset, 50*fontZoom), font=labelFont, fill=labelColor) if string3 != '': im_drawer.text( - text=string3, xy=(canvas.size[0] - xRightOffset-d, 65*fontZoom), + text=string3, xy=(xLeftOffset, 65*fontZoom), font=labelFont, fill=labelColor) + if string4 != '': + im_drawer.text( + text=string4, xy=(xLeftOffset, 80*fontZoom), + font=labelFont, fill=labelColor) def drawGeneBand(self, canvas, gifmap, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None): @@ -2244,6 +2252,7 @@ class DisplayMappingResults(object): ) sugg_coords = "%d, %d, %d, %d" % (start_pos_x, suggestiveY-2, rightEdge + 2*zoom, suggestiveY+2) sig_coords = "%d, %d, %d, %d" % (start_pos_x, significantY-2, rightEdge + 2*zoom, significantY+2) + if self.LRS_LOD == 'LRS': sugg_title = "Suggestive LRS = %0.2f" % self.suggestive sig_title = "Significant LRS = %0.2f" % self.significant -- cgit v1.2.3 From 295805eeb01aceb2651f79662c1462f06e1591cf Mon Sep 17 00:00:00 2001 From: zsloan Date: Thu, 10 Dec 2020 12:27:48 -0600 Subject: Replacing the Scroller import with the CDN until we figure out why the new import doesn't work --- wqflask/wqflask/templates/show_trait.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html index b02f8140..c95a0522 100644 --- a/wqflask/wqflask/templates/show_trait.html +++ b/wqflask/wqflask/templates/show_trait.html @@ -146,7 +146,7 @@ - + -- cgit v1.2.3 From b3aba44e452fbfeb9f79c91f94b00061057937a4 Mon Sep 17 00:00:00 2001 From: zsloan Date: Tue, 12 Jan 2021 17:51:06 -0600 Subject: Fixed issue causing interval mapping to not be displayed correctly --- wqflask/wqflask/marker_regression/run_mapping.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/marker_regression/run_mapping.py b/wqflask/wqflask/marker_regression/run_mapping.py index 891fcc66..38f8c26d 100644 --- a/wqflask/wqflask/marker_regression/run_mapping.py +++ b/wqflask/wqflask/marker_regression/run_mapping.py @@ -138,15 +138,15 @@ class RunMapping(object): mapping_results_filename = self.dataset.group.name + "_" + ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(6)) self.mapping_results_path = "{}{}.csv".format(webqtlConfig.GENERATED_IMAGE_DIR, mapping_results_filename) - if start_vars['manhattan_plot']: - self.color_scheme = "alternating" - if "color_scheme" in start_vars: - self.color_scheme = start_vars['color_scheme'] - if self.color_scheme == "single": - self.manhattan_single_color = start_vars['manhattan_single_color'] - self.manhattan_plot = True - else: - self.manhattan_plot = False + self.manhattan_plot = False + if 'manhattan_plot' in start_vars: + if start_vars['manhattan_plot'].lower() != "false": + self.color_scheme = "alternating" + if "color_scheme" in start_vars: + self.color_scheme = start_vars['color_scheme'] + if self.color_scheme == "single": + self.manhattan_single_color = start_vars['manhattan_single_color'] + self.manhattan_plot = True self.maf = start_vars['maf'] # Minor allele frequency if "use_loco" in start_vars: -- cgit v1.2.3 From 7d97698ca88460c2f66b67ada31085b02cbc9ee4 Mon Sep 17 00:00:00 2001 From: zsloan Date: Tue, 12 Jan 2021 17:56:52 -0600 Subject: Fixed a bunch fo remaining issues with positioning legend items on the right side of the mapping figure --- .../marker_regression/display_mapping_results.py | 87 +++++++++++----------- 1 file changed, 43 insertions(+), 44 deletions(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py index 9f778160..bba08f63 100644 --- a/wqflask/wqflask/marker_regression/display_mapping_results.py +++ b/wqflask/wqflask/marker_regression/display_mapping_results.py @@ -860,7 +860,10 @@ class DisplayMappingResults(object): text='%2.1f'%item, font=bootScaleFont, fill=BLACK) if self.legendChecked: - startPosY = 30 + if hasattr(self.traitList[0], 'chr') and hasattr(self.traitList[0], 'mb'): + startPosY = 30 + else: + startPosY = 15 smallLabelFont = ImageFont.truetype(font=TREBUC_FILE, size=12*fontZoom) leftOffset = canvas.size[0] - xRightOffset - 190 im_drawer.rectangle( @@ -942,28 +945,6 @@ class DisplayMappingResults(object): draw_open_polygon(canvas, xy=traitPixel, outline=BLACK, fill=self.TRANSCRIPT_LOCATION_COLOR) - if self.legendChecked: - startPosY = 15 - nCol = 2 - smallLabelFont = ImageFont.truetype(font=TREBUC_FILE, size=12*fontZoom) - if self.manhattan_plot: - leftOffset = xLeftOffset - else: - leftOffset = xLeftOffset+(nCol-1)*200*fontZoom - draw_open_polygon( - canvas, - xy=( - (leftOffset+7, startPosY-7), - (leftOffset, startPosY+7), - (leftOffset+14, startPosY+7)), - outline=BLACK, fill=self.TRANSCRIPT_LOCATION_COLOR - ) - TEXT_Y_DISPLACEMENT = -8 - im_drawer.text( - text="Sequence Site", - xy=(leftOffset+15, startPosY+TEXT_Y_DISPLACEMENT), font=smallLabelFont, - fill=self.TOP_RIGHT_INFO_COLOR) - def drawSNPTrackNew(self, canvas, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None): im_drawer = ImageDraw.Draw(canvas) if self.plotScale != 'physic' or self.selectedChr == -1 or not self.diffCol: @@ -1060,17 +1041,38 @@ class DisplayMappingResults(object): labelFont=ImageFont.truetype(font=TREBUC_FILE, size=12*fontZoom) startPosY = 15 stepPosY = 12*fontZoom + + startPosX = canvas.size[0] - xRightOffset - 415 + if hasattr(self.traitList[0], 'chr') and hasattr(self.traitList[0], 'mb'): + startPosY = 15 + nCol = 2 + smallLabelFont = ImageFont.truetype(font=TREBUC_FILE, size=12*fontZoom) + + leftOffset = canvas.size[0] - xRightOffset - 190 + draw_open_polygon( + canvas, + xy=( + (leftOffset + 6, startPosY-7), + (leftOffset - 1, startPosY+7), + (leftOffset + 13, startPosY+7)), + outline=BLACK, fill=self.TRANSCRIPT_LOCATION_COLOR + ) + TEXT_Y_DISPLACEMENT = -8 + im_drawer.text( + text="Sequence Site", + xy=(leftOffset + 20, startPosY+TEXT_Y_DISPLACEMENT), font=smallLabelFont, + fill=self.TOP_RIGHT_INFO_COLOR) + if self.manhattan_plot != True: im_drawer.line( - xy=((xLeftOffset, startPosY), (xLeftOffset+32, startPosY)), + xy=((startPosX, startPosY), (startPosX+32, startPosY)), fill=self.LRS_COLOR, width=2) im_drawer.text( - text=self.LRS_LOD, xy=(xLeftOffset+40, startPosY+TEXT_Y_DISPLACEMENT), + text=self.LRS_LOD, xy=(startPosX+40, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) startPosY += stepPosY if self.additiveChecked: - startPosX = canvas.size[0] - xRightOffset - 400 im_drawer.line( xy=((startPosX, startPosY), (startPosX+17, startPosY)), fill=self.ADDITIVE_COLOR_POSITIVE, width=2) @@ -1080,10 +1082,9 @@ class DisplayMappingResults(object): im_drawer.text( text='Additive Effect', xy=(startPosX+40, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) + startPosY += stepPosY if self.genotype.type == 'intercross' and self.dominanceChecked: - startPosX = canvas.size[0] - xRightOffset - 400 - startPosY += stepPosY im_drawer.line( xy=((startPosX, startPosY), (startPosX+17, startPosY)), fill=self.DOMINANCE_COLOR_POSITIVE, width=4) @@ -1093,44 +1094,42 @@ class DisplayMappingResults(object): im_drawer.text( text='Dominance Effect', xy=(startPosX+42, startPosY+5), font=labelFont, fill=BLACK) + startPosY += stepPosY if self.haplotypeAnalystChecked: - startPosY += stepPosY - startPosX = canvas.size[0] - xRightOffset - 400 im_drawer.line( - xy=((startPosX, startPosY), (startPosX+17, startPosY)), + xy=((startPosX-34, startPosY), (startPosX-17, startPosY)), fill=self.HAPLOTYPE_POSITIVE, width=4) im_drawer.line( - xy=((startPosX+18, startPosY), (startPosX+35, startPosY)), + xy=((startPosX-17, startPosY), (startPosX, startPosY)), fill=self.HAPLOTYPE_NEGATIVE, width=4) im_drawer.line( - xy=((startPosX+36, startPosY), (startPosX+53, startPosY)), + xy=((startPosX, startPosY), (startPosX+17, startPosY)), fill=self.HAPLOTYPE_HETEROZYGOUS, width=4) im_drawer.line( - xy=((startPosX+54, startPosY), (startPosX+67, startPosY)), + xy=((startPosX+17, startPosY), (startPosX+34, startPosY)), fill=self.HAPLOTYPE_RECOMBINATION, width=4) im_drawer.text( text='Haplotypes (Pat, Mat, Het, Unk)', - xy=(startPosX+76, startPosY+5), font=labelFont, fill=BLACK) + xy=(startPosX+41, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) + startPosY += stepPosY if self.permChecked and self.nperm > 0: - startPosY += stepPosY - if self.bootChecked and not self.multipleInterval: - startPosX = canvas.size[0] - xRightOffset - 400 - else: - startPosX = canvas.size[0] - xRightOffset - 190 + thisStartX = startPosX + if self.multipleInterval and not self.bootChecked: + thisStartX = canvas.size[0] - xRightOffset - 205 im_drawer.line( - xy=((startPosX, startPosY), ( startPosX + 32, startPosY)), + xy=((thisStartX, startPosY), ( startPosX + 32, startPosY)), fill=self.SIGNIFICANT_COLOR, width=self.SIGNIFICANT_WIDTH) im_drawer.line( - xy=((startPosX, startPosY + stepPosY), ( startPosX + 32, startPosY + stepPosY)), + xy=((thisStartX, startPosY + stepPosY), ( startPosX + 32, startPosY + stepPosY)), fill=self.SUGGESTIVE_COLOR, width=self.SUGGESTIVE_WIDTH) im_drawer.text( text='Significant %s = %2.2f' % (self.LRS_LOD, self.significant), - xy=(startPosX+42, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) + xy=(thisStartX+40, startPosY+TEXT_Y_DISPLACEMENT), font=labelFont, fill=BLACK) im_drawer.text( text='Suggestive %s = %2.2f' % (self.LRS_LOD, self.suggestive), - xy=(startPosX+42, startPosY + TEXT_Y_DISPLACEMENT +stepPosY), font=labelFont, + xy=(thisStartX+40, startPosY + TEXT_Y_DISPLACEMENT +stepPosY), font=labelFont, fill=BLACK) labelFont = ImageFont.truetype(font=VERDANA_FILE, size=12*fontZoom) -- cgit v1.2.3