1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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)
|