aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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__)