about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2021-01-14 14:22:47 -0600
committerzsloan2021-01-14 14:22:47 -0600
commitaa5d3d6bfedd7df8c6e35465d60bba1c11c8fa79 (patch)
tree038412402a7360f5f882c1dfcfabfaa76d5d7e9c
parent4a67b437215b04a089449f93cfa9ebcaed5640dd (diff)
downloadgenenetwork2-aa5d3d6bfedd7df8c6e35465d60bba1c11c8fa79.tar.gz
Added transform text to mapping figure and fixed an issue where cofactors weren't appearing in the metadata
-rw-r--r--wqflask/wqflask/marker_regression/display_mapping_results.py46
1 files changed, 37 insertions, 9 deletions
diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py
index 9f1b050d..0de9b9a1 100644
--- a/wqflask/wqflask/marker_regression/display_mapping_results.py
+++ b/wqflask/wqflask/marker_regression/display_mapping_results.py
@@ -636,7 +636,7 @@ class DisplayMappingResults(object):
             btminfo.append(HtmlGenWrapper.create_br_tag())
             btminfo.append('Mapping using genotype data as a trait will result in infinity LRS at one locus. In order to display the result properly, all LRSs higher than 100 are capped at 100.')
 
-    def plotIntMapping(self, canvas, offset= (80, 120, 20, 100), zoom = 1, startMb = None, endMb = None, showLocusForm = ""):
+    def plotIntMapping(self, canvas, offset= (80, 120, 90, 100), zoom = 1, startMb = None, endMb = None, showLocusForm = ""):
         im_drawer = ImageDraw.Draw(canvas)
         #calculating margins
         xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
@@ -644,10 +644,11 @@ class DisplayMappingResults(object):
             yTopOffset = max(90, yTopOffset)
         else:
             if self.legendChecked:
+                yTopOffset += 10
                 if self.covariates != "" and self.controlLocus and self.doControl != "false":
-                    yTopOffset = max(120, yTopOffset)
-                else:
-                    yTopOffset = max(100, yTopOffset)
+                    yTopOffset += 20
+                if len(self.transform) > 0:
+                    yTopOffset += 5
             else:
                 pass
 
@@ -1131,6 +1132,7 @@ class DisplayMappingResults(object):
 
         labelFont = ImageFont.truetype(font=VERDANA_FILE, size=12*fontZoom)
         labelColor = BLACK
+
         if self.dataset.type == "Publish" or self.dataset.type == "Geno":
             dataset_label = self.dataset.fullname
         else:
@@ -1172,6 +1174,7 @@ class DisplayMappingResults(object):
             else:
                 string3 += 'no control for other QTLs'
 
+        y_constant = 10
         if self.this_trait.name:
             if self.selectedChr == -1:
                 identification = "Mapping on All Chromosomes for "
@@ -1197,23 +1200,48 @@ 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=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom), font=labelFont,
                 fill=labelColor)
+            y_constant += 15
         else:
             d = 4+ max(
                 im_drawer.textsize(string1, font=labelFont)[0],
                 im_drawer.textsize(string2, font=labelFont)[0])
+
+        if len(self.transform) > 0:
+            transform_text = "Transform - "
+            if self.transform == "qnorm":
+                transform_text += "Quantile Normalized"
+            elif self.transform == "log2" or self.transform == "log10":
+                transform_text += self.transform.capitalize()
+            elif self.transform == "sqrt":
+                transform_text += "Square Root"
+            elif self.transform == "zscore":
+                transform_text += "Z-Score"
+            elif self.transform == "invert":
+                transform_text += "Invert +/-"
+
+            im_drawer.text(
+                text=transform_text, xy=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom),
+                font=labelFont, fill=labelColor)
+            y_constant += 15
         im_drawer.text(
-            text=string1, xy=(canvas.size[0] - xRightOffset-d, 35*fontZoom),
+            text=string1, xy=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom),
             font=labelFont, fill=labelColor)
+        y_constant += 15
         im_drawer.text(
-            text=string2, xy=(canvas.size[0] - xRightOffset-d, 50*fontZoom),
+            text=string2, xy=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom),
             font=labelFont, fill=labelColor)
+        y_constant += 15
         if string3 != '':
             im_drawer.text(
-                text=string3, xy=(canvas.size[0] - xRightOffset-d, 65*fontZoom),
+                text=string3, xy=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom),
                 font=labelFont, fill=labelColor)
-
+            y_constant += 15
+            if string4 != '':
+                im_drawer.text(
+                    text=string4, xy=(canvas.size[0] - xRightOffset-d, y_constant*fontZoom),
+                    font=labelFont, fill=labelColor)
 
     def drawGeneBand(self, canvas, gifmap, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None):
         im_drawer = ImageDraw.Draw(canvas)