aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Sloan2012-11-29 18:44:01 -0600
committerZachary Sloan2012-11-29 18:44:01 -0600
commit94300b4488aa334ced34981981ad5d0ecdec01d6 (patch)
tree2e1c67ccf85dc66b1d0100ca11d2c3378ee43ae0
parent8540859f868a5fa6827f35d7fa5cc14e97360850 (diff)
downloadgenenetwork2-94300b4488aa334ced34981981ad5d0ecdec01d6.tar.gz
Changed a number of variables (riset to group, db to dataset)
Put most of the code for cisLRS and transLRS searches into the class CisTransLrsSearch (might change this name to something else later) Simplified escape code for searches in do_search.py Got search_results working again after some changes
-rwxr-xr-xwqflask/base/data_set.py5
-rwxr-xr-xwqflask/base/webqtlFormData.py26
-rwxr-xr-xwqflask/base/webqtlTrait.py146
-rwxr-xr-xwqflask/dbFunction/webqtlDatabaseFunction.py4
-rw-r--r--wqflask/wqflask/do_search.py237
-rw-r--r--wqflask/wqflask/search_results.py18
-rwxr-xr-xwqflask/wqflask/show_trait/show_trait.py83
-rw-r--r--wqflask/wqflask/templates/index_page.html4
-rw-r--r--wqflask/wqflask/templates/search_result_page.html2
-rw-r--r--wqflask/wqflask/views.py3
10 files changed, 241 insertions, 287 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index d9d3a52b..633f7545 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -392,8 +392,9 @@ class MrnaAssayDataSet(DataSet):
if len(description_display) > 1 and description_display != 'N/A' and len(target_string) > 1 and target_string != 'None':
description_display = description_display + '; ' + target_string.strip()
- # Save it for the jinja2 tablet
+ # Save it for the jinja2 template
this_trait.description_display = description_display
+ #print(" xxxxdd [%s]: %s" % (type(this_trait.description_display), description_display))
#XZ: trait_location_value is used for sorting
trait_location_repr = 'N/A'
@@ -418,7 +419,7 @@ class MrnaAssayDataSet(DataSet):
where ProbeSetXRef.ProbeSetFreezeId = %s and
ProbeSet.Id = ProbeSetXRef.ProbeSetId and
ProbeSet.Name = '%s'
- """ % (self.db_conn.escape_string(str(this_trait.db.id)),
+ """ % (self.db_conn.escape_string(str(this_trait.dataset.id)),
self.db_conn.escape_string(this_trait.name)))
print("query is:", pf(query))
diff --git a/wqflask/base/webqtlFormData.py b/wqflask/base/webqtlFormData.py
index ff1db0e8..a3537c87 100755
--- a/wqflask/base/webqtlFormData.py
+++ b/wqflask/base/webqtlFormData.py
@@ -47,7 +47,7 @@ from utility import webqtlUtil
class webqtlFormData(object):
'Represents data from a WebQTL form page, needed to generate the next page'
- attrs = ('formID','RISet','genotype','samplelist','allsamplelist', 'display_variance'
+ attrs = ('formID','group','genotype','samplelist','allsamplelist', 'display_variance'
'suggestive','significance','submitID','identification', 'enablevariance',
'nperm','nboot','email','incparentsf1','genotype_1','genotype_2','traitInfo')
@@ -104,11 +104,11 @@ class webqtlFormData(object):
self.ppolar = None
self.mpolar = None
- print("[yellow] self.RISet is:", self.RISet)
- if self.RISet:
+ print("[yellow] self.group is:", self.group)
+ if self.group:
#try:
# # NL, 07/27/2010. ParInfo has been moved from webqtlForm.py to webqtlUtil.py;
- _f1, _f12, self.mpolar, self.ppolar = webqtlUtil.ParInfo[self.RISet]
+ _f1, _f12, self.mpolar, self.ppolar = webqtlUtil.ParInfo[self.group]
#except:
# f1 = f12 = self.mpolar = self.ppolar = None
@@ -129,8 +129,8 @@ class webqtlFormData(object):
#self.readGenotype()
#self.readData()
- if self.RISet == 'BXD300':
- self.RISet = 'BXD'
+ if self.group == 'BXD300':
+ self.group = 'BXD'
def __getitem__(self, key):
@@ -153,17 +153,17 @@ class webqtlFormData(object):
def readGenotype(self):
'''read genotype from .geno file'''
- if self.RISet == 'BXD300':
- self.RISet = 'BXD'
+ if self.group == 'BXD300':
+ self.group = 'BXD'
- assert self.RISet, "self.RISet needs to be set"
+ assert self.group, "self.group needs to be set"
#genotype_1 is Dataset Object without parents and f1
#genotype_2 is Dataset Object with parents and f1 (not for intercross)
self.genotype_1 = reaper.Dataset()
- full_filename = os.path.join(webqtlConfig.GENODIR, self.RISet + '.geno')
+ full_filename = os.path.join(webqtlConfig.GENODIR, self.group + '.geno')
# reaper barfs on unicode filenames, so here we ensure it's a string
full_filename = str(full_filename)
@@ -173,12 +173,12 @@ class webqtlFormData(object):
try:
# NL, 07/27/2010. ParInfo has been moved from webqtlForm.py to webqtlUtil.py;
- _f1, _f12, _mat, _pat = webqtlUtil.ParInfo[self.RISet]
+ _f1, _f12, _mat, _pat = webqtlUtil.ParInfo[self.group]
except KeyError:
_f1 = _f12 = _mat = _pat = None
self.genotype_2 = self.genotype_1
- if self.genotype_1.type == "riset" and _mat and _pat:
+ if self.genotype_1.type == "group" and _mat and _pat:
self.genotype_2 = self.genotype_1.add(Mat=_mat, Pat=_pat) #, F1=_f1)
#determine default genotype object
@@ -333,7 +333,7 @@ class webqtlFormData(object):
def Sample(self):
'Create some dummy data for testing'
- self.RISet = 'BXD'
+ self.group = 'BXD'
self.incparentsf1 = 'on'
#self.display = 9.2
#self.significance = 16.1
diff --git a/wqflask/base/webqtlTrait.py b/wqflask/base/webqtlTrait.py
index 29087721..cc0e2321 100755
--- a/wqflask/base/webqtlTrait.py
+++ b/wqflask/base/webqtlTrait.py
@@ -24,11 +24,11 @@ class webqtlTrait:
print("in webqtlTrait")
self.db_conn = db_conn
self.cursor = self.db_conn.cursor()
- self.db = None # database object
+ self.dataset = None # database object
self.name = '' # Trait ID, ProbeSet ID, Published ID, etc.
self.cellid = ''
self.identification = 'un-named trait'
- self.riset = ''
+ self.group = ''
self.haveinfo = 0
self.sequence = '' # Blat sequence, available for ProbeSet
self.data = {}
@@ -41,22 +41,22 @@ class webqtlTrait:
elif name == 'fullname':
name2 = value.split("::")
if len(name2) == 2:
- self.db, self.name = name2
+ self.dataset, self.name = name2
elif len(name2) == 3:
- self.db, self.name, self.cellid = name2
+ self.dataset, self.name, self.cellid = name2
else:
raise KeyError, repr(value) + ' parameter format error.'
else:
raise KeyError, repr(name) + ' not a valid parameter for this class.'
- if self.db and isinstance(self.db, basestring):
+ if self.dataset and isinstance(self.dataset, basestring):
assert self.cursor, "Don't have a cursor"
- self.db = create_dataset(self.db_conn, self.db)
+ self.dataset = create_dataset(self.db_conn, self.dataset)
- #if self.db == None, not from a database
- print("self.db is:", self.db, type(self.db))
- if self.db:
- if self.db.type == "Temp":
+ #if self.dataset == None, not from a database
+ print("self.dataset is:", self.dataset, type(self.dataset))
+ if self.dataset:
+ if self.dataset.type == "Temp":
self.cursor.execute('''
SELECT
InbredSet.Name
@@ -66,9 +66,11 @@ class webqtlTrait:
Temp.InbredSetId = InbredSet.Id AND
Temp.Name = "%s"
''', self.name)
- self.riset = self.cursor.fetchone()[0]
+ self.group = self.cursor.fetchone()[0]
else:
- self.riset = self.db.get_group()
+ self.group = self.dataset.get_group()
+
+ print("trinity, self.group is:", self.group)
#
# In ProbeSet, there are maybe several annotations match one sequence
@@ -82,8 +84,8 @@ class webqtlTrait:
# The variable self.sequence should be changed to self.BlatSeq
# It also should be changed in other places where it are used.
- if self.db:
- if self.db.type == 'ProbeSet':
+ if self.dataset:
+ if self.dataset.type == 'ProbeSet':
print("Doing ProbeSet Query")
query = '''
SELECT
@@ -95,7 +97,7 @@ class webqtlTrait:
ProbeSetFreeze.Id = ProbeSetXRef.ProbeSetFreezeId and
ProbeSet.Name = %s and
ProbeSetFreeze.Name = %s
- ''', (self.name, self.db.name)
+ ''', (self.name, self.dataset.name)
print("query is:", query)
self.cursor.execute(*query)
self.sequence = self.cursor.fetchone()[0]
@@ -104,8 +106,8 @@ class webqtlTrait:
def getName(self):
str = ""
- if self.db and self.name:
- str = "%s::%s" % (self.db, self.name)
+ if self.dataset and self.name:
+ str = "%s::%s" % (self.dataset, self.name)
if self.cellid:
str += "::" + self.cellid
else:
@@ -124,8 +126,8 @@ class webqtlTrait:
#
def getGivenName(self):
str = self.name
- if self.db and self.name:
- if self.db.type=='Temp':
+ if self.dataset and self.name:
+ if self.dataset.type=='Temp':
self.cursor.execute('SELECT description FROM Temp WHERE Name=%s', self.name)
desc = self.cursor.fetchone()[0]
if desc.__contains__('PCA'):
@@ -137,16 +139,16 @@ class webqtlTrait:
def displayName(self):
str = ""
- if self.db and self.name:
- if self.db.type=='Temp':
+ if self.dataset and self.name:
+ if self.dataset.type=='Temp':
desc = self.description
if desc.__contains__('PCA'):
desc = desc[desc.rindex(':')+1:].strip()
else:
desc = desc[:desc.index('entered')].strip()
- str = "%s::%s" % (self.db, desc)
+ str = "%s::%s" % (self.dataset, desc)
else:
- str = "%s::%s" % (self.db, self.name)
+ str = "%s::%s" % (self.dataset, self.name)
if self.cellid:
str += "::" + self.cellid
else:
@@ -156,7 +158,7 @@ class webqtlTrait:
#def __str__(self):
- # #return "%s %s" % (self.getName(), self.riset)
+ # #return "%s %s" % (self.getName(), self.group)
# return self.getName()
#__str__ = getName
#__repr__ = __str__
@@ -207,7 +209,7 @@ class webqtlTrait:
#
def getSequence(self):
assert self.cursor
- if self.db.type == 'ProbeSet':
+ if self.dataset.type == 'ProbeSet':
self.cursor.execute('''
SELECT
ProbeSet.BlatSeq
@@ -218,7 +220,7 @@ class webqtlTrait:
ProbeSetFreeze.Id = ProbeSetXRef.ProbSetFreezeId and
ProbeSet.Name = %s
ProbeSetFreeze.Name = %s
- ''', self.name, self.db.name)
+ ''', self.name, self.dataset.name)
#self.cursor.execute(query)
results = self.fetchone()
@@ -230,9 +232,9 @@ class webqtlTrait:
if samplelist == None:
samplelist = []
- assert self.db and self.cursor
+ assert self.dataset and self.cursor
- if self.db.type == 'Temp':
+ if self.dataset.type == 'Temp':
query = '''
SELECT
Strain.Name, TempData.value, TempData.SE, TempData.NStrain, TempData.Id
@@ -246,7 +248,7 @@ class webqtlTrait:
Strain.Name
''' % self.name
#XZ, 03/02/2009: Xiaodong changed Data to PublishData, SE to PublishSE
- elif self.db.type == 'Publish':
+ elif self.dataset.type == 'Publish':
query = '''
SELECT
Strain.Name, PublishData.value, PublishSE.error, NStrain.count, PublishData.Id
@@ -263,7 +265,7 @@ class webqtlTrait:
PublishFreeze.Id = %d AND PublishData.StrainId = Strain.Id
Order BY
Strain.Name
- ''' % (self.name, self.db.id)
+ ''' % (self.name, self.dataset.id)
#XZ, 03/02/2009: Xiaodong changed Data to ProbeData, SE to ProbeSE
elif self.cellid:
@@ -287,9 +289,9 @@ class webqtlTrait:
ProbeData.StrainId = Strain.Id
Order BY
Strain.Name
- ''' % (self.cellid, self.name, self.db.name)
+ ''' % (self.cellid, self.name, self.dataset.name)
#XZ, 03/02/2009: Xiaodong added this block for ProbeSetData and ProbeSetSE
- elif self.db.type == 'ProbeSet':
+ elif self.dataset.type == 'ProbeSet':
#ProbeSet Data
query = '''
SELECT
@@ -306,7 +308,7 @@ class webqtlTrait:
ProbeSetData.StrainId = Strain.Id
Order BY
Strain.Name
- ''' % (self.name, self.db.name)
+ ''' % (self.name, self.dataset.name)
#XZ, 03/02/2009: Xiaodong changeded Data to GenoData, SE to GenoSE
else:
#Geno Data
@@ -326,7 +328,7 @@ class webqtlTrait:
GenoData.StrainId = Strain.Id
Order BY
Strain.Name
- ''' % (webqtlDatabaseFunction.retrieveSpeciesId(self.cursor, self.db.riset), self.name, self.db.name)
+ ''' % (webqtlDatabaseFunction.retrieveSpeciesId(self.cursor, self.dataset.group), self.name, self.dataset.name)
self.cursor.execute(query)
@@ -341,7 +343,7 @@ class webqtlTrait:
if not samplelist or (samplelist and name in samplelist):
#if value != None:
# num_cases = None
- # if self.db.type in ('Publish', 'Temp'):
+ # if self.dataset.type in ('Publish', 'Temp'):
# ndata = item[3]
name = item[0]
self.data[name] = webqtlCaseData(*item) #name, value, variance, num_cases)
@@ -352,7 +354,7 @@ class webqtlTrait:
# if val != None:
# var = item[2]
# ndata = None
- # if self.db.type in ('Publish', 'Temp'):
+ # if self.dataset.type in ('Publish', 'Temp'):
# ndata = item[3]
# self.data[item[0]] = webqtlCaseData(val, var, ndata)
# #end for
@@ -370,9 +372,9 @@ class webqtlTrait:
# return self.__dict__.items()
def retrieveInfo(self, QTL = None):
- assert self.db and self.cursor
- if self.db.type == 'Publish':
- #self.db.DisField = ['Name','PubMed_ID','Phenotype','Abbreviation','Authors','Title',\
+ assert self.dataset and self.cursor
+ if self.dataset.type == 'Publish':
+ #self.dataset.DisField = ['Name','PubMed_ID','Phenotype','Abbreviation','Authors','Title',\
# 'Abstract', 'Journal','Volume','Pages','Month','Year','Sequence',\
# 'Units', 'comments']
query = '''
@@ -393,11 +395,11 @@ class webqtlTrait:
Publication.Id = PublishXRef.PublicationId AND
PublishXRef.InbredSetId = PublishFreeze.InbredSetId AND
PublishFreeze.Id =%s
- ''' % (self.name, self.db.id)
+ ''' % (self.name, self.dataset.id)
#XZ, 05/08/2009: Xiaodong add this block to use ProbeSet.Id to find the probeset instead of just using ProbeSet.Name
#XZ, 05/08/2009: to avoid the problem of same probeset name from different platforms.
- elif self.db.type == 'ProbeSet':
- display_fields_string = ',ProbeSet.'.join(self.db.display_fields)
+ elif self.dataset.type == 'ProbeSet':
+ display_fields_string = ',ProbeSet.'.join(self.dataset.display_fields)
display_fields_string = 'ProbeSet.' + display_fields_string
query = """
SELECT %s
@@ -407,11 +409,11 @@ class webqtlTrait:
ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
ProbeSetFreeze.Name = '%s' AND
ProbeSet.Name = '%s'
- """ % (display_fields_string, self.db.name, self.name)
+ """ % (display_fields_string, self.dataset.name, self.name)
#XZ, 05/08/2009: We also should use Geno.Id to find marker instead of just using Geno.Name
# to avoid the problem of same marker name from different species.
- elif self.db.type == 'Geno':
- display_fields_string = string.join(self.db.display_fields,',Geno.')
+ elif self.dataset.type == 'Geno':
+ display_fields_string = string.join(self.dataset.display_fields,',Geno.')
display_fields_string = 'Geno.' + display_fields_string
query = """
SELECT %s
@@ -421,10 +423,10 @@ class webqtlTrait:
GenoXRef.GenoId = Geno.Id AND
GenoFreeze.Name = '%s' AND
Geno.Name = '%s'
- """ % (display_fields_string, self.db.name, self.name)
+ """ % (display_fields_string, self.dataset.name, self.name)
else: #Temp type
query = 'SELECT %s FROM %s WHERE Name = "%s"' % \
- (string.join(self.db.display_fields,','), self.db.type, self.name)
+ (string.join(self.dataset.display_fields,','), self.dataset.type, self.name)
self.cursor.execute(query)
@@ -433,16 +435,16 @@ class webqtlTrait:
self.haveinfo = 1
#XZ: assign SQL query result to trait attributes.
- for i, field in enumerate(self.db.display_fields):
+ for i, field in enumerate(self.dataset.display_fields):
setattr(self, field, traitInfo[i])
- if self.db.type == 'Publish':
+ if self.dataset.type == 'Publish':
self.confidential = 0
if self.pre_publication_description and not self.pubmed_id:
self.confidential = 1
self.homologeneid = None
- if self.db.type == 'ProbeSet' and self.riset and self.geneid:
+ if self.dataset.type == 'ProbeSet' and self.group and self.geneid:
#XZ, 05/26/2010: From time to time, this query get error message because some geneid values in database are not number.
#XZ: So I have to test if geneid is number before execute the query.
#XZ: The geneid values in database should be cleaned up.
@@ -463,7 +465,7 @@ class webqtlTrait:
InbredSet.Name = '%s' AND
InbredSet.SpeciesId = Species.Id AND
Species.TaxonomyId = Homologene.TaxonomyId
- """ % (self.geneid, self.riset)
+ """ % (self.geneid, self.group)
self.cursor.execute(query)
result = self.cursor.fetchone()
else:
@@ -473,7 +475,7 @@ class webqtlTrait:
self.homologeneid = result[0]
if QTL:
- if self.db.type == 'ProbeSet' and not self.cellid:
+ if self.dataset.type == 'ProbeSet' and not self.cellid:
query = '''
SELECT
ProbeSetXRef.Locus, ProbeSetXRef.LRS, ProbeSetXRef.pValue, ProbeSetXRef.mean
@@ -483,14 +485,14 @@ class webqtlTrait:
ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
ProbeSet.Name = "%s" AND
ProbeSetXRef.ProbeSetFreezeId =%s
- ''' % (self.name, self.db.id)
+ ''' % (self.name, self.dataset.id)
self.cursor.execute(query)
traitQTL = self.cursor.fetchone()
if traitQTL:
self.locus, self.lrs, self.pvalue, self.mean = traitQTL
else:
self.locus = self.lrs = self.pvalue = self.mean = ""
- if self.db.type == 'Publish':
+ if self.dataset.type == 'Publish':
query = '''
SELECT
PublishXRef.Locus, PublishXRef.LRS
@@ -500,7 +502,7 @@ class webqtlTrait:
PublishXRef.Id = %s AND
PublishXRef.InbredSetId = PublishFreeze.InbredSetId AND
PublishFreeze.Id =%s
- ''' % (self.name, self.db.id)
+ ''' % (self.name, self.dataset.id)
self.cursor.execute(query)
traitQTL = self.cursor.fetchone()
if traitQTL:
@@ -514,7 +516,7 @@ class webqtlTrait:
if not self.haveinfo:
self.retrieveInfo()
- if self.db.type == 'Publish':
+ if self.dataset.type == 'Publish':
PubMedLink = ""
if self.pubmed_id:
PubMedLink = HT.Href(text="PubMed %d : " % self.pubmed_id,
@@ -524,10 +526,10 @@ class webqtlTrait:
if formName:
setDescription2 = HT.Href(url="javascript:showDatabase3('%s','%s','%s','')" %
- (formName, self.db.name, self.name), Class = "fs14")
+ (formName, self.dataset.name, self.name), Class = "fs14")
else:
setDescription2 = HT.Href(url="javascript:showDatabase2('%s','%s','')" %
- (self.db.name,self.name), Class = "fs14")
+ (self.dataset.name,self.name), Class = "fs14")
if self.confidential and not webqtlUtil.hasAccessToConfidentialPhenotypeTrait(privilege=privilege, userName=userName, authorized_users=authorized_users):
setDescription2.append('RecordID/%s - %s' % (self.name, self.pre_publication_description))
@@ -545,20 +547,20 @@ class webqtlTrait:
setDescription2.append(HT.Italic('%s, and colleagues' % a1))
setDescription = HT.Span(PubMedLink, setDescription2)
- elif self.db.type == 'Temp':
+ elif self.dataset.type == 'Temp':
setDescription = HT.Href(text="%s" % (self.description),url="javascript:showDatabase2\
- ('%s','%s','')" % (self.db.name,self.name), Class = "fs14")
+ ('%s','%s','')" % (self.dataset.name,self.name), Class = "fs14")
setDescription = HT.Span(setDescription)
- elif self.db.type == 'Geno': # Genome DB only available for single search
+ elif self.dataset.type == 'Geno': # Genome DB only available for single search
if formName:
setDescription = HT.Href(text="Locus %s [Chr %s @ %s Mb]" % (self.name,self.chr,\
'%2.3f' % self.mb),url="javascript:showDatabase3('%s','%s','%s','')" % \
- (formName, self.db.name, self.name), Class = "fs14")
+ (formName, self.dataset.name, self.name), Class = "fs14")
else:
setDescription = HT.Href(text="Locus %s [Chr %s @ %s Mb]" % (self.name,self.chr,\
'%2.3f' % self.mb),url="javascript:showDatabase2('%s','%s','')" % \
- (self.db.name,self.name), Class = "fs14")
+ (self.dataset.name,self.name), Class = "fs14")
setDescription = HT.Span(setDescription)
@@ -566,20 +568,20 @@ class webqtlTrait:
if self.cellid:
if formName:
setDescription = HT.Href(text="ProbeSet/%s/%s" % (self.name, self.cellid),url=\
- "javascript:showDatabase3('%s','%s','%s','%s')" % (formName, self.db.name,self.name,self.cellid), \
+ "javascript:showDatabase3('%s','%s','%s','%s')" % (formName, self.dataset.name,self.name,self.cellid), \
Class = "fs14")
else:
setDescription = HT.Href(text="ProbeSet/%s/%s" % (self.name,self.cellid),url=\
- "javascript:showDatabase2('%s','%s','%s')" % (self.db.name,self.name,self.cellid), \
+ "javascript:showDatabase2('%s','%s','%s')" % (self.dataset.name,self.name,self.cellid), \
Class = "fs14")
else:
if formName:
setDescription = HT.Href(text="ProbeSet/%s" % self.name, url=\
- "javascript:showDatabase3('%s','%s','%s','')" % (formName, self.db.name,self.name), \
+ "javascript:showDatabase3('%s','%s','%s','')" % (formName, self.dataset.name,self.name), \
Class = "fs14")
else:
setDescription = HT.Href(text="ProbeSet/%s" % self.name, url=\
- "javascript:showDatabase2('%s','%s','')" % (self.db.name,self.name), \
+ "javascript:showDatabase2('%s','%s','')" % (self.dataset.name,self.name), \
Class = "fs14")
if self.symbol and self.chr and self.mb:
setDescription.append(' [')
@@ -591,9 +593,9 @@ class webqtlTrait:
setDescription.append('; %s' % self.probe_target_description)
setDescription = HT.Span(setDescription)
- if self.db.type != 'Temp' and dispFromDatabase:
+ if self.dataset.type != 'Temp' and dispFromDatabase:
setDescription.append( ' --- FROM : ')
- setDescription.append(self.db.genHTML(Class='cori'))
+ setDescription.append(self.dataset.genHTML(Class='cori'))
return setDescription
@property
@@ -654,13 +656,13 @@ class webqtlTrait:
select ProbeFreeze.Name from ProbeFreeze, ProbeSetFreeze
where
ProbeFreeze.Id = ProbeSetFreeze.ProbeFreezeId AND
- ProbeSetFreeze.Id = %d""" % thisTrait.db.id)
+ ProbeSetFreeze.Id = %d""" % thisTrait.dataset.id)
probeDBName = self.cursor.fetchone()[0]
return dict(name = probeDBName,
url = None)
else:
- return dict(name = self.db.fullname,
- url = webqtlConfig.INFOPAGEHREF % self.db.name)
+ return dict(name = self.dataset.fullname,
+ url = webqtlConfig.INFOPAGEHREF % self.dataset.name)
def calculate_correlation(self, values, method):
"""Calculate the correlation value and p value according to the method specified"""
diff --git a/wqflask/dbFunction/webqtlDatabaseFunction.py b/wqflask/dbFunction/webqtlDatabaseFunction.py
index 8f923b8a..1e028ecc 100755
--- a/wqflask/dbFunction/webqtlDatabaseFunction.py
+++ b/wqflask/dbFunction/webqtlDatabaseFunction.py
@@ -80,9 +80,9 @@ def getAllSpecies(cursor=None):
#function: retrieve specie's name info based on RISet
###########################################################################
-def retrieveSpecies(cursor=None, RISet=None):
+def retrieveSpecies(cursor=None, group=None):
try:
- cursor.execute("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % RISet)
+ cursor.execute("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % group)
return cursor.fetchone()[0]
except:
return None
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index 2b8efd68..92a754e3 100644
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -20,7 +20,7 @@ class DoSearch(object):
def __init__(self, search_term, search_operator, dataset, cursor, db_conn):
self.search_term = search_term
# Make sure search_operator is something we expect
- assert search_operator in ("=", "<", ">", "<=", ">="), "Bad search operator"
+ assert search_operator in (None, "=", "<", ">", "<=", ">="), "Bad search operator"
self.search_operator = search_operator
self.dataset = dataset
self.db_conn = db_conn
@@ -41,6 +41,12 @@ class DoSearch(object):
def escape(self, stringy):
"""Shorter name than self.db_conn.escape_string"""
return self.db_conn.escape_string(str(stringy))
+
+ def mescape(self, *items):
+ """Multiple escape"""
+ escaped = [self.escape(item) for item in items]
+ print("escaped is:", escaped)
+ return tuple(escaped)
def normalize_spaces(self, stringy):
"""Strips out newlines/extra spaces and replaces them with just spaces"""
@@ -91,8 +97,7 @@ class ProbeSetSearch(DoSearch):
"""Generates and runs a simple search of an mRNA expression dataset"""
print("Running ProbeSetSearch")
- query = (self.base_query +
- """WHERE (MATCH (ProbeSet.Name,
+ query = self.base_query + """WHERE (MATCH (ProbeSet.Name,
ProbeSet.description,
ProbeSet.symbol,
alias,
@@ -102,8 +107,8 @@ class ProbeSetSearch(DoSearch):
AGAINST ('%s' IN BOOLEAN MODE))
and ProbeSet.Id = ProbeSetXRef.ProbeSetId
and ProbeSetXRef.ProbeSetFreezeId = %s
- """ % (self.escape(self.search_term),
- self.escape(self.dataset.id)))
+ """ % (self.escape(self.search_term[0]),
+ self.escape(self.dataset.id))
print("final query is:", pf(query))
@@ -275,7 +280,8 @@ class GoSearch(ProbeSetSearch):
class LrsSearch(ProbeSetSearch):
"""Searches for genes with a QTL within the given LRS values
- LRS searches can take 2 different forms:
+ LRS searches can take 3 different forms:
+ - LRS > (or <) min/max_LRS
- LRS=(min_LRS max_LRS)
- LRS=(min_LRS max_LRS chromosome start_Mb end_Mb)
where min/max_LRS represent the range of LRS scores and start/end_Mb represent
@@ -289,129 +295,128 @@ class LrsSearch(ProbeSetSearch):
self.search_term = [float(value) for value in self.search_term]
- from_clause = ", Geno"
+ self.from_clause = ", Geno"
if self.search_operator == "=":
- if len(self.search_term) >= 2:
- if len(self.search_term) == 2:
- lrs_min, lrs_max = self.search_term
- elif len(self.search_term) == 5:
- lrs_min, lrs_max, chr_num, mb_low, mb_high = self.search_term
- else:
- SomeError
-
- sub_clause = """ %sXRef.LRS > %s and
- %sXRef.LRS < %s and """ % (self.escape(self.dataset.type),
- self.escape(min(lrs_min, lrs_max)),
- self.escape(self.dataset.type),
- self.escape(max(lrs_min, lrs_max)))
-
+ assert isinstance(self.search_term, (list, tuple))
+ self.lrs_min, self.lrs_max = self.search_term[:2]
+
+ self.sub_clause = """ %sXRef.LRS > %s and
+ %sXRef.LRS < %s and """ % self.mescape(self.dataset.type,
+ min(self.lrs_min, self.lrs_max),
+ self.dataset.type,
+ max(self.lrs_min, self.lrs_max))
+
+ if len(self.search_term) > 2:
+ self.chr_num = self.search_term[2]
+ self.sub_clause += """ Geno.Chr = %s and """ % (self.escape(self.chr_num))
if len(self.search_term) == 5:
- sub_clause = sub_clause + """ Geno.Mb > %s and
+ self.mb_low, self.mb_high = self.search_term[3:]
+ self.sub_clause += """ Geno.Mb > %s and
Geno.Mb < %s and
- Geno.Chr = %s and
- """ % (self.escape(min(mb_low, mb_high)),
- self.escape(max(mb_low, mb_high)),
- self.escape(chr_num))
+ """ % self.mescape(min(self.mb_low, self.mb_high),
+ max(self.mb_low, self.mb_high))
+ print("self.sub_clause is:", pf(self.sub_clause))
else:
# Deal with >, <, >=, and <=
- sub_clause = """ %sXRef.LRS %s %s and """ % (self.escape(self.dataset.type),
- self.escape(self.search_operator),
- self.escape(self.search_term[0]))
+ self.sub_clause = """ %sXRef.LRS %s %s and """ % self.mescape(self.dataset.type,
+ self.search_operator,
+ self.search_term[0])
- where_clause = sub_clause + """ %sXRef.Locus = Geno.name and
+ self.where_clause = self.sub_clause + """ %sXRef.Locus = Geno.name and
Geno.SpeciesId = %s and
%s.Chr = Geno.Chr
- """ % (self.escape(self.dataset.type),
- self.escape(self.species_id),
- self.escape(self.dataset.type))
+ """ % self.mescape(self.dataset.type,
+ self.species_id,
+ self.dataset.type)
- print("where_clause is:", pf(where_clause))
+ print("where_clause is:", pf(self.where_clause))
- query = self.compile_final_query(from_clause, where_clause)
+ self.query = self.compile_final_query(self.from_clause, self.where_clause)
- return self.execute(query)
-
-class CisLrsSearch(LrsSearch):
- """Searches for genes on a particular chromosome with a cis-eQTL within the given LRS values
+ return self.execute(self.query)
- A cisLRS search can take 3 forms:
- - cisLRS=(min_LRS max_LRS)
- - cisLRS=(min_LRS max_LRS mb_buffer)
- - cisLRS>min_LRS
- where min/max_LRS represent the range of LRS scores and the mb_buffer is the range around
- a particular QTL where its eQTL would be considered "cis". If there is no third parameter,
- mb_buffer will default to 5 megabases.
- A QTL is a cis-eQTL if a gene's expression is regulated by a QTL in roughly the same area
- (where the area is determined by the mb_buffer that the user can choose).
+class CisTransLrsSearch(LrsSearch):
- """
-
- # This is tentatively a child of LrsSearch; I'll need to check what code, if any, overlaps
- # between this and the LrsSearch code. In the original code, commands are divided by
- # the number of inputs they take, so these commands are completely separate
-
- DoSearch.search_types['CISLRS'] = "CisLrsSearch"
-
- def run(self):
+ def real_run(self, the_operator):
#if isinstance(self.search_term, basestring):
# self.search_term = [self.search_term]
print("self.search_term is:", self.search_term)
self.search_term = [float(value) for value in self.search_term]
- mb_buffer = 5 # default
-
- from_clause = ", Geno "
-
+ self.mb_buffer = 5 # default
+ self.from_clause = ", Geno "
+
if self.search_operator == "=":
if len(self.search_term) == 2:
- lower_limit, upper_limit = self.search_term
+ self.lrs_min, self.lrs_max = self.search_term
#[int(value) for value in self.search_term]
elif len(self.search_term) == 3:
- lower_limit, upper_limit, mb_buffer = self.search_term
+ self.lrs_min, self.lrs_max, self.mb_buffer = self.search_term
else:
SomeError
- sub_clause = """ %sXRef.LRS > %s and
- %sXRef.LRS < %s and
- ABS(%s.Mb-Geno.Mb) < %s and """ % (
- self.escape(self.dataset.type),
- self.escape(min(lower_limit, upper_limit)),
+ self.sub_clause = """ %sXRef.LRS > %s and
+ %sXRef.LRS < %s and """ % (
self.escape(self.dataset.type),
- self.escape(max(lower_limit, upper_limit)),
+ self.escape(min(self.lrs_min, self.lrs_max)),
self.escape(self.dataset.type),
- self.escape(mb_buffer)
+ self.escape(max(self.lrs_min, self.lrs_max))
)
-
else:
# Deal with >, <, >=, and <=
- sub_clause = """ %sXRef.LRS %s %s and
- ABS(%s.Mb-Geno.Mb) < %s and """ % (
+ self.sub_clause = """ %sXRef.LRS %s %s and """ % (
self.escape(self.dataset.type),
self.escape(self.search_operator),
- self.escape(self.search_term[0]),
- self.escape(self.dataset.type),
- self.escape(mb_buffer)
+ self.escape(self.search_term[0])
)
-
- where_clause = sub_clause + """%sXRef.Locus = Geno.name and
+
+ self.where_clause = self.sub_clause + """
+ ABS(%s.Mb-Geno.Mb) %s %s and
+ %sXRef.Locus = Geno.name and
Geno.SpeciesId = %s and
%s.Chr = Geno.Chr""" % (
self.escape(self.dataset.type),
+ the_operator,
+ self.escape(self.mb_buffer),
+ self.escape(self.dataset.type),
self.escape(self.species_id),
self.escape(self.dataset.type)
)
- print("where_clause is:", pf(where_clause))
+ print("where_clause is:", pf(self.where_clause))
- query = self.compile_final_query(from_clause, where_clause)
+ self.query = self.compile_final_query(self.from_clause, self.where_clause)
- return self.execute(query)
+ return self.execute(self.query)
+
+
+class CisLrsSearch(CisTransLrsSearch):
+ """Searches for genes on a particular chromosome with a cis-eQTL within the given LRS values
+
+ A cisLRS search can take 3 forms:
+ - cisLRS=(min_LRS max_LRS)
+ - cisLRS=(min_LRS max_LRS mb_buffer)
+ - cisLRS>min_LRS
+ where min/max_LRS represent the range of LRS scores and the mb_buffer is the range around
+ a particular QTL where its eQTL would be considered "cis". If there is no third parameter,
+ mb_buffer will default to 5 megabases.
+
+ A QTL is a cis-eQTL if a gene's expression is regulated by a QTL in roughly the same area
+ (where the area is determined by the mb_buffer that the user can choose).
+
+ """
+
+ DoSearch.search_types['CISLRS'] = "CisLrsSearch"
+
+ def run(self):
+ return self.real_run("<")
+
-class TransLrsSearch(LrsSearch):
+class TransLrsSearch(CisTransLrsSearch):
"""Searches for genes on a particular chromosome with a cis-eQTL within the given LRS values
A transLRS search can take 2 forms:
@@ -425,70 +430,11 @@ class TransLrsSearch(LrsSearch):
(where the area is determined by the mb_buffer that the user can choose). Opposite of cis-eQTL.
"""
-
- # This is tentatively a child of LrsSearch; I'll need to check what code, if any, overlaps
- # between this and the LrsSearch code. In the original code, commands are divided by
- # the number of inputs they take, so these commands are completely separate
DoSearch.search_types['TRANSLRS'] = "TransLrsSearch"
def run(self):
- if len(self.search_term) == 3:
- lower_limit, upper_limit, min_threshold = [int(value) for value in self.search_term]
-
- where_clause = """ %sXRef.LRS > %s and
- %sXRef.LRS < %s and
- %sXRef.Locus = Geno.name and
- Geno.SpeciesId = %s and
- (%s.Chr != Geno.Chr or
- ABS(%s.Mb-Geno.Mb) > %s) """ % (
- self.dataset.type,
- min(lower_limit, upper_limit),
- self.dataset.type,
- max(lower_limit, upper_limit),
- self.dataset.type,
- self.species_id,
- self.dataset.type,
- self.dataset.type,
- min_threshold
- )
-
- else:
- NeedSomeErrorHere
-
- return None
-
-
-#itemCmd = item[0]
-#lowerLimit = float(item[1])
-#upperLimit = float(item[2])
-#
-#if itemCmd.upper() in ("TRANSLRS", "CISLRS"):
-# if item[3]:
-# mthresh = float(item[3])
-# clauseItem = " %sXRef.LRS > %2.7f and %sXRef.LRS < %2.7f " % \
-# (self.dbType, min(lowerLimit, upperLimit), self.dbType, max(lowerLimit, upperLimit))
-# if itemCmd.upper() == "CISLRS":
-# clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and %s.Chr = Geno.Chr and ABS(%s.Mb-Geno.Mb) < %2.7f """ % (self.dbType, self.speciesId, self.dbType, self.dbType, mthresh)
-# DescriptionText.append(HT.Span(' with a ', HT.U('cis-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit), mthresh)))
-# else:
-# clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and (%s.Chr != Geno.Chr or (%s.Chr != Geno.Chr and ABS(%s.Mb-Geno.Mb) > %2.7f)) """ % (self.dbType, self.speciesId, self.dbType, self.dbType, self.dbType, mthresh)
-# DescriptionText.append(HT.Span(' with a ', HT.U('trans-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit), mthresh)))
-# query.append(" (%s) " % clauseItem)
-# self.orderByDefalut = "LRS"
-# else:
-# pass
-#elif itemCmd.upper() in ("RANGE"):
-# #XZ, 03/05/2009: Xiaodong changed Data to ProbeSetData
-# clauseItem = " (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) > %2.7f and (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) < %2.7f " % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit))
-# query.append(" (%s) " % clauseItem)
-# DescriptionText.append(HT.Span(' with a range of expression that varied between %g and %g' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit)), " (fold difference)"))
-#else:
-# clauseItem = " %sXRef.%s > %2.7f and %sXRef.%s < %2.7f " % \
-# (self.dbType, itemCmd, min(lowerLimit, upperLimit), self.dbType, itemCmd, max(lowerLimit, upperLimit))
-# query.append(" (%s) " % clauseItem)
-# self.orderByDefalut = itemCmd
-# DescriptionText.append(HT.Span(' with ', HT.U(itemCmd), ' between %g and %g' % (min(lowerLimit, upperLimit), max(lowerLimit, upperLimit))))
+ return self.real_run(">")
class MeanSearch(ProbeSetSearch):
@@ -508,7 +454,6 @@ if __name__ == "__main__":
import MySQLdb
import sys
-
from base import webqtlConfig
from base.data_set import create_dataset
from base.templatePage import templatePage
@@ -540,11 +485,11 @@ if __name__ == "__main__":
ProbeSetXRef.ProbeSetFreezeId = 112""")
#print(pf(cursor.fetchall()))
- #results = ProbeSetSearch("salt", dataset, cursor, db_conn).run()
+ results = ProbeSetSearch("shh", None, dataset, cursor, db_conn).run()
#results = RifSearch("diabetes", dataset, cursor, db_conn).run()
#results = WikiSearch("nicotine", dataset, cursor, db_conn).run()
- results = CisLrsSearch(['99'], '>', dataset, cursor, db_conn).run() # cisLRS > 99
- #results = LrsSearch('9', '99', '1', '50', '150', '=', dataset, cursor, db_conn).run()
+ #results = CisLrsSearch(['99'], '>', dataset, cursor, db_conn).run() # cisLRS > 99
+ #results = LrsSearch('99', '>', dataset, cursor, db_conn).run()
#results = TransLrsSearch(['9', '999', '10'], dataset, cursor, db_conn).run()
#results = PhenotypeSearch("brain", dataset, cursor, db_conn).run()
#results = GenotypeSearch("rs13475699", dataset, cursor, db_conn).run()
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index fe091f97..63e0153d 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -68,7 +68,7 @@ class SearchResultPage(templatePage):
# return
###########################################
- # Names and IDs of RISet / F2 set
+ # Names and IDs of group / F2 set
###########################################
# All Phenotypes is a special case we'll deal with later
@@ -97,23 +97,23 @@ class SearchResultPage(templatePage):
"""
self.trait_list = []
+
+ group = self.dataset.group
+ species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, group=group)
+
# result_set represents the results for each search term; a search of
# "shh grin2b" would have two sets of results, one for each term
print("self.results is:", pf(self.results))
for result in self.results:
if not result:
continue
-
- group = self.dataset.group
- species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=group)
-
+
#### Excel file needs to be generated ####
print("foo locals are:", locals())
trait_id = result[0]
- this_trait = webqtlTrait(self.db_conn, db=self.dataset, name=trait_id)
+ this_trait = webqtlTrait(self.db_conn, dataset=self.dataset, name=trait_id)
this_trait.retrieveInfo(QTL=True)
- print("this_trait is:", pf(this_trait))
self.trait_list.append(this_trait)
self.dataset.get_trait_info(self.trait_list, species)
@@ -134,6 +134,8 @@ class SearchResultPage(templatePage):
# We fall back to the dataset type as the key to get the right object
search_type = self.dataset.type
+ print("search_type is:", pf(search_type))
+
# This is throwing an error when a_search['key'] is None, so I changed above
#search_type = string.upper(a_search['key'])
#if not search_type:
@@ -146,7 +148,7 @@ class SearchResultPage(templatePage):
self.dataset,
self.cursor,
self.db_conn).run())
-
+
print("in the search results are:", self.results)
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index 3dac5933..db2636bc 100755
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -35,12 +35,12 @@ class ShowTrait(templatePage):
self.fd = fd
templatePage.__init__(self, fd)
- assert self.openMysql(), "No datbase!"
+ assert self.openMysql(), "No database!"
this_trait = self.get_this_trait()
##read genotype file
- fd.RISet = this_trait.riset
+ fd.group = this_trait.group
fd.readGenotype()
if not fd.genotype:
@@ -62,7 +62,7 @@ class ShowTrait(templatePage):
# Some fields, like method, are defaulted to None; otherwise in IE the field can't be changed using jquery
hddn = OrderedDict(
FormID = fmID,
- RISet = fd.RISet,
+ group = fd.group,
submitID = '',
scale = 'physic',
additiveCheck = 'ON',
@@ -120,7 +120,7 @@ class ShowTrait(templatePage):
hddn['attribute_names'] = ""
hddn['mappingMethodId'] = webqtlDatabaseFunction.getMappingMethod (cursor=self.cursor,
- groupName=fd.RISet)
+ groupName=fd.group)
if fd.identification:
hddn['identification'] = fd.identification
@@ -159,8 +159,8 @@ class ShowTrait(templatePage):
self.hddn = hddn
self.sample_group_types = OrderedDict()
- self.sample_group_types['samples_primary'] = fd.RISet + " Only"
- self.sample_group_types['samples_other'] = "Non-" + fd.RISet
+ self.sample_group_types['samples_primary'] = fd.group + " Only"
+ self.sample_group_types['samples_other'] = "Non-" + fd.group
self.sample_group_types['samples_all'] = "All Cases"
sample_lists = [group.sample_list for group in self.sample_groups]
print("sample_lists is:", pf(sample_lists))
@@ -180,12 +180,12 @@ class ShowTrait(templatePage):
trait_id = self.fd['trait_id']
cell_id = self.fd.get('CellID')
- this_trait = webqtlTrait(db=dataset, name=trait_id, cellid=cell_id, cursor=self.cursor)
+ this_trait = webqtlTrait(self.db_conn, db=dataset, name=trait_id, cellid=cell_id)
##identification, etc.
self.fd.identification = '%s : %s' % (this_trait.db.shortname, trait_id)
this_trait.returnURL = webqtlConfig.CGIDIR + webqtlConfig.SCRIPTFILE + '?FormID=showDatabase&database=%s\
- &ProbeSetID=%s&RISet=%s&parentsf1=on' %(dataset, trait_id, self.fd['RISet'])
+ &ProbeSetID=%s&group=%s&parentsf1=on' %(dataset, trait_id, self.fd['group'])
if cell_id:
self.fd.identification = '%s/%s'%(self.fd.identification, cell_id)
@@ -198,7 +198,7 @@ class ShowTrait(templatePage):
def dispTraitInformation(self, fd, title1Body, hddn, this_trait):
- _Species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=fd.RISet)
+ _Species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, group=fd.group)
#tbl = HT.TableLite(cellpadding=2, Class="collap", style="margin-left:20px;", width="840", valign="top", id="target1")
@@ -245,9 +245,9 @@ class ShowTrait(templatePage):
else:
pass
- self.cursor.execute('SELECT Name FROM InbredSet WHERE Name="%s"' % fd.RISet)
+ self.cursor.execute('SELECT Name FROM InbredSet WHERE Name="%s"' % fd.group)
if this_trait:
- addSelectionButton = HT.Href(url="#redirect", onClick="addRmvSelection('%s', document.getElementsByName('%s')[0], 'addToSelection');" % (fd.RISet, 'dataInput'))
+ addSelectionButton = HT.Href(url="#redirect", onClick="addRmvSelection('%s', document.getElementsByName('%s')[0], 'addToSelection');" % (fd.group, 'dataInput'))
addSelectionButton_img = HT.Image("/images/add_icon.jpg", name="addselect", alt="Add To Collection", title="Add To Collection", style="border:none;")
#addSelectionButton.append(addSelectionButton_img)
addSelectionText = "Add"
@@ -403,8 +403,8 @@ class ShowTrait(templatePage):
probeResult = self.cursor.fetchone()
if probeResult[0] > 0:
- probeurl = "%s?FormID=showProbeInfo&database=%s&ProbeSetID=%s&CellID=%s&RISet=%s&incparentsf1=ON" \
- % (os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), this_trait.db, this_trait.name, this_trait.cellid, fd.RISet)
+ probeurl = "%s?FormID=showProbeInfo&database=%s&ProbeSetID=%s&CellID=%s&group=%s&incparentsf1=ON" \
+ % (os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), this_trait.db, this_trait.name, this_trait.cellid, fd.group)
probeButton = HT.Href(url="#", onClick="javascript:openNewWin('%s'); return false;" % probeurl)
probeButton_img = HT.Image("/images/probe_icon.jpg", name="probe", alt=" Check sequence of probes ", title=" Check sequence of probes ", style="border:none;")
#probeButton.append(probeButton_img)
@@ -430,7 +430,7 @@ class ShowTrait(templatePage):
# ))
#tSpan = HT.Span(Class="fs13")
- #tSpan.append(str(_Species).capitalize(), ", ", fd.RISet)
+ #tSpan.append(str(_Species).capitalize(), ", ", fd.group)
#
#tbl.append(HT.TR(
# HT.TD('Species and Group: ', Class="fwb fs13", valign="top", nowrap="on"),
@@ -805,6 +805,7 @@ class ShowTrait(templatePage):
#stats_row = HT.TR()
#stats_cell = HT.TD()
+ # This should still be riset here - Sam - Nov. 2012
if fd.genotype.type == "riset":
samplelist = fd.f1list + fd.samplelist
else:
@@ -839,15 +840,15 @@ class ShowTrait(templatePage):
other_samples = map(lambda X:"_2nd_"+X, fd.f1list + fd.parlist) + other_samples #XZ: note that fd.f1list and fd.parlist are added.
print("ac1") # This is the one used for first sall3
self.MDP_menu.append(('All Cases','0'))
- self.MDP_menu.append(('%s Only' % fd.RISet, '1'))
- self.MDP_menu.append(('Non-%s Only' % fd.RISet, '2'))
+ self.MDP_menu.append(('%s Only' % fd.group, '1'))
+ self.MDP_menu.append(('Non-%s Only' % fd.group, '2'))
else:
if (len(other_samples) > 0) and (len(primary_samples) + len(other_samples) > 3):
print("ac2")
self.MDP_menu.append(('All Cases','0'))
- self.MDP_menu.append(('%s Only' % fd.RISet,'1'))
- self.MDP_menu.append(('Non-%s Only' % fd.RISet,'2'))
+ self.MDP_menu.append(('%s Only' % fd.group,'1'))
+ self.MDP_menu.append(('Non-%s Only' % fd.group,'2'))
all_samples = primary_samples
all_samples.sort(key=webqtlUtil.natsort_key)
all_samples = map(lambda X:"_2nd_"+X, fd.f1list + fd.parlist) + all_samples
@@ -895,7 +896,7 @@ class ShowTrait(templatePage):
# for sampleNameOrig in all_samples]]
#
- #Using just the RISet sample
+ #Using just the group sample
for sampleNameOrig in primary_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
@@ -908,7 +909,7 @@ class ShowTrait(templatePage):
vals2.append(thisValFull)
- #Using all non-RISet samples only
+ #Using all non-group samples only
for sampleNameOrig in other_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
@@ -951,10 +952,10 @@ class ShowTrait(templatePage):
break
elif (i == 1 and len(primary_samples) < 4):
stats_container = HT.Div(id="stats_tabs%s" % i, Class="ui-tabs")
- #stats_container.append(HT.Div(HT.Italic("Fewer than 4 " + fd.RISet + " case data were entered. No statistical analysis has been attempted.")))
+ #stats_container.append(HT.Div(HT.Italic("Fewer than 4 " + fd.group + " case data were entered. No statistical analysis has been attempted.")))
elif (i == 2 and len(other_samples) < 4):
stats_container = HT.Div(id="stats_tabs%s" % i, Class="ui-tabs")
- stats_container.append(HT.Div(HT.Italic("Fewer than 4 non-" + fd.RISet + " case data were entered. No statistical analysis has been attempted.")))
+ stats_container.append(HT.Div(HT.Italic("Fewer than 4 non-" + fd.group + " case data were entered. No statistical analysis has been attempted.")))
#stats_script_text = """$(function() { $("#stats_tabs0").tabs(); $("#stats_tabs1").tabs(); $("#stats_tabs2").tabs();});"""
else:
continue
@@ -995,7 +996,7 @@ class ShowTrait(templatePage):
except:
plotTitle = str(this_trait.name)
- #normalplot_img = BasicStatisticsFunctions.plotNormalProbability(vals=vals, RISet=fd.RISet, title=plotTitle, specialStrains=specialStrains)
+ #normalplot_img = BasicStatisticsFunctions.plotNormalProbability(vals=vals, group=fd.group, title=plotTitle, specialStrains=specialStrains)
#normalplot.append(HT.TR(HT.TD(normalplot_img)))
#normalplot.append(HT.TR(HT.TD(HT.BR(),HT.BR(),"This plot evaluates whether data are \
#normally distributed. Different symbols represent different groups.",HT.BR(),HT.BR(),
@@ -1018,7 +1019,7 @@ class ShowTrait(templatePage):
#barName_div = HT.Div(id="statstabs-3")
#barName_container = HT.Paragraph()
#barName = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
- #barName_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, RISet=fd.RISet, vals=vals, type="name")
+ #barName_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, group=fd.group, vals=vals, type="name")
#barName.append(HT.TR(HT.TD(barName_img)))
#barName_container.append(barName)
#barName_div.append(barName_container)
@@ -1027,7 +1028,7 @@ class ShowTrait(templatePage):
#barRank_div = HT.Div(id="statstabs-4")
#barRank_container = HT.Paragraph()
#barRank = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
- #barRank_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, RISet=fd.RISet, vals=vals, type="rank")
+ #barRank_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, group=fd.group, vals=vals, type="rank")
#barRank.append(HT.TR(HT.TD(barRank_img)))
#barRank_container.append(barRank)
#barRank_div.append(barRank_container)
@@ -1048,16 +1049,16 @@ class ShowTrait(templatePage):
def build_correlation_tools(self, fd, this_trait):
- #species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=fd.RISet)
+ #species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, group=fd.group)
- RISetgp = fd.RISet
+ this_group = fd.group
# We're checking a string here!
- assert isinstance(RISetgp, basestring), "We need a string type thing here"
- if RISetgp[:3] == 'BXD':
- RISetgp = 'BXD'
+ assert isinstance(this_group, basestring), "We need a string type thing here"
+ if this_group[:3] == 'BXD':
+ this_group = 'BXD'
- if RISetgp:
+ if this_group:
#sample_correlation = HT.Input(type='button',name='sample_corr', value=' Compute ', Class="button sample_corr")
#lit_correlation = HT.Input(type='button',name='lit_corr', value=' Compute ', Class="button lit_corr")
#tissue_correlation = HT.Input(type='button',name='tiss_corr', value=' Compute ', Class="button tiss_corr")
@@ -1074,7 +1075,7 @@ class ShowTrait(templatePage):
self.cursor.execute('''SELECT PublishFreeze.FullName,PublishFreeze.Name FROM
PublishFreeze,InbredSet WHERE PublishFreeze.InbredSetId = InbredSet.Id
and InbredSet.Name = %s and PublishFreeze.public > %s''',
- (RISetgp, webqtlConfig.PUBLICTHRESH))
+ (this_group, webqtlConfig.PUBLICTHRESH))
for item in self.cursor.fetchall():
dataset_menu.append(dict(tissue=None,
datasets=[item]))
@@ -1082,7 +1083,7 @@ class ShowTrait(templatePage):
self.cursor.execute('''SELECT GenoFreeze.FullName,GenoFreeze.Name FROM GenoFreeze,
InbredSet WHERE GenoFreeze.InbredSetId = InbredSet.Id and InbredSet.Name =
%s and GenoFreeze.public > %s''',
- (RISetgp, webqtlConfig.PUBLICTHRESH))
+ (this_group, webqtlConfig.PUBLICTHRESH))
for item in self.cursor.fetchall():
dataset_menu.append(dict(tissue=None,
datasets=[item]))
@@ -1098,7 +1099,7 @@ class ShowTrait(templatePage):
InbredSet WHERE ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and ProbeFreeze.TissueId = %s and
ProbeSetFreeze.public > %s and ProbeFreeze.InbredSetId = InbredSet.Id and InbredSet.Name like %s
order by ProbeSetFreeze.CreateTime desc, ProbeSetFreeze.AvgId ''',
- (tissue_id, webqtlConfig.PUBLICTHRESH, "%" + RISetgp + "%"))
+ (tissue_id, webqtlConfig.PUBLICTHRESH, "%" + this_group + "%"))
print("phun8")
dataset_sub_menu = [item for item in self.cursor.fetchall() if item]
#for item2 in self.cursor.fetchall():
@@ -1257,11 +1258,11 @@ class ShowTrait(templatePage):
def dispMappingTools(self, fd, title4Body, this_trait):
- _Species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=fd.RISet)
+ _Species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, group=fd.group)
- RISetgp = fd.RISet
- if RISetgp[:3] == 'BXD':
- RISetgp = 'BXD'
+ this_group = fd.group
+ if this_group[:3] == 'BXD':
+ this_group = 'BXD'
#check boxes - one for regular interval mapping, the other for composite
permCheck1= HT.Input(type='checkbox', Class='checkbox', name='permCheck1',checked="on")
@@ -1454,7 +1455,7 @@ class ShowTrait(templatePage):
# Treat Interval Mapping and Marker Regression and Pair Scan as a group for displaying
#disable Interval Mapping and Marker Regression and Pair Scan for human and the dataset doesn't have genotype file
- mappingMethodId = webqtlDatabaseFunction.getMappingMethod(cursor=self.cursor, groupName=RISetgp)
+ mappingMethodId = webqtlDatabaseFunction.getMappingMethod(cursor=self.cursor, groupName=this_group)
mapping_script = HT.Script(language="Javascript")
mapping_script_text = """$(function() { $("#mapping_tabs").tabs(); });"""
@@ -1526,7 +1527,7 @@ class ShowTrait(templatePage):
sample_names=primary_sample_names,
this_trait=this_trait,
sample_group_type='primary',
- header="%s Only" % (fd.RISet))
+ header="%s Only" % (fd.group))
other_sample_names = []
for sample in this_trait.data.keys():
@@ -1547,7 +1548,7 @@ class ShowTrait(templatePage):
sample_names=other_sample_names,
this_trait=this_trait,
sample_group_type='other',
- header="Non-%s" % (fd.RISet))
+ header="Non-%s" % (fd.group))
self.sample_groups = (primary_samples, other_samples)
else:
diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html
index a113bc15..c01898b3 100644
--- a/wqflask/wqflask/templates/index_page.html
+++ b/wqflask/wqflask/templates/index_page.html
@@ -92,8 +92,8 @@
"btn" value="Advanced Search" onclick=
"javascript:window.open('/index3.html', '_self');">
- <input type="hidden" name="FormID" value="searchResult"> <input type=
- "hidden" name="RISet" value="BXD">
+ <input type="hidden" name="FormID" value="searchResult">
+ <!--!<input type="hidden" name="RISet" value="BXD">-->
</fieldset>
</form>
</section>
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index e393ced6..54cdd42b 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -23,7 +23,7 @@
{% if search_terms %}
<li>
{% for word in search_terms %}
- <strong>{{word.search_term}}</strong> {% if not loop.last %} or {% endif %}
+ <strong>{{word.search_term[0]}}</strong> {% if not loop.last %} or {% endif %}
{% endfor %}
</li>
{% endif %}
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 41d1d714..fb93af53 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -65,6 +65,9 @@ def search_page():
the_search = search_results.SearchResultPage(request.args)
print("template_vars is:", pf(the_search.__dict__))
#print("trait_list is:", pf(the_search.__dict__['trait_list'][0].__dict__))
+ #for trait in the_search.trait_list:
+ # print(" -", trait.description_display)
+
return render_template("search_result_page.html", **the_search.__dict__)