aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xwqflask/base/data_set.py8
-rwxr-xr-xwqflask/base/mrna_assay_tissue_data.py6
-rwxr-xr-xwqflask/base/trait.py2
-rwxr-xr-xwqflask/wqflask/do_search.py100
-rwxr-xr-xwqflask/wqflask/search_results.py1
-rwxr-xr-xwqflask/wqflask/templates/correlation_page.html10
-rwxr-xr-xwqflask/wqflask/templates/search_result_page.html6
7 files changed, 57 insertions, 76 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 706b193d..acfee3d4 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -789,7 +789,7 @@ class PhenotypeDataSet(DataSet):
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))
+ this_trait.LRS_location_repr = LRS_location_repr = 'Chr %s: %.6f Mb' % (LRS_Chr, float(LRS_Mb))
def retrieve_sample_data(self, trait):
query = """
@@ -880,7 +880,7 @@ class GenotypeDataSet(DataSet):
else:
trait_location_value = ord(str(this_trait.chr).upper()[0])*1000 + this_trait.mb
- this_trait.location_repr = 'Chr%s: %.4f' % (this_trait.chr, float(this_trait.mb) )
+ this_trait.location_repr = 'Chr%s: %.6f' % (this_trait.chr, float(this_trait.mb) )
this_trait.location_value = trait_location_value
def retrieve_sample_data(self, trait):
@@ -1107,7 +1107,7 @@ class MrnaAssayDataSet(DataSet):
# this_trait.mb)
#ZS: Put this in function currently called "convert_location_to_value"
- this_trait.location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr,
+ this_trait.location_repr = 'Chr %s: %.6f Mb' % (this_trait.chr,
float(this_trait.mb))
this_trait.location_value = trait_location_value
@@ -1163,7 +1163,7 @@ class MrnaAssayDataSet(DataSet):
this_trait.LRS_score_repr = '%3.1f' % this_trait.lrs
this_trait.LRS_score_value = this_trait.lrs
- this_trait.LRS_location_repr = 'Chr %s: %.4f Mb' % (lrs_chr, float(lrs_mb))
+ this_trait.LRS_location_repr = 'Chr %s: %.6f' % (lrs_chr, float(lrs_mb))
def convert_location_to_value(self, chromosome, mb):
diff --git a/wqflask/base/mrna_assay_tissue_data.py b/wqflask/base/mrna_assay_tissue_data.py
index 1a05fce7..b2c0448a 100755
--- a/wqflask/base/mrna_assay_tissue_data.py
+++ b/wqflask/base/mrna_assay_tissue_data.py
@@ -51,15 +51,15 @@ class MrnaAssayTissueData(object):
query += ''' Symbol in {} group by Symbol)
as x inner join TissueProbeSetXRef as t on t.Symbol = x.Symbol
- and t.Mean = x.maxmean;
+ and t.Mean = x.maxmean;http://docs.python.org/2/library/string.html?highlight=lower#string.lower
'''.format(in_clause)
results = g.db.execute(query).fetchall()
for result in results:
symbol = result[0]
- if symbol in gene_symbols:
- #gene_symbols.append(symbol)
+ if symbol.lower() in [gene_symbol.lower() for gene_symbol in gene_symbols]:
+ #gene_symbols.append(symbol)
symbol = symbol.lower()
self.data[symbol].gene_id = result.GeneId
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 8930c917..7f1170a9 100755
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -423,6 +423,8 @@ class GeneralTrait(object):
if result:
self.locus_chr = result[0]
self.locus_mb = result[1]
+ else:
+ self.locus = self.locus_chr = self.locus_mb = ""
else:
self.locus = self.locus_chr = self.locus_mb = ""
else:
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index a3260f34..f966b564 100755
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -442,13 +442,6 @@ class WikiSearch(MrnaAssaySearch):
return where_clause
def run(self):
- #where_clause = """%s.symbol = GeneRIF.symbol
- # and GeneRIF.versionId=0 and GeneRIF.display>0
- # and (GeneRIF.comment REGEXP '%s' or GeneRIF.initial = '%s')
- # """ % (self.dataset.type,
- # "[[:<:]]"+str(self.search_term[0])+"[[:>:]]",
- # str(self.search_term[0]))
-
where_clause = self.get_where_clause()
from_clause = ", GeneRIF "
@@ -481,7 +474,7 @@ class GoSearch(MrnaAssaySearch):
return self.execute(query)
#ZS: Not sure what the best way to deal with LRS searches is
-class LrsSearch(MrnaAssaySearch):
+class LrsSearch(DoSearch):
"""Searches for genes with a QTL within the given LRS values
LRS searches can take 3 different forms:
@@ -497,9 +490,11 @@ class LrsSearch(MrnaAssaySearch):
def get_from_clause(self):
if self.search_operator == "=":
- return ", Geno"
+ from_clause = ", Geno"
else:
- return ""
+ from_clause = ""
+
+ return from_clause
def get_where_clause(self):
self.search_term = [float(value) for value in self.search_term]
@@ -537,26 +532,42 @@ class LrsSearch(MrnaAssaySearch):
self.search_operator,
self.search_term[0])
where_clause = self.sub_clause
-
-
+
return where_clause
- def get_final_query(self):
+
+ def run(self):
+
self.from_clause = self.get_from_clause()
self.where_clause = self.get_where_clause()
+
self.query = self.compile_final_query(self.from_clause, self.where_clause)
- return self.query
+ return self.execute(self.query)
+
+class MrnaLrsSearch(LrsSearch, MrnaAssaySearch):
+
+ DoSearch.search_types['ProbeSet_LRS'] = 'MrnaLrsSearch'
def run(self):
self.from_clause = self.get_from_clause()
self.where_clause = self.get_where_clause()
-
- self.query = self.compile_final_query(self.from_clause, self.where_clause)
+ self.query = self.compile_final_query(from_clause = self.from_clause, where_clause = self.where_clause)
return self.execute(self.query)
+class PhenotypeLrsSearch(LrsSearch, PhenotypeSearch):
+
+ DoSearch.search_types['Publish_LRS'] = 'PhenotypeLrsSearch'
+
+ def run(self):
+
+ self.from_clause = self.get_from_clause()
+ self.where_clause = self.get_where_clause()
+ self.query = self.compile_final_query(from_clause = self.from_clause, where_clause = self.where_clause)
+
+ return self.execute(self.query)
class CisTransLrsSearch(LrsSearch):
@@ -693,24 +704,6 @@ class MeanSearch(MrnaAssaySearch):
return self.query
def run(self):
-
- #self.search_term = [float(value) for value in self.search_term]
- #
- #if self.search_operator == "=":
- # assert isinstance(self.search_term, (list, tuple))
- # self.mean_min, self.mean_max = self.search_term[:2]
- #
- # self.where_clause = """ %sXRef.mean > %s and
- # %sXRef.mean < %s """ % self.mescape(self.dataset.type,
- # min(self.mean_min, self.mean_max),
- # self.dataset.type,
- # max(self.mean_min, self.mean_max))
- #else:
- # # Deal with >, <, >=, and <=
- # self.where_clause = """ %sXRef.mean %s %s """ % self.mescape(self.dataset.type,
- # self.search_operator,
- # self.search_term[0])
-
self.where_clause = self.get_where_clause()
print("where_clause is:", pf(self.where_clause))
@@ -747,27 +740,6 @@ class RangeSearch(MrnaAssaySearch):
return where_clause
def run(self):
-
- #self.search_term = [float(value) for value in self.search_term]
- #
- #if self.search_operator == "=":
- # assert isinstance(self.search_term, (list, tuple))
- # self.range_min, self.range_max = self.search_term[:2]
- # self.where_clause = """ (SELECT Pow(2, max(value) -min(value))
- # FROM ProbeSetData
- # WHERE ProbeSetData.Id = ProbeSetXRef.dataId) > %s AND
- # (SELECT Pow(2, max(value) -min(value))
- # FROM ProbeSetData
- # WHERE ProbeSetData.Id = ProbeSetXRef.dataId) < %s
- # """ % self.mescape(min(self.range_min, self.range_max),
- # max(self.range_min, self.range_max))
- #else:
- # # Deal with >, <, >=, and <=
- # self.where_clause = """ (SELECT Pow(2, max(value) -min(value))
- # FROM ProbeSetData
- # WHERE ProbeSetData.Id = ProbeSetXRef.dataId) > %s
- # """ % (escape(self.search_term[0]))
-
self.where_clause = self.get_where_clause()
self.query = self.compile_final_query(where_clause = self.where_clause)
@@ -781,6 +753,10 @@ class PositionSearch(DoSearch):
DoSearch.search_types[search_key] = "PositionSearch"
def get_where_clause(self):
+ self.search_term = [float(value) if is_number(value) else value for value in self.search_term]
+ self.chr, self.mb_min, self.mb_max = self.search_term[:3]
+ self.get_chr()
+
where_clause = """ %s.Chr = %s and
%s.Mb > %s and
%s.Mb < %s """ % self.mescape(self.dataset.type,
@@ -793,12 +769,6 @@ class PositionSearch(DoSearch):
return where_clause
- def setup(self):
- self.search_term = [float(value) if is_number(value) else value for value in self.search_term]
- self.chr, self.mb_min, self.mb_max = self.search_term[:3]
- self.get_chr()
- self.where_clause = self.get_where_clause()
-
def get_chr(self):
try:
self.chr = int(self.chr)
@@ -807,7 +777,7 @@ class PositionSearch(DoSearch):
def run(self):
- self.setup()
+ self.get_where_clause()
self.query = self.compile_final_query(where_clause = self.where_clause)
return self.execute(self.query)
@@ -820,7 +790,7 @@ class MrnaPositionSearch(PositionSearch, MrnaAssaySearch):
def run(self):
- self.setup()
+ self.get_where_clause()
self.query = self.compile_final_query(where_clause = self.where_clause)
return self.execute(self.query)
@@ -833,7 +803,7 @@ class GenotypePositionSearch(PositionSearch, GenotypeSearch):
def run(self):
- self.setup()
+ self.get_where_clause()
self.query = self.compile_final_query(where_clause = self.where_clause)
return self.execute(self.query)
@@ -841,6 +811,8 @@ class GenotypePositionSearch(PositionSearch, GenotypeSearch):
class PvalueSearch(MrnaAssaySearch):
"""Searches for traits with a permutationed p-value between low and high"""
+ DoSearch.search_types['ProbeSet_PVALUE'] = "PvalueSearch"
+
def run(self):
self.search_term = [float(value) for value in self.search_term]
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 2a1e8bb3..6614520e 100755
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -239,7 +239,6 @@ class SearchResultPage(object):
for a_search in self.search_terms:
the_search = self.get_search_ob(a_search)
self.results.extend(the_search.run())
- #print("in the search results are:", self.results)
self.header_fields = the_search.header_fields
diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html
index 169371be..74919c88 100755
--- a/wqflask/wqflask/templates/correlation_page.html
+++ b/wqflask/wqflask/templates/correlation_page.html
@@ -85,8 +85,16 @@
<td>{{ trait.description }} <br><br> <b>Aliases</b>: {{ trait.alias }}</td>
<td>Chr{{ trait.chr }}: {{'%0.6f'|format(trait.mb) if trait.mb != None }}</td>
<td>{{'%0.3f'|format(trait.mean)}}</td>
+ {% if trait.lrs == "" or trait.lrs == 0.000 %}
+ <td>--</td>
+ {% else %}
<td>{{'%0.3f'|format(trait.lrs)}}</td>
- <td>Chr{{ trait.locus_chr }}: {{'%0.3f'|format(trait.locus_mb) }}</td>
+ {% endif %}
+ {% if trait.locus_mb == "" %}
+ <td>--</td>
+ {% else %}
+ <td>Chr{{ trait.locus_chr if trait.locus_chr != None }}: {{'%0.3f'|format(trait.locus_mb)}}</td>
+ {% endif %}
<td><a target="_blank" href="corr_scatter_plot?dataset_1={{dataset.name}}&dataset_2={{trait.dataset.name}}&trait_1={{this_trait.name}}&trait_2={{trait.name}}">{{'%0.3f'|format(trait.sample_r)}}</a></td>
<td>{{ trait.num_overlap }}</td>
<td>{{'%0.3e'|format(trait.sample_p)}}</td>
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index ebae41af..227dec0b 100755
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -82,7 +82,7 @@
<TD>{{ this_trait.mean }}</TD>
<TD align="right">{{ this_trait.LRS_score_repr }}</TD>
<TD>{{ this_trait.LRS_location_repr }}</TD>
- <TD>{{ this_trait.additive }}</TD>
+ <TD>{{ '%0.3f' % this_trait.additive|float }}</TD>
{% elif dataset.type == 'Publish' %}
<TD>{{ this_trait.description_display }}</TD>
<TD>{{ this_trait.authors }}</TD>
@@ -93,7 +93,7 @@
</TD>
<TD>{{ this_trait.LRS_score_repr }}</TD>
<TD>{{ this_trait.LRS_location_repr }}</TD>
- <TD>{{ this_trait.additive }}</TD>
+ <TD>{{ '%0.3f' % this_trait.additive|float }}</TD>
{% elif dataset.type == 'Geno' %}
<TD>{{ this_trait.location_repr }}</TD>
{% endif %}
@@ -183,7 +183,7 @@
{ "sType": "natural",
"sWidth": "12%" },
{ "sType": "natural",
- "sWidth": "15%" },
+ "sWidth": "20%" },
{ "sType": "natural" }
],
"sDom": "tir",