diff options
Diffstat (limited to 'wqflask')
-rwxr-xr-x | wqflask/base/data_set.py | 4 | ||||
-rw-r--r-- | wqflask/wqflask/search_results.py | 59 | ||||
-rw-r--r-- | wqflask/wqflask/templates/index_page.html | 9 | ||||
-rw-r--r-- | wqflask/wqflask/templates/quick_search.html | 146 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_details.html | 4 |
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> |