aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/wqflask/do_search.py90
-rw-r--r--wqflask/wqflask/parser.py10
-rw-r--r--wqflask/wqflask/search_results.py217
-rw-r--r--wqflask/wqflask/templates/search_result_page.html34
4 files changed, 126 insertions, 225 deletions
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index ac6014e7..61bfbaba 100644
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -7,19 +7,18 @@ from pprint import pformat as pf
from dbFunction import webqtlDatabaseFunction
-
class DoSearch(object):
"""Parent class containing parameters/functions used for all searches"""
-
+
# Used to translate search phrases into classes
search_types = dict()
-
+
def __init__(self, search_term, dataset, cursor, db_conn):
self.search_term = search_term
self.dataset = dataset
self.db_conn = db_conn
self.cursor = cursor
-
+
#Get group information for dataset and the species id
self.dataset.get_group()
self.species_id = webqtlDatabaseFunction.retrieveSpeciesId(self.cursor, self.dataset.group)
@@ -40,7 +39,7 @@ class DoSearch(object):
"""Strips out newlines/extra spaces and replaces them with just spaces"""
step_one = " ".join(stringy.split())
return step_one
-
+
@classmethod
def get_search(cls, search_type):
return cls.search_types[search_type]
@@ -48,9 +47,9 @@ class DoSearch(object):
class ProbeSetSearch(DoSearch):
"""A search within an mRNA expression dataset"""
-
+
DoSearch.search_types['ProbeSet'] = "ProbeSetSearch"
-
+
base_query = """SELECT ProbeSet.Name as TNAME,
0 as thistable,
ProbeSetXRef.Mean as TMEAN,
@@ -63,9 +62,10 @@ class ProbeSetSearch(DoSearch):
FROM ProbeSetXRef, ProbeSet """
- def compile_final_query(self, from_clause, where_clause):
+ def compile_final_query(self, from_clause = '', where_clause = ''):
"""Generates the final query string"""
+ from_clause = ''
from_clause = self.normalize_spaces(from_clause)
query = (self.base_query +
@@ -78,12 +78,12 @@ class ProbeSetSearch(DoSearch):
self.escape(self.dataset.id)))
print("query is:", pf(query))
-
+
return query
def run(self):
"""Generates and runs a simple search of an mRNA expression dataset"""
-
+
print("Running ProbeSetSearch")
query = (self.base_query +
"""WHERE (MATCH (ProbeSet.Name,
@@ -106,9 +106,9 @@ class ProbeSetSearch(DoSearch):
class PhenotypeSearch(DoSearch):
"""A search within a phenotype dataset"""
-
+
DoSearch.search_types['Publish'] = "PhenotypeSearch"
-
+
base_query = """SELECT PublishXRef.Id,
PublishFreeze.createtime as thistable,
Publication.PubMed_ID as Publication_PubMed_ID,
@@ -125,7 +125,7 @@ class PhenotypeSearch(DoSearch):
'Publication.Title',
'Publication.Authors',
'PublishXRef.Id')
-
+
def get_where_clause(self):
"""Generate clause for WHERE portion of query"""
@@ -140,7 +140,7 @@ class PhenotypeSearch(DoSearch):
for field in self.search_fields:
where_clause.append('''%s REGEXP "%s"''' % (field, search_term))
where_clause = "(%s)" % ' OR '.join(where_clause)
-
+
return where_clause
def run(self):
@@ -164,7 +164,7 @@ class PhenotypeSearch(DoSearch):
class GenotypeSearch(DoSearch):
"""A search within a genotype dataset"""
-
+
DoSearch.search_types['Geno'] = "GenotypeSearch"
base_query = """SELECT Geno.Name,
@@ -185,7 +185,8 @@ class GenotypeSearch(DoSearch):
where_clause = []
for field in self.search_fields:
where_clause.append('''%s REGEXP "%s"''' % ("%s.%s" % (self.dataset.type, field),
- self.search_term))
+ self.escape(self.search_term)))
+ print("where_clause is:", pf(where_clause))
where_clause = "(%s)" % ' OR '.join(where_clause)
return where_clause
@@ -209,7 +210,7 @@ class GenotypeSearch(DoSearch):
class RifSearch(ProbeSetSearch):
"""Searches for traits with a Gene RIF entry including the search term."""
-
+
DoSearch.search_types['RIF'] = "RifSearch"
def run(self):
@@ -224,9 +225,9 @@ class RifSearch(ProbeSetSearch):
class WikiSearch(ProbeSetSearch):
"""Searches GeneWiki for traits other people have annotated"""
-
+
DoSearch.search_types['WIKI'] = "WikiSearch"
-
+
def run(self):
where_clause = """%s.symbol = GeneRIF.symbol
and GeneRIF.versionId=0 and GeneRIF.display>0
@@ -259,43 +260,44 @@ class GoSearch(ProbeSetSearch):
from_clause = """ , db_GeneOntology.term as GOterm,
db_GeneOntology.association as GOassociation,
db_GeneOntology.gene_product as GOgene_product """
-
+
query = self.compile_final_query(from_clause, where_clause)
return self.execute(query)
+#ZS: Not sure what the best way to deal with LRS searches is
class LrsSearch(ProbeSetSearch):
"""Searches for genes with a QTL within the given LRS values
-
+
LRS searches can take 2 different forms:
- 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
the range in megabases on the given chromosome
-
+
"""
-
+
DoSearch.search_types['LRS'] = 'LrsSearch'
class CisLrsSearch(LrsSearch):
"""Searches for genes on a particular chromosome with a cis-eQTL within the given LRS values
-
+
A cisLRS search can take 2 forms:
- cisLRS=(min_LRS max_LRS)
- cisLRS=(min_LRS max_LRS mb_buffer)
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).
-
+
"""
-
+
# 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):
@@ -318,27 +320,28 @@ class CisLrsSearch(LrsSearch):
self.dataset.type,
min_threshold
)
-
else:
- NeedSomeErrorHere
+ NeedSomeErrorHere
- return None
+ query = self.compile_final_query(where_clause)
+
+ return self.execute(query)
class TransLrsSearch(LrsSearch):
"""Searches for genes on a particular chromosome with a cis-eQTL within the given LRS values
-
+
A transLRS search can take 2 forms:
- transLRS=(min_LRS max_LRS)
- transLRS=(min_LRS max_LRS mb_buffer)
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 trans-eQTL if a gene's expression is regulated by a QTL in a different location/area
(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
@@ -370,8 +373,8 @@ class TransLrsSearch(LrsSearch):
NeedSomeErrorHere
return None
-
-
+
+
#itemCmd = item[0]
#lowerLimit = float(item[1])
#upperLimit = float(item[2])
@@ -402,15 +405,15 @@ class TransLrsSearch(LrsSearch):
# 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))))
-
-
+
+
class MeanSearch(ProbeSetSearch):
"""Searches for genes expressed within an interval (log2 units) determined by the user"""
-
+
DoSearch.search_types['MEAN'] = "MeanSearch"
-
+
def run(self):
-
+
return None
@@ -443,8 +446,9 @@ if __name__ == "__main__":
#results = RifSearch("diabetes", dataset, cursor, db_conn).run()
#results = WikiSearch("nicotine", dataset, cursor, db_conn).run()
results = CisLrsSearch(['9','99','10'], 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()
#results = GoSearch("0045202", dataset, cursor, db_conn).run()
-
+
print("results are:", pf(results)) \ No newline at end of file
diff --git a/wqflask/wqflask/parser.py b/wqflask/wqflask/parser.py
index b220f837..74343b8a 100644
--- a/wqflask/wqflask/parser.py
+++ b/wqflask/wqflask/parser.py
@@ -9,9 +9,9 @@ def parse(pstring):
pstring = re.split(r"""(?:(\w+\s*=\s*\([^)]*\))|(\w+\s*[=:]\w+)|(\w+))""", pstring)
pstring = [item.strip() for item in pstring if item and item.strip()]
print(pstring)
-
+
items = []
-
+
for item in pstring:
if ":" in item:
key, seperator, value = item.partition(':')
@@ -19,7 +19,7 @@ def parse(pstring):
key, seperator, value = item.partition('=')
else:
seperator = None
-
+
if seperator:
if '(' in value:
assert value.startswith("("), "Invalid token"
@@ -41,11 +41,11 @@ def parse(pstring):
term = dict(key=None,
seperator=None,
search_term = item)
-
+
items.append(term)
print(pf(items))
return(items)
-
+
if __name__ == '__main__':
parse("foo=(3 2 1)")
parse("shh")
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 4aa1f2bc..dc3c72fc 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -45,7 +45,6 @@ from utility import formatting
class SearchResultPage(templatePage):
maxReturn = 3000
- #NPerPage = 100
nkeywords = 0
def __init__(self, fd):
@@ -155,6 +154,13 @@ class SearchResultPage(templatePage):
'Publication.Title',
'Publication.Authors',
'PublishXRef.Id']
+ self.header_fields = ['',
+ 'ID',
+ 'Description',
+ 'Authors',
+ 'Year',
+ 'Max LRS',
+ 'Max LRS Location']
elif self.dataset.type == "ProbeSet":
self.search_fields = ['Name',
@@ -175,13 +181,19 @@ class SearchResultPage(templatePage):
'Max LRS Location']
elif self.dataset.type == "Geno":
self.search_fields = ['Name','Chr']
+ self.header_fields = ['',
+ 'ID',
+ 'Location']
self.search()
self.gen_search_result()
def gen_search_result(self):
-
+ """Get the info displayed in the search result table from the set of results computed in
+ the "search" function
+
+ """
self.trait_list = []
# result_set represents the results for each search term; a search of
# "shh grin2b" would have two sets of results, one for each term
@@ -192,52 +204,27 @@ class SearchResultPage(templatePage):
seq = 1
group = self.dataset.group
- self.form_name = form_name = 'show_dataset_'+group
- tblobj = {}
species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=group)
- #### Excel file
-
- # Todo: Replace this with official Python temp file naming functions?
- filename= webqtlUtil.genRandStr("Search_")
- #xlsUrl = HT.Input(type='button', value = 'Download Table', onClick= "location.href='/tmp/%s.xls'" % filename, Class='button')
- # Create a new Excel workbook
- #workbook = xl.Writer('%s.xls' % (webqtlConfig.TMPDIR+filename))
- #headingStyle = workbook.add_format(align = 'center', bold = 1, border = 1, size=13, fg_color = 0x1E, color="white")
-
- #XZ, 3/18/2010: pay attention to the line number of header in this file. As of today, there are 7 lines.
- #worksheet = self.createExcelFileWithTitleAndFooter(workbook=workbook, db=this_trait.db, returnNumber=len(self.trait_list))
- newrow = 7
-
- #### Excel file stuff stops
-
- if self.dataset.type == "ProbeSet":
- print("foo locals are:", locals())
- probe_set_id = result[0]
- this_trait = webqtlTrait(db=self.dataset, name=probe_set_id, cursor=self.cursor)
- this_trait.retrieveInfo(QTL=True)
- print("this_trait is:", pf(this_trait))
- self.trait_list.append(this_trait)
- #elif self.dataset.type == "Publish":
- # tblobj['body'] = self.getTableBodyForPublish(trait_list=self.trait_list, formName=mainfmName, worksheet=worksheet, species=species)
- #elif self.dataset.type == "Geno":
- # tblobj['body'] = self.getTableBodyForGeno(trait_list=self.trait_list, form_name=form_name, worksheet=worksheet)
-
- #traitForm = HT.Form(cgi= os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), enctype='multipart/form-data', name=thisFormName, submit=HT.Input(type='hidden'))
- hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':'_','CellID':'_','group':group}
- hddn['incparentsf1']='ON'
+ #### Excel file needs to be generated ####
+
+ print("foo locals are:", locals())
+ trait_id = result[0]
+ this_trait = webqtlTrait(db=self.dataset, name=trait_id, cursor=self.cursor)
+ this_trait.retrieveInfo(QTL=True)
+ print("this_trait is:", pf(this_trait))
+ self.trait_list.append(this_trait)
if self.dataset.type == "ProbeSet":
- tblobj['body'] = self.getTableBodyForProbeSet(trait_list=self.trait_list, formName=self.form_name, species=species)
+ self.getTraitInfoForProbeSet(trait_list=self.trait_list, species=species)
elif self.dataset.type == "Publish":
- tblobj['body'] = self.getTableBodyForPublish(trait_list=self.trait_list, formName=self.form_name, species=species)
+ self.getTraitInfoForPublish(trait_list=self.trait_list, species=species)
elif self.dataset.type == "Geno":
- tblobj['body'] = self.getTableBodyForGeno(trait_list=self.trait_list, form_name=self.form_name)
+ self.getTraitInfoForGeno(trait_list=self.trait_list)
def search(self):
- print("fd.search_terms:", self.fd['search_terms'])
self.search_terms = parser.parse(self.fd['search_terms'])
print("After parsing:", self.search_terms)
@@ -267,6 +254,7 @@ class SearchResultPage(templatePage):
print("in the search results are:", self.results)
+ #ZS: This should be handled in the parser
def encregexp(self,str):
if not str:
return []
@@ -284,24 +272,12 @@ class SearchResultPage(templatePage):
return wildcardkeyword
- def getTableBodyForGeno(self, trait_list, formName=None):
-
- tblobj_body = []
-
- className = "fs12 fwn ffl b1 c222"
+ def getTraitInfoForGeno(self, trait_list):
for this_trait in trait_list:
- tr = []
-
if not this_trait.haveinfo:
this_trait.retrieveInfo()
- trId = str(this_trait)
-
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class=className), text=trId))
-
- tr.append(TDCell(HT.TD(HT.Href(text=this_trait.name,url="javascript:showDatabase3('%s','%s','%s','')" % (formName, this_trait.db.name, this_trait.name), Class="fs12 fwn ffl"),align="left", Class=className), text=this_trait.name, val=this_trait.name.upper()))
-
#XZ: trait_location_value is used for sorting
trait_location_repr = 'N/A'
trait_location_value = 1000000
@@ -315,70 +291,37 @@ class SearchResultPage(templatePage):
else:
trait_location_value = ord(str(this_trait.chr).upper()[0])*1000 + this_trait.mb
- trait_location_repr = 'Chr%s: %.6f' % (this_trait.chr, float(this_trait.mb) )
+ this_trait.location_repr = 'Chr%s: %.4f' % (this_trait.chr, float(this_trait.mb) )
+ this_trait.location_value = trait_location_value
- tr.append(TDCell(HT.TD(trait_location_repr, Class="fs12 fwn b1 c222", nowrap="on"), trait_location_repr, trait_location_value))
- tblobj_body.append(tr)
-
- #for ncol, item in enumerate([this_trait.name, trait_location_repr]):
- # worksheet.write([newrow, ncol], item)
-
- return tblobj_body
-
-
- def getTableBodyForPublish(self, trait_list, formName=None, species=''):
-
- tblobj_body = []
-
- className = "fs12 fwn b1 c222"
+ def getTraitInfoForPublish(self, trait_list, species=''):
for this_trait in trait_list:
- tr = []
-
if not this_trait.haveinfo:
this_trait.retrieveInfo(QTL=1)
- trId = str(this_trait)
-
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class=className), text=trId))
-
- tr.append(TDCell(HT.TD(HT.Href(text=this_trait.name,url="javascript:showDatabase3('%s','%s','%s','')" % (formName, this_trait.db.name, this_trait.name), Class="fs12 fwn"), nowrap="yes",align="center", Class=className),str(this_trait.name), this_trait.name))
-
- PhenotypeString = this_trait.post_publication_description
+ description = this_trait.post_publication_description
if this_trait.confidential:
if not webqtlUtil.hasAccessToConfidentialPhenotypeTrait(privilege=self.privilege, userName=self.userName, authorized_users=this_trait.authorized_users):
- PhenotypeString = this_trait.pre_publication_description
- tr.append(TDCell(HT.TD(PhenotypeString, Class=className), PhenotypeString, PhenotypeString.upper()))
-
- tr.append(TDCell(HT.TD(this_trait.authors, Class="fs12 fwn b1 c222 fsI"),this_trait.authors, this_trait.authors.strip().upper()))
+ description = this_trait.pre_publication_description
+ this_trait.description_display = description
try:
- PubMedLinkText = myear = repr = int(this_trait.year)
+ this_trait.pubmed_text = int(this_trait.year)
except:
- PubMedLinkText = repr = "N/A"
- myear = 0
+ this_trait.pubmed_text = "N/A"
if this_trait.pubmed_id:
- PubMedLink = HT.Href(text= repr,url= webqtlConfig.PUBMEDLINK_URL % this_trait.pubmed_id,target='_blank', Class="fs12 fwn")
- else:
- PubMedLink = repr
-
- tr.append(TDCell(HT.TD(PubMedLink, Class=className, align='center'), repr, myear))
+ this_trait.pubmed_link = webqtlConfig.PUBMEDLINK_URL % this_trait.pubmed_id
#LRS and its location
- LRS_score_repr = 'N/A'
- LRS_score_value = 0
- LRS_location_repr = 'N/A'
- LRS_location_value = 1000000
- LRS_flag = 1
-
+ this_trait.LRS_score_repr = 'N/A'
+ this_trait.LRS_score_value = 0
+ this_trait.LRS_location_repr = 'N/A'
+ this_trait.LRS_location_value = 1000000
if this_trait.lrs:
- LRS_score_repr = '%3.1f' % this_trait.lrs
- LRS_score_value = this_trait.lrs
- tr.append(TDCell(HT.TD(LRS_score_repr, Class=className), LRS_score_repr, LRS_score_value))
-
self.cursor.execute("""
select Geno.Chr, Geno.Mb from Geno, Species
where Species.Name = '%s' and
@@ -401,27 +344,14 @@ class SearchResultPage(templatePage):
else:
LRS_location_value = ord(str(LRS_chr).upper()[0])*1000 + float(LRS_Mb)
- LRS_location_repr = 'Chr%s: %.6f' % (LRS_Chr, float(LRS_Mb) )
- LRS_flag = 0
-
- tr.append(TDCell(HT.TD(LRS_location_repr, Class=className, nowrap="on"), LRS_location_repr, LRS_location_value))
-
- else:
- tr.append(TDCell(HT.TD("N/A", Class=className), "N/A", "N/A"))
- tr.append(TDCell(HT.TD("N/A", Class=className), "N/A", "N/A"))
-
- tblobj_body.append(tr)
-
- #for ncol, item in enumerate([this_trait.name, PhenotypeString, this_trait.authors, this_trait.year, this_trait.pubmed_id, LRS_score_repr, LRS_location_repr]):
- # worksheet.write([newrow, ncol], item)
+ this_trait.LRS_score_repr = LRS_score_repr = '%3.1f' % this_trait.lrs
+ this_trait.LRS_score_value = LRS_score_value = this_trait.lrs
+ this_trait.LRS_location_repr = LRS_location_repr = 'Chr %s: %.4f Mb' % (LRS_Chr, float(LRS_Mb) )
- return tblobj_body
+ def getTraitInfoForProbeSet(self, trait_list=None, species=''):
- def getTableBodyForProbeSet(self, trait_list=None, primaryTrait=None, formName=None, species=''):
# Note: setting trait_list to [] is probably not a great idea.
- tblobj_body = []
-
if not trait_list:
trait_list = []
@@ -435,27 +365,6 @@ class SearchResultPage(templatePage):
else:
this_trait.symbol = "N/A"
- tr = []
-
- trId = str(this_trait)
-
- #XZ, 12/08/2008: checkbox
- #tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class="fs12 fwn ffl b1 c222"), text=trId))
-
- #XZ, 12/08/2008: probeset name
- #if this_trait.cellid:
- # tr.append(TDCell(HT.TD(HT.Href(text=this_trait.name, url="javascript:showDatabase3('%s','%s','%s','%s')" % (formName, this_trait.db.name,this_trait.name,this_trait.cellid), Class="fs12 fwn"), Class=className), this_trait.name, this_trait.name.upper()))
- #else:
- # tr.append(TDCell(HT.TD(HT.Href(text=this_trait.name, url="javascript:showDatabase3('%s','%s','%s','')" % (formName, this_trait.db.name,this_trait.name), Class="fs12 fwn"), Class=className), this_trait.name, this_trait.name.upper()))
- #
- #if this_trait.geneid:
- # symbolurl = HT.Href(text=this_trait.symbol,target='_blank',url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=%s" % this_trait.geneid, Class="font_black fs12 fwn")
- #else:
- # symbolurl = HT.Href(text=this_trait.symbol,target='_blank',url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=%s" % this_trait.symbol, Class="font_black fs12 fwn")
- #
- ##XZ, 12/08/2008: gene symbol
- #tr.append(TDCell(HT.TD(symbolurl, Class="fs12 fwn b1 c222 fsI"),this_trait.symbol, this_trait.symbol.upper()))
-
#XZ, 12/08/2008: description
#XZ, 06/05/2009: Rob asked to add probe target description
description_string = str(this_trait.description).strip()
@@ -487,8 +396,8 @@ class SearchResultPage(templatePage):
else:
trait_location_value = ord(str(this_trait.chr).upper()[0])*1000 + this_trait.mb
- trait_location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr, float(this_trait.mb) )
- this_trait.trait_location_repr = trait_location_repr
+ this_trait.location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr, float(this_trait.mb) )
+ this_trait.location_value = trait_location_value
#this_trait.trait_location_value = trait_location_value
#XZ, 01/12/08: This SQL query is much faster.
@@ -517,11 +426,10 @@ class SearchResultPage(templatePage):
this_trait.mean = repr = "%2.3f" % mean
#LRS and its location
- LRS_score_repr = 'N/A'
- LRS_score_value = 0
- LRS_location_repr = 'N/A'
- LRS_location_value = 1000000
- LRS_flag = 1
+ this_trait.LRS_score_repr = 'N/A'
+ this_trait.LRS_score_value = 0
+ this_trait.LRS_location_repr = 'N/A'
+ this_trait.LRS_location_value = 1000000
#Max LRS and its Locus location
if this_trait.lrs and this_trait.locus:
@@ -550,28 +458,3 @@ class SearchResultPage(templatePage):
this_trait.LRS_score_repr = LRS_score_repr = '%3.1f' % this_trait.lrs
this_trait.LRS_score_value = LRS_score_value = this_trait.lrs
this_trait.LRS_location_repr = LRS_location_repr = 'Chr %s: %.4f Mb' % (LRS_Chr, float(LRS_Mb) )
- LRS_flag = 0
-
- #if LRS_flag:
- #tr.append(TDCell(HT.TD(LRS_score_repr, Class=className), LRS_score_repr, LRS_score_value))
- #tr.append(TDCell(HT.TD(LRS_location_repr, Class=className), LRS_location_repr, LRS_location_value))
-
- #else:
- #tr.append(TDCell(HT.TD("N/A", Class=className), "N/A", "N/A"))
- #tr.append(TDCell(HT.TD("N/A", Class=className), "N/A", "N/A"))
-
- tblobj_body.append(tr)
-
- return tblobj_body
-
-
- def getSortByValue(self, datasetType=''):
-
- if datasetType == 'Geno':
- sortby = ("location", "up")
- elif datasetType == 'ProbeSet':
- sortby = ("symbol", "up")
- else: #Phenotype
- sortby = ("record_id", "down")
-
- return sortby
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index 65182e1f..e393ced6 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -50,18 +50,32 @@
</TD>
<TD>
<a href="{{ url_for('show_trait_page',
- database=this_trait.db.name,
- ProbeSetID=this_trait.name, incparentsf1='ON',
- RISet='BXD')}}">
- {{ this_trait.name.upper() }}
+ dataset = dataset.name,
+ trait_id = this_trait.name,
+ group = dataset.group)}}">
+ {{ this_trait.name }}
</a>
</TD>
- <TD>{{ this_trait.symbol }}</TD>
- <TD>{{ this_trait.description_display }}</TD>
- <TD>{{ this_trait.trait_location_repr }}</TD>
- <TD>{{ this_trait.mean }}</TD>
- <TD>{{ this_trait.LRS_score_repr }}</TD>
- <TD>{{ this_trait.LRS_location_repr }}</TD>
+ {% if dataset.type == 'ProbeSet' %}
+ <TD>{{ this_trait.symbol }}</TD>
+ <TD>{{ this_trait.description_display }}</TD>
+ <TD>{{ this_trait.location_repr }}</TD>
+ <TD>{{ this_trait.mean }}</TD>
+ <TD>{{ this_trait.LRS_score_repr }}</TD>
+ <TD>{{ this_trait.LRS_location_repr }}</TD>
+ {% elif dataset.type == 'Publish' %}
+ <TD>{{ this_trait.description_display }}</TD>
+ <TD>{{ this_trait.authors }}</TD>
+ <TD>
+ <a href="{{ this_trait.pubmed_link }}">
+ {{ this_trait.pubmed_text }}
+ </a>
+ </TD>
+ <TD>{{ this_trait.LRS_score_repr }}</TD>
+ <TD>{{ this_trait.LRS_location_repr }}</TD>
+ {% elif dataset.type == 'Geno' %}
+ <TD>{{ this_trait.location_repr }}</TD>
+ {% endif %}
</TR>
{% endfor %}
</tbody>