aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rwxr-xr-xwqflask/base/data_set.py4
-rw-r--r--wqflask/wqflask/search_results.py59
-rw-r--r--wqflask/wqflask/templates/index_page.html9
-rw-r--r--wqflask/wqflask/templates/quick_search.html146
-rw-r--r--wqflask/wqflask/templates/show_trait_details.html4
5 files changed, 165 insertions, 57 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index d7328441..9b0a3dcc 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -735,8 +735,10 @@ class MrnaAssayDataSet(DataSet):
trait_location_value = 1000000
if this_trait.chr and this_trait.mb:
+ print("this_trait.chr is:", this_trait.chr)
+ print("this_trait.mb is:", this_trait.mb)
try:
- trait_location_value = int(this_trait.chr)*1000 + this_trait.mb
+ trait_location_value = float(this_trait.chr)*1000 + float(this_trait.mb)
except:
if this_trait.chr.upper() == 'X':
trait_location_value = 20*1000 + this_trait.mb
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index ad74f6cc..63aa481e 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -42,7 +42,7 @@ from utility import formatting
#def __init__(self, key, result_fields):
# self.key = key
# self.result_fields = result_fields
-
+
class SearchResultPage(object):
#maxReturn = 3000
@@ -73,6 +73,7 @@ class SearchResultPage(object):
self.quick = True
self.search_terms = kw['q']
print("self.search_terms is: ", self.search_terms)
+ self.trait_type = kw['trait_type']
self.quick_search()
else:
self.results = []
@@ -91,7 +92,7 @@ class SearchResultPage(object):
"""
self.trait_list = []
-
+
species = webqtlDatabaseFunction.retrieve_species(self.dataset.group.name)
# result_set represents the results for each search term; a search of
@@ -100,7 +101,7 @@ class SearchResultPage(object):
for result in self.results:
if not result:
continue
-
+
#### Excel file needs to be generated ####
print("foo locals are:", locals())
@@ -123,42 +124,46 @@ class SearchResultPage(object):
FROM QuickSearch
WHERE MATCH (terms)
AGAINST ('{}' IN BOOLEAN MODE) """.format(search_terms)
- #print("query is: ", query)
with Bench("Doing QuickSearch Query: "):
dbresults = g.db.execute(query, no_parameters=True).fetchall()
#print("results: ", pf(results))
-
+
self.results = collections.defaultdict(list)
-
+
type_dict = {'PublishXRef': 'phenotype',
'ProbeSetXRef': 'mrna_assay',
'GenoXRef': 'genotype'}
-
+
self.species_groups = {}
+
for dbresult in dbresults:
this_result = {}
this_result['table_name'] = dbresult.table_name
- this_result['key'] = dbresult.the_key
- this_result['result_fields'] = json.loads(dbresult.result_fields)
- this_species = this_result['result_fields']['species']
- this_group = this_result['result_fields']['group_name']
- if this_species not in self.species_groups:
- self.species_groups[this_species] = {}
- if type_dict[dbresult.table_name] not in self.species_groups[this_species]:
- self.species_groups[this_species][type_dict[dbresult.table_name]] = []
- if this_group not in self.species_groups[this_species][type_dict[dbresult.table_name]]:
- self.species_groups[this_species][type_dict[dbresult.table_name]].append(this_group)
- #if type_dict[dbresult.table_name] not in self.species_groups:
- # self.species_groups[type_dict[dbresult.table_name]] = {}
- #if this_species not in self.species_groups[type_dict[dbresult.table_name]]:
- # self.species_groups[type_dict[dbresult.table_name]][this_species] = []
- #if this_group not in self.species_groups[type_dict[dbresult.table_name]][this_species]:
- # self.species_groups[type_dict[dbresult.table_name]][this_species].append(this_group)
- self.results[type_dict[dbresult.table_name]].append(this_result)
-
- #print("results: ", pf(self.results['phenotype']))
-
+ if self.trait_type == type_dict[dbresult.table_name] or self.trait_type == 'all':
+ this_result['key'] = dbresult.the_key
+ this_result['result_fields'] = json.loads(dbresult.result_fields)
+ this_species = this_result['result_fields']['species']
+ this_group = this_result['result_fields']['group_name']
+ if this_species not in self.species_groups:
+ self.species_groups[this_species] = {}
+ if type_dict[dbresult.table_name] not in self.species_groups[this_species]:
+ self.species_groups[this_species][type_dict[dbresult.table_name]] = []
+ if this_group not in self.species_groups[this_species][type_dict[dbresult.table_name]]:
+ self.species_groups[this_species][type_dict[dbresult.table_name]].append(this_group)
+ #if type_dict[dbresult.table_name] not in self.species_groups:
+ # self.species_groups[type_dict[dbresult.table_name]] = {}
+ #if this_species not in self.species_groups[type_dict[dbresult.table_name]]:
+ # self.species_groups[type_dict[dbresult.table_name]][this_species] = []
+ #if this_group not in self.species_groups[type_dict[dbresult.table_name]][this_species]:
+ # self.species_groups[type_dict[dbresult.table_name]][this_species].append(this_group)
+ self.results[type_dict[dbresult.table_name]].append(this_result)
+
+ import redis
+ Redis = redis.Redis()
+
+
+
#def get_group_species_tree(self):
# self.species_groups = collections.default_dict(list)
# for key in self.results:
diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html
index b4376ce3..a9f2cb24 100644
--- a/wqflask/wqflask/templates/index_page.html
+++ b/wqflask/wqflask/templates/index_page.html
@@ -32,7 +32,14 @@
</div>
<form method="get" action="/search" name="SEARCHFORM">
<fieldset>
- <label for="quick">Search:</label>
+ <div class="input-prepend">
+ <select id="trait_type" name="trait_type" class="span2">
+ <option value="all">All</option>
+ <option value="mrna_assay">Molecular Assays</option>
+ <option value="phenotype">Phenotypes</option>
+ <option value="genotype">Genotypes</option>
+ </select>
+ </div>
<div class="input-append">
<input class="input-xlarge"
id="quick" name="q"
diff --git a/wqflask/wqflask/templates/quick_search.html b/wqflask/wqflask/templates/quick_search.html
index 01588924..b0e38708 100644
--- a/wqflask/wqflask/templates/quick_search.html
+++ b/wqflask/wqflask/templates/quick_search.html
@@ -26,7 +26,11 @@
{% endif %}
</ul>
- <div id="species_level" class="tabbable"> <!-- Only required for left/right tabs -->
+
+ <div class="tabbable"> <!-- Only required for left/right tabs -->
+ {% if trait_type == 'all' %}
+ {% include 'all_results.html' %}
+ {% else %}
<ul class="nav nav-tabs">
{% for species in species_groups %}
<li> <a href="#tab{{ loop.index }}" data-toggle="tab">{{ species }}</a></li>
@@ -34,11 +38,12 @@
</ul>
<div class="tab-content">
{% for species in species_groups %}
- <div class="tab-pane" id="tab{{ loop.index }}">
- <div id="trait_type_level" class="tabbable tabs-left">
+ <div class="tab-pane active" id="tab{{ loop.index }}">
+ <div>
+ {#
<ul class="nav nav-tabs">
{% if species_groups[species]['phenotype'] %}
- <li> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>
+ <li class="active"> <a href="#tab{{ loop.index }}_1" data-toggle="tab">Phenotype</a></li>
{% endif %}
{% if species_groups[species]['mrna_assay'] %}
<li> <a href="#tab{{ loop.index }}_2" data-toggle="tab">mRNA Assay</a></li>
@@ -47,9 +52,9 @@
<li> <a href="#tab{{ loop.index }}_3" data-toggle="tab">Genotype</a></li>
{% endif %}
</ul>
- <div class="tab-content">
- {% if species_groups[species]['phenotype'] %}
- <div class="tab-pane active" id="tab{{ loop.index }}_1">
+ #}
+ <div>
+ {% if trait_type == 'phenotype' and species_groups[species]['phenotype'] %}
<table id="pheno_results" class="table table-hover table-striped table-bordered">
<thead>
<tr>
@@ -82,10 +87,8 @@
{% endfor %}
</tbody>
</table>
- </div>
{% endif %}
- {% if species_groups[species]['mrna_assay'] %}
- <div class="tab-pane" id="tab{{ loop.index }}_2">
+ {% if trait_type == 'mrna_assay' and species_groups[species]['mrna_assay'] %}
<table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
<thead>
<tr>
@@ -105,7 +108,7 @@
{% if result.result_fields['species'] == species %}
<tr>
<td>
- <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}">
+ <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
{{ result.result_fields['name'] }}
</a>
</td>
@@ -114,18 +117,16 @@
<td>{{ result.result_fields['dataset_name'] }}</td>
<td>{{ result.result_fields['symbol'] }}</td>
<td>{{ result.result_fields['description'] }}</td>
- <td>Chr {{ result.result_fields['chr'] }}: {{ result.result_fields['mb'] }}</td>
+ <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
<td>{{ result.result_fields['mean'] }}</td>
<td>{{ result.result_fields['lrs'] }}</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
- </table>
- </div>
+ </table>
{% endif %}
- {% if species_groups[species]['genotype'] %}
- <div class="tab-pane" id="tab{{ loop.index }}_3">
+ {% if trait_type == 'genotype' and species_groups[species]['genotype'] %}
<table id="geno_results" class="table table-hover table-striped table-bordered">
<thead>
<tr>
@@ -153,14 +154,14 @@
{% endif %}
{% endfor %}
</tbody>
- </table>
- </div>
+ </table>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>
+ {% endif %}
</div>
</div>
@@ -168,6 +169,105 @@
{% endblock %}
+ {#
+ <table id="pheno_results" class="table table-hover table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>Id</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Description</th>
+ <th>LRS</th>
+ <th>Year</th>
+ <th>Authors</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.phenotype %}
+ <tr>
+ <td>{{ result.result_fields['phenotype_id'] }}</td>
+ <td>{{ result.result_fields['species'] }}</td>
+ <td>{{ result.result_fields['group_name'] }}</td>
+ <td>{{ result.result_fields['description'] }}</td>
+ <td>{{ result.result_fields['lrs'] }}</td>
+ <td>
+ <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result.result_fields['pubmed_id'] }}&dopt=Abstract">
+ {{ result.result_fields['year'] }}
+ </a>
+ </td>
+ <td>{{ result.result_fields['authors'] }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ <div class="tab-pane" id="tab2">
+ <table id="mrna_assay_results" class="table table-hover table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>Record ID</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Data Set</th>
+ <th>Symbol</th>
+ <th>Description</th>
+ <th>Location</th>
+ <th>Mean Expr</th>
+ <th>Max LRS</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.mrna_assay %}
+ <tr>
+ <td>
+ <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['name'] }}&dataset={{ result.result_fields['dataset'] }}"
+ {{ result.result_fields['name'] }}
+ </a>
+ </td>
+ <td>{{ result.result_fields['species'] }}</td>
+ <td>{{ result.result_fields['group_name'] }}</td>
+ <td>{{ result.result_fields['dataset_name'] }}</td>
+ <td>{{ result.result_fields['symbol'] }}</td>
+ <td>{{ result.result_fields['description'] }}</td>
+ <td>{{ result.result_fields['chr'] }} : {{ result['mb'] }}</td>
+ <td>{{ result.result_fields['mean'] }}</td>
+ <td>{{ result.result_fields['lrs'] }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ <div class="tab-pane" id="tab3">
+ <table id="geno_results" class="table table-hover table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>Marker</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Data Set</th>
+ <th>Location</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.genotype %}
+ <tr>
+ <td>
+ <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result.result_fields['marker_name'] }}&dataset={{ result.result_fields['dataset'] }}">
+ {{ result.result_fields['marker_name'] }}
+ </a>
+ </td>
+ <td>{{ result.result_fields['species'] }}</td>
+ <td>{{ result.result_fields['group_name'] }}</td>
+ <td>{{ result.result_fields['dataset_name'] }}</td>
+ <td>{{ result.result_fields['chr'] }} : {{ result.result_fields['mb'] }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ #}
+
+
{% block js %}
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
@@ -175,16 +275,9 @@
<script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
+
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
-
- $("div[id^='tab'").bind('click', function(){
- tab_id = $(this).attr('id');
- $("a[href^='"+tab_id+"']").first().trigger('click');
- });
-
- $('#species_level ul li:first').addClass('active');
- $('#trait_type_level ul li:first').addClass('active');
console.time("Creating table");
$('#pheno_results, #mrna_assay_results, #geno_results').dataTable( {
//"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
@@ -210,3 +303,4 @@
});
</script>
{% endblock %}
+
diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html
index c3abfc9f..b57c3c21 100644
--- a/wqflask/wqflask/templates/show_trait_details.html
+++ b/wqflask/wqflask/templates/show_trait_details.html
@@ -19,11 +19,11 @@
BLAT Specifity
</a>
</dt>
- <dd>{{ "%.1f" % (this_trait.probe_set_specificity) }}</dd>
+ <dd>{{ "%s" % (this_trait.probe_set_specificity) }}</dd>
{% endif %}
{% if this_trait.probe_set_blat_score %}
<dt>BLAT Score</dt>
- <dd>{{ "%i" % (this_trait.probe_set_blat_score) }}</dd>
+ <dd>{{ "%s" % (this_trait.probe_set_blat_score) }}</dd>
{% endif %}
</dl>