aboutsummaryrefslogtreecommitdiff
path: root/web/webqtl/collection/AddUserInputToSelectionPage.py
diff options
context:
space:
mode:
authorroot2012-05-08 18:39:56 -0500
committerroot2012-05-08 18:39:56 -0500
commitea46f42ee640928b92947bfb204c41a482d80937 (patch)
tree9b27a4eb852d12539b543c3efee9d2a47ef470f3 /web/webqtl/collection/AddUserInputToSelectionPage.py
parent056b5253fc3857b0444382aa39944f6344dc1ceb (diff)
downloadgenenetwork2-ea46f42ee640928b92947bfb204c41a482d80937.tar.gz
Add all the source codes into the github.
Diffstat (limited to 'web/webqtl/collection/AddUserInputToSelectionPage.py')
-rwxr-xr-xweb/webqtl/collection/AddUserInputToSelectionPage.py97
1 files changed, 97 insertions, 0 deletions
diff --git a/web/webqtl/collection/AddUserInputToSelectionPage.py b/web/webqtl/collection/AddUserInputToSelectionPage.py
new file mode 100755
index 00000000..2c69a047
--- /dev/null
+++ b/web/webqtl/collection/AddUserInputToSelectionPage.py
@@ -0,0 +1,97 @@
+# 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
+
+#AddUserInputToSelectionPage.py
+
+import time
+
+from base import webqtlConfig
+from base.templatePage import templatePage
+from utility import webqtlUtil
+from AddToSelectionPage import AddToSelectionPage
+
+#########################################
+# Add UserInput to Selection Page
+#########################################
+class AddUserInputToSelectionPage(AddToSelectionPage):
+
+ def __init__(self, fd):
+
+ templatePage.__init__(self, fd)
+
+ if not self.openMysql():
+ return
+
+ if not fd.genotype:
+ fd.readData(incf1 = 1)
+
+ self.strainlist = []
+ self.vals = []
+ for i, strain in enumerate(fd.f1list + fd.strainlist):
+ if fd.allTraitData.has_key(strain) and fd.allTraitData[strain].val != None:
+ self.strainlist.append(strain)
+ self.vals.append([fd.allTraitData[strain].val, fd.allTraitData[strain].var])
+
+ if len(self.strainlist) > webqtlConfig.KMININFORMATIVE:
+ pass
+ else:
+ templatePage.__init__(self, fd)
+ heading = 'Add to Collection'
+ detail = ['The number of informative strains in your trait is less than %d, this trait can not be added to the selection' % webqtlConfig.KMININFORMATIVE]
+ self.error(heading=heading,detail=detail)
+ return
+
+ self.cursor.execute('delete Temp, TempData from Temp, TempData where Temp.DataId = TempData.Id and UNIX_TIMESTAMP()-UNIX_TIMESTAMP(CreateTime)>%d;' % webqtlConfig.MAXLIFE)
+ ct0 = time.localtime(time.time())
+ ct = time.strftime("%B/%d %H:%M:%S",ct0)
+ if not fd.identification:
+ fd.identification = "Unnamed Trait"
+ user_ip = fd.remote_ip
+ newDescription = '%s entered at %s from IP %s' % (fd.identification,ct,user_ip)
+ newProbeSetID = webqtlUtil.genRandStr("USER_Tmp_")
+ self.cursor.execute('SelecT max(id) from TempData')
+ try:
+ DataId = self.cursor.fetchall()[0][0] + 1
+ except:
+ DataId = 1
+ self.cursor.execute('SelecT Id from InbredSet where Name = "%s"' % fd.RISet)
+ InbredSetId = self.cursor.fetchall()[0][0]
+
+ self.cursor.execute('insert into Temp(Name,description, createtime,DataId,InbredSetId,IP) values(%s,%s,Now(),%s,%s,%s)' ,(newProbeSetID, newDescription, DataId,InbredSetId,user_ip))
+
+ k = 0
+ for Strain in self.strainlist:
+ self.cursor.execute('SelecT Strain.Id from Strain,StrainXRef where Strain.Name = "%s" and Strain.Id = StrainXRef.StrainId and StrainXRef.InbredSetId=%d' % (Strain, InbredSetId))
+ StrainId = self.cursor.fetchall()[0][0]
+ self.cursor.execute('insert into TempData(Id, StrainId, value, SE) values(%s,%s,%s,%s)' , (DataId, StrainId, self.vals[k][0], self.vals[k][1]))
+ k += 1
+
+ self.searchResult = ['Temp::%s' % newProbeSetID]
+
+ if self.genSelection(fd=fd):
+ self.writeHTML(fd)
+
+