aboutsummaryrefslogtreecommitdiff
path: root/web/webqtl/showTrait/ShowBestTrait.py
diff options
context:
space:
mode:
Diffstat (limited to 'web/webqtl/showTrait/ShowBestTrait.py')
-rwxr-xr-xweb/webqtl/showTrait/ShowBestTrait.py195
1 files changed, 195 insertions, 0 deletions
diff --git a/web/webqtl/showTrait/ShowBestTrait.py b/web/webqtl/showTrait/ShowBestTrait.py
new file mode 100755
index 00000000..9eb42923
--- /dev/null
+++ b/web/webqtl/showTrait/ShowBestTrait.py
@@ -0,0 +1,195 @@
+# 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
+
+#from base.templatePage import templatePage
+#from basicStatistics.BasicStatisticsPage import BasicStatisticsPage
+from htmlgen import HTMLgen2 as HT
+
+from base import webqtlConfig
+from utility import webqtlUtil
+from base.webqtlTrait import webqtlTrait
+from base.templatePage import templatePage
+from DataEditingPage import DataEditingPage
+
+
+#class ShowBestTrait(BasicStatisticsPage, templatePage):
+
+class ShowBestTrait(DataEditingPage):
+ def __init__(self,fd):
+
+ ########## geneName means symbol ##########
+ geneName = fd.formdata.getvalue('gene')
+ if geneName:
+ geneName = string.strip(geneName)
+
+ refseq = fd.formdata.getvalue('refseq')
+ if refseq:
+ refseq = string.strip(refseq)
+
+ genbankid = fd.formdata.getvalue('genbankid')
+ if genbankid:
+ genbankid = string.strip(genbankid)
+
+ geneid = fd.formdata.getvalue('geneid')
+ if geneid:
+ geneid = string.strip(geneid)
+
+ species = fd.formdata.getvalue('species')
+ tissue = fd.formdata.getvalue('tissue')
+ database = fd.formdata.getvalue('database')
+
+ ########## searchAlias is just a singal, so it doesn't need be stripped ##########
+ searchAlias = fd.formdata.getvalue('searchAlias')
+
+ if not self.openMysql():
+ return
+
+ if database:
+ if geneName:
+ if searchAlias:
+ self.cursor.execute(""" SELECT ProbeSetXRef.*
+ FROM
+ ProbeSet, ProbeSetXRef, DBList
+ WHERE
+ ProbeSetXRef.ProbeSetFreezeId = DBList.FreezeId AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ (DBList.Name=%s or DBList.Code=%s) AND
+ MATCH (ProbeSet.symbol, alias) AGAINST ("+%s" IN BOOLEAN MODE)
+ ORDER BY ProbeSetXRef.mean DESC
+ """ , (database, database, geneName))
+ else:
+ self.cursor.execute(""" SELECT ProbeSetXRef.*
+ FROM
+ ProbeSet, ProbeSetXRef, DBList
+ WHERE
+ ProbeSetXRef.ProbeSetFreezeId = DBList.FreezeId AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ (DBList.Name=%s or DBList.Code=%s) AND
+ ProbeSet.symbol = %s
+ ORDER BY ProbeSetXRef.mean DESC
+ """ , (database, database, geneName))
+ elif refseq:
+ self.cursor.execute(""" SELECT ProbeSetXRef.*
+ FROM
+ ProbeSet, ProbeSetXRef, DBList
+ WHERE
+ ProbeSetXRef.ProbeSetFreezeId = DBList.FreezeId AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ (DBList.Name=%s or DBList.Code=%s) AND
+ ProbeSet.RefSeq_TranscriptId = %s
+ ORDER BY ProbeSetXRef.mean DESC
+ """ , (database, database, refseq))
+ elif genbankid:
+ self.cursor.execute(""" SELECT ProbeSetXRef.*
+ FROM
+ ProbeSet, ProbeSetXRef, DBList
+ WHERE
+ ProbeSetXRef.ProbeSetFreezeId = DBList.FreezeId AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ (DBList.Name=%s or DBList.Code=%s) AND
+ ProbeSet.GenbankId = %s
+ ORDER BY ProbeSetXRef.mean DESC
+ """ , (database, database, genbankid))
+ elif geneid:
+ self.cursor.execute(""" SELECT ProbeSetXRef.*
+ FROM
+ ProbeSet, ProbeSetXRef, DBList
+ WHERE
+ ProbeSetXRef.ProbeSetFreezeId = DBList.FreezeId AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ (DBList.Name=%s or DBList.Code=%s) AND
+ ProbeSet.GeneId = %s
+ ORDER BY ProbeSetXRef.mean DESC
+ """ , (database, database, geneid))
+
+ Results = self.cursor.fetchone()
+
+
+
+ ########## select the Data that match the selection(currently, only max mean available) ##########
+ if Results:
+ ProbeSetFreezeId = Results[0]
+ ProbeSetId = Results[1]
+ DataId = Results[2]
+
+ self.cursor.execute("""
+ select
+ InbredSet.Name
+ from
+ InbredSet, ProbeFreeze, ProbeSetFreeze
+ where
+ InbredSet.Id=ProbeFreeze.InbredSetId and
+ ProbeFreeze.Id=ProbeSetFreeze.ProbeFreezeId and
+ ProbeSetFreeze.Id=%s
+ """, ProbeSetFreezeId)
+ fd.RISet = self.cursor.fetchone()[0]
+ #fd.RISet = Results[0]
+
+ self.cursor.execute("select Name, FullName from ProbeSetFreeze where Id=%s", ProbeSetFreezeId)
+ fd.database, fd.identification = self.cursor.fetchone()
+
+ self.cursor.execute("select Name, symbol, description from ProbeSet where Id=%s", ProbeSetId)
+ fd.ProbeSetID, fd.symbol, fd.description = self.cursor.fetchone()
+
+ fd.identification += ' : '+fd.ProbeSetID
+ fd.formdata['fullname'] = fd.database+'::'+fd.ProbeSetID
+
+ #XZ, 03/03/2009: Xiaodong changed Data to ProbeSetData
+ self.cursor.execute("select Strain.Name, ProbeSetData.Value from Strain, ProbeSetData where Strain.Id=ProbeSetData.StrainId and ProbeSetData.Id=%s", DataId)
+ Results = self.cursor.fetchall()
+
+ fd.allstrainlist = []
+ for item in Results:
+ fd.formdata[item[0]] = item[1]
+ fd.allstrainlist.append(item[0])
+
+ #XZ, 03/12/2009: Xiaodong changed SE to ProbeSetSE
+ self.cursor.execute("select Strain.Name, ProbeSetSE.error from Strain, ProbeSetSE where Strain.Id = ProbeSetSE.StrainId and ProbeSetSE.DataId=%s", DataId)
+ Results = self.cursor.fetchall()
+ for item in Results:
+ fd.formdata['V'+item[0]] = item[1]
+ else:
+ fd.RISet = 'BXD'
+ fd.database = 'KI_2A_0405_Rz'
+ fd.ProbeSetID = '1367452_at'
+ else:
+ fd.RISet = 'BXD'
+ fd.database = 'KI_2A_0405_Rz'
+ fd.ProbeSetID = '1367452_at'
+
+
+ #BasicStatisticsPage.__init__(self, fd)
+
+
+ thisTrait = webqtlTrait(db=fd.database, name=fd.ProbeSetID, cursor=self.cursor)
+ thisTrait.retrieveInfo()
+ thisTrait.retrieveData()
+ DataEditingPage.__init__(self, fd, thisTrait)
+ self.dict['title'] = '%s: Display Trait' % fd.identification
+
+