about summary refs log tree commit diff
path: root/web/webqtl/pairScan/PairPlotPage.py
diff options
context:
space:
mode:
authorzsloan2015-03-27 20:28:51 +0000
committerzsloan2015-03-27 20:28:51 +0000
commitd0911a04958a04042da02a334ccc528dae79cc17 (patch)
tree3c48e2e937c1dbeaf00a5697c87ed251afa5c8f1 /web/webqtl/pairScan/PairPlotPage.py
parenta840ad18e1fe3db98a359a159e9b9b72367a2839 (diff)
downloadgenenetwork2-d0911a04958a04042da02a334ccc528dae79cc17.tar.gz
Removed everything from 'web' directory except genofiles and renamed the directory to 'genotype_files'
Diffstat (limited to 'web/webqtl/pairScan/PairPlotPage.py')
-rwxr-xr-xweb/webqtl/pairScan/PairPlotPage.py314
1 files changed, 0 insertions, 314 deletions
diff --git a/web/webqtl/pairScan/PairPlotPage.py b/web/webqtl/pairScan/PairPlotPage.py
deleted file mode 100755
index 3f72bd74..00000000
--- a/web/webqtl/pairScan/PairPlotPage.py
+++ /dev/null
@@ -1,314 +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
-import os
-
-from htmlgen import HTMLgen2 as HT
-import direct
-
-from utility import Plot
-from base.templatePage import templatePage
-from utility import webqtlUtil
-from base import webqtlConfig
-
-#########################################
-#      PairPlotPage
-#########################################
-class PairPlotPage(templatePage):
-	def __init__(self, fd):
-
-		LRSFullThresh = 30
-		LRSInteractThresh = 25
-		maxPlotSize = 1000
-		mainfmName = webqtlUtil.genRandStr("fm_")
-
-		templatePage.__init__(self, fd)
-
-		self.dict['title'] = 'Pair-Scan Plot'
-
-		if not self.openMysql():
-			return
-
-		TD_LR = HT.TD(height=200,width="100%",bgColor='#eeeeee')
-		vals = fd.formdata.getvalue('idata')
-		vals = map(float,string.split(vals,','))
-		strains = fd.formdata.getvalue('istrain')
-		strains = string.split(strains,',')
-		Chr_A = int(fd.formdata.getvalue('Chr_A'))
-		Chr_B = int(fd.formdata.getvalue('Chr_B'))
-		if len(vals) > webqtlConfig.KMININFORMATIVE:
-			d = direct.exhaust(webqtlConfig.GENODIR, vals, strains, fd.RISet, Chr_A, Chr_B)#XZ, 08/14/2008: add module name webqtlConfig
-			chrsInfo = d[2]
-			longerChrLen = max(chrsInfo[Chr_A][0], chrsInfo[Chr_B][0])
-			shorterChrlen = min(chrsInfo[Chr_A][0], chrsInfo[Chr_B][0])
-
-			plotHeight = int(chrsInfo[Chr_B][0]*maxPlotSize/longerChrLen)
-			plotWidth = int(chrsInfo[Chr_A][0]*maxPlotSize/longerChrLen)
-
-
-			xLeftOffset = 200
-			xRightOffset = 40
-			yTopOffset = 40
-			yBottomOffset = 200
-			colorAreaWidth = 120
-
-			canvasHeight = plotHeight + yTopOffset + yBottomOffset
-			canvasWidth = plotWidth + xLeftOffset + xRightOffset + colorAreaWidth
-
-
-			canvas = pid.PILCanvas(size=(canvasWidth,canvasHeight))
-			plotScale = plotHeight/chrsInfo[Chr_B][0]
-
-			rectInfo = d[1]
-			finecolors = Plot.colorSpectrum(250)
-			finecolors.reverse()
-			#draw LRS Full
-			for item in rectInfo:
-				LRSFull,LRSInteract,LRSa,LRSb,chras,chram,chrae,chrbs,chrbm,chrbe,chra,chrb,flanka,flankb = item
-				if Chr_A > Chr_B:
-					colorIndex = int(LRSFull *250 /LRSFullThresh)
-				else:
-					colorIndex = int(LRSInteract *250 /LRSInteractThresh)
-				if colorIndex >= 250:
-					colorIndex = 249
-				elif colorIndex < 0:
-					colorIndex = 0
-				dcolor = finecolors[colorIndex]
-				if chra != chrb or (abs(chrbe - chrae) > 10 and abs(chrbs - chras) > 10):
-					canvas.drawRect(xLeftOffset+chras*plotScale,yTopOffset+plotHeight- \
-					chrbs*plotScale,xLeftOffset+chrae*plotScale,yTopOffset+plotHeight- \
-					chrbe*plotScale,edgeColor=dcolor,fillColor=dcolor,edgeWidth = 0)
-				elif chrbs >= chras:
-					canvas.drawPolygon([(xLeftOffset+chras*plotScale,yTopOffset+plotHeight-chrbs*plotScale),\
-					(xLeftOffset+chras*plotScale,yTopOffset+plotHeight-chrbe*plotScale),\
-					(xLeftOffset+chrae*plotScale,yTopOffset+plotHeight-chrbe*plotScale)],\
-					edgeColor=dcolor,fillColor=dcolor,edgeWidth = 0,closed =1)
-				else:
-					canvas.drawPolygon([(xLeftOffset+chras*plotScale,yTopOffset+plotHeight-chrbs*plotScale),\
-					(xLeftOffset+chrae*plotScale,yTopOffset+plotHeight-chrbs*plotScale), \
-					(xLeftOffset+chrae*plotScale,yTopOffset+plotHeight-chrbe*plotScale)], \
-					edgeColor=dcolor,fillColor=dcolor,edgeWidth = 0,closed =1)
-
-			labelFont=pid.Font(ttf="verdana",size=24,bold=0)
-			chrName = "chromosome %s" % chrsInfo[Chr_A][1]
-			canvas.drawString(chrName,xLeftOffset + (plotWidth - canvas.stringWidth(chrName,font=labelFont))/2,\
-			yTopOffset+plotHeight+ 170,font=labelFont)
-			chrName = "chromosome %s" % chrsInfo[Chr_B][1]
-			canvas.drawString(chrName, 30, yTopOffset +(canvas.stringWidth(chrName,font=labelFont) + plotHeight)/2,\
-			font=labelFont, angle = 90)
-			if Chr_A == Chr_B:
-				infoStr = "minimum distance = 10 cM"
-				infoStrWidth = canvas.stringWidth(infoStr,font=labelFont)
-				canvas.drawString(infoStr, xLeftOffset + (plotWidth-infoStrWidth*0.707)/2, yTopOffset + \
-				(plotHeight+infoStrWidth*0.707)/2,font=labelFont, angle = 45, color=pid.red)
-
-			labelFont=pid.Font(ttf="verdana",size=12,bold=0)
-			gifmap = HT.Map(name='markerMap')
-
-			lineColor = pid.lightblue
-			#draw ChrA Loci
-			ChrAInfo = d[3]
-			preLpos = -1
-			i = 0
-			for item in ChrAInfo:
-				Lname,Lpos = item
-				if Lpos != preLpos:
-					i += 1
-				preLpos = Lpos
-			stepA = float(plotWidth)/i
-
-			offsetA = -stepA
-			LRectWidth = 10
-			LRectHeight = 3
-			i = 0
-			preLpos = -1
-			for item in ChrAInfo:
-				Lname,Lpos = item
-				if Lpos != preLpos:
-					offsetA += stepA
-					differ = 1
-				else:
-					differ = 0
-				preLpos = Lpos
-				Lpos *= plotScale
-				Zorder = i % 5
-				"""
-				LStrWidth = canvas.stringWidth(Lname,font=labelFont)
-				canvas.drawString(Lname,xLeftOffset+offsetA+4,yTopOffset+plotHeight+140,\
-				font=labelFont,color=pid.blue,angle=90)
-				canvas.drawLine(xLeftOffset+Lpos,yTopOffset+plotHeight,xLeftOffset+offsetA,\
-				yTopOffset+plotHeight+25,color=lineColor)
-				canvas.drawLine(xLeftOffset+offsetA,yTopOffset+plotHeight+25,xLeftOffset+offsetA,\
-				yTopOffset+plotHeight+140-LStrWidth,color=lineColor)
-				COORDS="%d,%d,%d,%d"%(xLeftOffset+offsetA+4,yTopOffset+plotHeight+140,\
-				xLeftOffset+offsetA-6,yTopOffset+plotHeight+140-LStrWidth)
-				"""
-				if differ:
-					canvas.drawLine(xLeftOffset+Lpos,yTopOffset+plotHeight,xLeftOffset+offsetA,\
-					yTopOffset+plotHeight+25,color=lineColor)
-					canvas.drawLine(xLeftOffset+offsetA,yTopOffset+plotHeight+25,xLeftOffset+offsetA,\
-					yTopOffset+plotHeight+80+Zorder*(LRectWidth+3),color=lineColor)
-					rectColor = pid.orange
-				else:
-					canvas.drawLine(xLeftOffset+offsetA, yTopOffset+plotHeight+80+Zorder*(LRectWidth+3)-3,\
-					xLeftOffset+offsetA, yTopOffset+plotHeight+80+Zorder*(LRectWidth+3),color=lineColor)
-					rectColor = pid.deeppink
-				canvas.drawRect(xLeftOffset+offsetA, yTopOffset+plotHeight+80+Zorder*(LRectWidth+3),\
-					xLeftOffset+offsetA-LRectHeight,yTopOffset+plotHeight+80+Zorder*(LRectWidth+3)+LRectWidth,\
-					edgeColor=rectColor,fillColor=rectColor,edgeWidth = 0)
-				COORDS="%d,%d,%d,%d"%(xLeftOffset+offsetA, yTopOffset+plotHeight+80+Zorder*(LRectWidth+3),\
-					xLeftOffset+offsetA-LRectHeight,yTopOffset+plotHeight+80+Zorder*(LRectWidth+3)+LRectWidth)
-				HREF="javascript:showTrait('%s','%s');" % (mainfmName, Lname)
-				Areas=HT.Area(shape='rect',coords=COORDS,href=HREF, title="Locus : " + Lname)
-				gifmap.areas.append(Areas)
-				i += 1
-				#print (i , offsetA, Lname, Lpos, preLpos)
-				#print "<BR>"
-
-			#draw ChrB Loci
-			ChrBInfo = d[4]
-			preLpos = -1
-			i = 0
-			for item in ChrBInfo:
-				Lname,Lpos = item
-				if Lpos != preLpos:
-					i += 1
-				preLpos = Lpos
-			stepB = float(plotHeight)/i
-
-			offsetB = -stepB
-			LRectWidth = 10
-			LRectHeight = 3
-			i = 0
-			preLpos = -1
-			for item in ChrBInfo:
-				Lname,Lpos = item
-				if Lpos != preLpos:
-					offsetB += stepB
-					differ = 1
-				else:
-					differ = 0
-				preLpos = Lpos
-				Lpos *= plotScale
-				Zorder = i % 5
-				Lname,Lpos = item
-				Lpos *= plotScale
-				"""
-				LStrWidth = canvas.stringWidth(Lname,font=labelFont)
-				canvas.drawString(Lname, 45,yTopOffset+plotHeight-offsetB+4,font=labelFont,color=pid.blue)
-				canvas.drawLine(45+LStrWidth,yTopOffset+plotHeight-offsetB,xLeftOffset-25,\
-				yTopOffset+plotHeight-offsetB,color=lineColor)
-				canvas.drawLine(xLeftOffset-25,yTopOffset+plotHeight-offsetB,xLeftOffset,\
-				yTopOffset+plotHeight-Lpos,color=lineColor)
-				COORDS = "%d,%d,%d,%d" %(45,yTopOffset+plotHeight-offsetB+4,45+LStrWidth,\
-				yTopOffset+plotHeight-offsetB-6)
-				"""
-				if differ:
-					canvas.drawLine(xLeftOffset,yTopOffset+plotHeight-Lpos, xLeftOffset-25,\
-					yTopOffset+plotHeight-offsetB,color=lineColor)
-					canvas.drawLine(xLeftOffset -25, yTopOffset+plotHeight-offsetB, \
-					xLeftOffset-80 -Zorder*(LRectWidth+3),yTopOffset+plotHeight-offsetB, color=lineColor)
-					rectColor = pid.orange
-				else:
-					canvas.drawLine(xLeftOffset -80 -Zorder*(LRectWidth+3)+3, yTopOffset+plotHeight-offsetB, \
-					xLeftOffset-80 -Zorder*(LRectWidth+3),yTopOffset+plotHeight-offsetB, color=lineColor)
-					rectColor = pid.deeppink
-				HREF = "javascript:showTrait('%s','%s');" % (mainfmName, Lname)
-				canvas.drawRect(xLeftOffset-80 -Zorder*(LRectWidth+3),yTopOffset+plotHeight-offsetB,\
-					xLeftOffset-80 -Zorder*(LRectWidth+3)-LRectWidth,yTopOffset+plotHeight-offsetB +LRectHeight,\
-					edgeColor=rectColor,fillColor=rectColor,edgeWidth = 0)
-				COORDS="%d,%d,%d,%d"%(xLeftOffset-80 -Zorder*(LRectWidth+3),yTopOffset+plotHeight-offsetB,\
-					xLeftOffset-80 -Zorder*(LRectWidth+3)-LRectWidth,yTopOffset+plotHeight-offsetB +LRectHeight)
-				Areas=HT.Area(shape='rect',coords=COORDS,href=HREF, title="Locus : " + Lname)
-				gifmap.areas.append(Areas)
-				i += 1
-
-			canvas.drawRect(xLeftOffset, yTopOffset, xLeftOffset+plotWidth, yTopOffset+plotHeight,edgeColor=pid.black)
-
-			#draw spectrum
-			i = 0
-			labelFont=pid.Font(ttf="tahoma",size=14,bold=0)
-			middleoffsetX = 80
-			for dcolor in finecolors:
-				canvas.drawLine(xLeftOffset+ plotWidth +middleoffsetX-15 , plotHeight + yTopOffset - i, \
-				xLeftOffset+ plotWidth +middleoffsetX+15 , plotHeight + yTopOffset - i, color=dcolor)
-				if i % 50 == 0:
-					if Chr_A >= Chr_B:
-						canvas.drawLine(xLeftOffset+ plotWidth +middleoffsetX+15 ,plotHeight + yTopOffset - i, \
-						xLeftOffset+ plotWidth +middleoffsetX+20,plotHeight + yTopOffset - i, color=pid.black)
-						canvas.drawString('%d' % int(LRSFullThresh*i/250.0),xLeftOffset+ plotWidth +middleoffsetX+22,\
-						plotHeight + yTopOffset - i +5, font = labelFont,color=pid.black)
-					if Chr_A <= Chr_B:
-						canvas.drawLine(xLeftOffset+ plotWidth +middleoffsetX-15 ,plotHeight + yTopOffset - i, \
-						xLeftOffset+ plotWidth +middleoffsetX-20,plotHeight + yTopOffset - i, color=pid.black)
-						canvas.drawString('%d' % int(LRSInteractThresh*i/250.0),xLeftOffset+plotWidth+middleoffsetX-40,\
-						plotHeight + yTopOffset - i +5, font = labelFont,color=pid.black)
-				i += 1
-			#draw spectrum label
-			labelFont2=pid.Font(ttf="verdana",size=20,bold=0)
-			if i % 50 == 0:
-				i -= 1
-				if Chr_A >= Chr_B:
-					canvas.drawLine(xLeftOffset+ plotWidth +middleoffsetX+15 ,plotHeight + yTopOffset - i, \
-					xLeftOffset+ plotWidth +middleoffsetX+20,plotHeight + yTopOffset - i, color=pid.black)
-					canvas.drawString('%d' % int(LRSFullThresh*(i+1)/250.0),xLeftOffset+ plotWidth +middleoffsetX+22,\
-					plotHeight + yTopOffset - i +5, font = labelFont,color=pid.black)
-					canvas.drawString('LRS Full',xLeftOffset+ plotWidth +middleoffsetX+50,plotHeight + yTopOffset, \
-					font = labelFont2,color=pid.dimgray,angle=90)
-				if Chr_A <= Chr_B:
-					canvas.drawLine(xLeftOffset+ plotWidth +middleoffsetX-15 ,plotHeight + yTopOffset - i, \
-					xLeftOffset+ plotWidth +middleoffsetX-20,plotHeight + yTopOffset - i, color=pid.black)
-					canvas.drawString('%d' % int(LRSInteractThresh*(i+1)/250.0),xLeftOffset+ plotWidth+middleoffsetX-40,\
-					plotHeight + yTopOffset - i +5, font = labelFont,color=pid.black)
-					canvas.drawString('LRS Interaction',xLeftOffset+ plotWidth +middleoffsetX-50,\
-					plotHeight + yTopOffset, font = labelFont2,color=pid.dimgray,angle=90)
-
-			filename= webqtlUtil.genRandStr("Pair_")
-			canvas.save(webqtlConfig.IMGDIR+filename, format='png')
-			img2=HT.Image('/image/'+filename+'.png',border=0,usemap='#markerMap')
-
-			main_title = HT.Paragraph("Pair-Scan Results: Chromosome Pair")
-			main_title.__setattr__("class","title")
-			form = HT.Form(cgi = os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), enctype='multipart/form-data', \
-			name=mainfmName, submit=HT.Input(type='hidden'))
-			hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':fd.RISet+"Geno",'CellID':'_','RISet':fd.RISet, 'incparentsf1':'on'}
-			if fd.incparentsf1:
-				hddn['incparentsf1']='ON'
-			for key in hddn.keys():
-				form.append(HT.Input(name=key, value=hddn[key], type='hidden'))
-			form.append(img2,gifmap)
-			TD_LR.append(main_title, HT.Center(form), HT.P())
-		else:
-			heading = "Direct Plot"
-			detail = ['Fewer than %d strain data were entered for %s data set. No statitical analysis has been attempted.'\
-			 % (webqtlConfig.KMININFORMATIVE, fd.RISet)]
-			self.error(heading=heading,detail=detail)
-			return
-		self.dict['body'] = str(TD_LR)
-
-