about summary refs log tree commit diff
path: root/web/webqtl/pairScan/CategoryGraphPage.py
diff options
context:
space:
mode:
authorPjotr Prins2015-03-30 10:26:50 +0200
committerPjotr Prins2015-03-30 10:26:50 +0200
commit949d056c60f0b8ff4b9ffedaa08ca12d60e26ddf (patch)
treea34c2c887905d3fe25331a43f77ca41aaf9c7abf /web/webqtl/pairScan/CategoryGraphPage.py
parent38594c7781b587a24be14b9631a73662ee3fdc2b (diff)
parent67d7d982f96cfd0f3dcb9806ecc6d2f947af9dc9 (diff)
downloadgenenetwork2-949d056c60f0b8ff4b9ffedaa08ca12d60e26ddf.tar.gz
Merge branch 'master' into lmm
Diffstat (limited to 'web/webqtl/pairScan/CategoryGraphPage.py')
-rwxr-xr-xweb/webqtl/pairScan/CategoryGraphPage.py199
1 files changed, 0 insertions, 199 deletions
diff --git a/web/webqtl/pairScan/CategoryGraphPage.py b/web/webqtl/pairScan/CategoryGraphPage.py
deleted file mode 100755
index 696c05ce..00000000
--- a/web/webqtl/pairScan/CategoryGraphPage.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
-#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Affero General Public License
-# as published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the GNU Affero General Public License for more details.
-#
-# This program is available from Source Forge: at GeneNetwork Project
-# (sourceforge.net/projects/genenetwork/).
-#
-# Contact Drs. Robert W. Williams and Xiaodong Zhou (2010)
-# at rwilliams@uthsc.edu and xzhou15@uthsc.edu
-#
-#
-#
-# This module is used by GeneNetwork project (www.genenetwork.org)
-#
-# Created by GeneNetwork Core Team 2010/08/10
-#
-# Last updated by GeneNetwork Core Team 2010/10/20
-
-import string
-import piddle as pid
-from htmlgen import HTMLgen2 as HT
-
-from utility import Plot
-from base.templatePage import templatePage
-from utility import webqtlUtil
-from base import webqtlConfig
-
-#########################################
-#      Category Graph Page
-#########################################
-class CategoryGraphPage(templatePage):
-	def __init__(self, fd):
-
-		LRSFullThresh = 30
-		LRSInteractThresh = 25
-		maxPlotSize = 800
-		mainfmName = webqtlUtil.genRandStr("fm_")
-
-		templatePage.__init__(self, fd)
-
-		if not fd.genotype:
-			fd.readData()
-
-		##Remove F1 and Parents
-		fd.genotype = fd.genotype_1
-
-		plotType = fd.formdata.getvalue('plotType')
-		self.dict['title'] = '%s Plot' % plotType
-		main_title = HT.Paragraph("%s Plot" % plotType)
-		main_title.__setattr__("class","title")
-
-		interval1 = fd.formdata.getvalue('interval1')
-		interval2 = fd.formdata.getvalue('interval2')
-
-		flanka1, flanka2, chram = string.split(interval1)
-		flankb1, flankb2, chrbm = string.split(interval2)
-
-		traitValues = string.split(fd.formdata.getvalue('traitValues'), ',')
-		traitValues = map(webqtlUtil.StringAsFloat, traitValues)
-		traitStrains = string.split(fd.formdata.getvalue('traitStrains'), ',')
-
-		flankaGeno = []
-		flankbGeno = []
-
-		for chr in fd.genotype:
-			for locus in chr:
-				if locus.name in (flanka1, flankb1):
-					if locus.name == flanka1:
-						flankaGeno = locus.genotype[:]
-					else:
-						flankbGeno = locus.genotype[:]
-			if flankaGeno and flankbGeno:
-				break
-
-		flankaDict = {}
-		flankbDict = {}
-		for i in range(len(fd.genotype.prgy)):
-			flankaDict[fd.genotype.prgy[i]] = flankaGeno[i]
-			flankbDict[fd.genotype.prgy[i]] = flankbGeno[i]
-
-		BB = []
-		BD = []
-		DB = []
-		DD = []
-
-		iValues = []
-		for i in range(len(traitValues)):
-			if traitValues[i] != None:
-				iValues.append(traitValues[i])
-				thisstrain = traitStrains[i]
-				try:
-					a1 = flankaDict[thisstrain]
-					b1 = flankbDict[thisstrain]
-				except:
-					continue
-				if a1 == -1.0:
-					if b1 == -1.0:
-						BB.append((thisstrain, traitValues[i]))
-					elif b1 == 1.0:
-						BD.append((thisstrain, traitValues[i]))
-				elif a1 == 1.0:
-					if b1 == -1.0:
-						DB.append((thisstrain, traitValues[i]))
-					elif b1 == 1.0:
-						DD.append((thisstrain, traitValues[i]))
-				else:
-					pass
-
-		#print BB, BD, DB, DD, max(iValues), min(iValues)
-
-		plotHeight = 400
-		plotWidth = 600
-		xLeftOffset = 60
-		xRightOffset = 40
-		yTopOffset = 40
-		yBottomOffset = 60
-
-		canvasHeight = plotHeight + yTopOffset + yBottomOffset
-		canvasWidth = plotWidth + xLeftOffset + xRightOffset
-		canvas = pid.PILCanvas(size=(canvasWidth,canvasHeight))
-		XXX = [('Mat/Mat', BB), ('Mat/Pat', BD), ('Pat/Mat', DB), ('Pat/Pat', DD)]
-		XLabel = "Interval 1 / Interval 2"
-
-		if plotType == "Box":
-			Plot.plotBoxPlot(canvas, XXX, offset=(xLeftOffset, xRightOffset, yTopOffset, yBottomOffset), XLabel = XLabel)
-		else:
-			#Could be a separate function, but seems no other uses
-			max_Y = max(iValues)
-			min_Y = min(iValues)
-			scaleY = Plot.detScale(min_Y, max_Y)
-			Yll = scaleY[0]
-			Yur = scaleY[1]
-			nStep = scaleY[2]
-			stepY = (Yur - Yll)/nStep
-			stepYPixel = plotHeight/(nStep)
-			canvas.drawRect(plotWidth+xLeftOffset, plotHeight + yTopOffset, xLeftOffset, yTopOffset)
-
-			##draw Y Scale
-			YYY = Yll
-			YCoord = plotHeight + yTopOffset
-			scaleFont=pid.Font(ttf="cour",size=11,bold=1)
-			for i in range(nStep+1):
-				strY = Plot.cformat(d=YYY, rank=0)
-				YCoord = max(YCoord, yTopOffset)
-				canvas.drawLine(xLeftOffset,YCoord,xLeftOffset-5,YCoord)
-				canvas.drawString(strY,	xLeftOffset -30,YCoord +5,font=scaleFont)
-				YYY += stepY
-				YCoord -= stepYPixel
-
-
-			##draw X Scale
-			stepX = plotWidth/len(XXX)
-			XCoord = xLeftOffset + 0.5*stepX
-			YCoord = plotHeight + yTopOffset
-			scaleFont = pid.Font(ttf="tahoma",size=12,bold=0)
-			labelFont = pid.Font(ttf="tahoma",size=13,bold=0)
-			for item in XXX:
-				itemname, itemvalue = item
-				canvas.drawLine(XCoord, YCoord,XCoord, YCoord+5, color=pid.black)
-				canvas.drawString(itemname, XCoord - canvas.stringWidth(itemname,font=labelFont)/2.0,YCoord +20,font=labelFont)
-				itemvalue.sort(webqtlUtil.cmpOrder2)
-				j = 0
-				for item2 in itemvalue:
-					tstrain, tvalue = item2
-					canvas.drawCross(XCoord, plotHeight + yTopOffset - (tvalue-Yll)*plotHeight/(Yur - Yll), color=pid.red,size=5)
-					if j % 2 == 0:
-						canvas.drawString(tstrain, XCoord+5, plotHeight + yTopOffset - \
-						(tvalue-Yll)*plotHeight/(Yur - Yll) +5, font=scaleFont, color=pid.blue)
-					else:
-						canvas.drawString(tstrain, XCoord-canvas.stringWidth(tstrain,font=scaleFont)-5, \
-						plotHeight + yTopOffset - (tvalue-Yll)*plotHeight/(Yur - Yll) +5, font=scaleFont, color=pid.blue)
-					j += 1
-				XCoord += stepX
-
-
-			labelFont=pid.Font(ttf="verdana",size=18,bold=0)
-			canvas.drawString(XLabel, xLeftOffset + (plotWidth -canvas.stringWidth(XLabel,font=labelFont))/2.0, YCoord +40, font=labelFont)
-			canvas.drawString("Value",xLeftOffset-40,  YCoord-(plotHeight -canvas.stringWidth("Value",font=labelFont))/2.0, font=labelFont, angle =90)
-
-
-		filename= webqtlUtil.genRandStr("Cate_")
-		canvas.save(webqtlConfig.IMGDIR+filename, format='gif')
-		img=HT.Image('/image/'+filename+'.gif',border=0)
-
-		TD_LR = HT.TD(height=200,width="100%",bgColor='#eeeeee',valign='top')
-		TD_LR.append(main_title, HT.Center(img))#, traitValues , len(traitValues), traitStrains, len(traitStrains), len(fd.genotype.prgy))
-		#TD_LR.append(main_title, HT.BR(), flanka1, flanka2, chram, HT.BR(), flankb1, flankb2, chrbm)
-		self.dict['body'] = str(TD_LR)
-
-
-