aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/wqflask/marker_regression/display_mapping_results.py6
-rw-r--r--wqflask/wqflask/marker_regression/qtlreaper_mapping.py3
-rw-r--r--wqflask/wqflask/marker_regression/run_mapping.py87
-rw-r--r--wqflask/wqflask/search_results.py79
-rw-r--r--wqflask/wqflask/show_trait/show_trait.py4
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js3
-rw-r--r--wqflask/wqflask/templates/mapping_results.html56
-rw-r--r--wqflask/wqflask/templates/search_result_page.html7
-rw-r--r--wqflask/wqflask/templates/show_trait_details.html24
-rw-r--r--wqflask/wqflask/views.py18
10 files changed, 181 insertions, 106 deletions
diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py
index ddf6dd50..ea1ca5ed 100644
--- a/wqflask/wqflask/marker_regression/display_mapping_results.py
+++ b/wqflask/wqflask/marker_regression/display_mapping_results.py
@@ -146,7 +146,7 @@ class DisplayMappingResults(object):
self.dataset = start_vars['dataset']
self.this_trait = start_vars['this_trait']
- self.n_samples = len(start_vars['vals'])
+ self.n_samples = start_vars['num_vals']
self.species = start_vars['species']
self.genofile_string = ""
if 'genofile_string' in start_vars:
@@ -168,8 +168,8 @@ class DisplayMappingResults(object):
self.mapmodel_rqtl_geno = start_vars['model']
self.pair_scan = start_vars['pair_scan']
- if self.mapping_method != "gemma" and self.mapping_method != "plink":
- self.js_data = start_vars['js_data']
+ #if self.mapping_method != "gemma" and self.mapping_method != "plink":
+ self.js_data = start_vars['js_data']
self.trimmed_markers = start_vars['trimmed_markers'] #Top markers to display in table
if self.dataset.group.species == "rat":
diff --git a/wqflask/wqflask/marker_regression/qtlreaper_mapping.py b/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
index b74a1c4d..809d0ce4 100644
--- a/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
+++ b/wqflask/wqflask/marker_regression/qtlreaper_mapping.py
@@ -95,7 +95,8 @@ def parse_reaper_output(gwa_filename, permu_filename, bootstrap_filename):
marker['chr'] = line.split("\t")[2]
marker['cM'] = float(line.split("\t")[3])
marker['Mb'] = float(line.split("\t")[4])
- marker['p_value'] = float(line.split("\t")[7])
+ if float(line.split("\t")[7]) != 1:
+ marker['p_value'] = float(line.split("\t")[7])
marker['lrs_value'] = float(line.split("\t")[5])
marker['lod_score'] = marker['lrs_value'] / 4.61
marker['additive'] = float(line.split("\t")[6])
diff --git a/wqflask/wqflask/marker_regression/run_mapping.py b/wqflask/wqflask/marker_regression/run_mapping.py
index 676df391..7f6bb0a5 100644
--- a/wqflask/wqflask/marker_regression/run_mapping.py
+++ b/wqflask/wqflask/marker_regression/run_mapping.py
@@ -85,6 +85,8 @@ class RunMapping(object):
self.samples.append(sample)
self.vals.append(value)
+ self.num_vals = start_vars['num_vals']
+
#ZS: Check if genotypes exist in the DB in order to create links for markers
if "geno_db_exists" in start_vars:
self.geno_db_exists = start_vars['geno_db_exists']
@@ -311,14 +313,32 @@ class RunMapping(object):
else:
self.qtl_results = []
+ self.qtl_results_for_browser = []
highest_chr = 1 #This is needed in order to convert the highest chr to X/Y
for marker in results:
+ browser_marker = dict(
+ chr = str(marker['chr']),
+ rs = marker['name'],
+ ps = marker['Mb']*1000000
+ )
+ if 'p_value' in marker:
+ browser_marker['p_wald'] = marker['p_value']
+ else:
+ if 'lrs_value' in marker and marker['lrs_value'] > 0:
+ browser_marker['p_wald'] = -math.log10(marker['lrs_value']/4.16)
+ elif 'lod_score' in marker and marker['lod_score'] > 0:
+ browser_marker['p_wald'] = -math.log10(marker['lod_score'])
+ else:
+ browser_marker['p_wald'] = 0
+ self.qtl_results_for_browser.append(browser_marker)
if marker['chr'] > 0 or marker['chr'] == "X" or marker['chr'] == "X/Y":
if marker['chr'] > highest_chr or marker['chr'] == "X" or marker['chr'] == "X/Y":
highest_chr = marker['chr']
if ('lod_score' in marker.keys()) or ('lrs_value' in marker.keys()):
self.qtl_results.append(marker)
+ browser_files = write_input_for_browser(self.dataset, self.qtl_results_for_browser)
+
with Bench("Exporting Results"):
export_mapping_results(self.dataset, self.this_trait, self.qtl_results, self.mapping_results_path, self.mapping_scale, self.score_type)
@@ -330,50 +350,23 @@ class RunMapping(object):
self.trimmed_markers = trim_markers_for_table(results)
if self.mapping_method != "gemma":
- self.json_data['chr'] = []
- self.json_data['pos'] = []
- self.json_data['lod.hk'] = []
- self.json_data['markernames'] = []
-
- self.json_data['suggestive'] = self.suggestive
- self.json_data['significant'] = self.significant
-
- #Need to convert the QTL objects that qtl reaper returns into a json serializable dictionary
- for index, qtl in enumerate(self.qtl_results):
- #if index<40:
- # logger.debug("lod score is:", qtl['lod_score'])
- if qtl['chr'] == highest_chr and highest_chr != "X" and highest_chr != "X/Y":
- #logger.debug("changing to X")
- self.json_data['chr'].append("X")
- else:
- self.json_data['chr'].append(str(qtl['chr']))
- self.json_data['pos'].append(qtl['Mb'])
- if 'lrs_value' in qtl.keys():
- self.json_data['lod.hk'].append(str(qtl['lrs_value']))
- else:
- self.json_data['lod.hk'].append(str(qtl['lod_score']))
- self.json_data['markernames'].append(qtl['name'])
-
- #Get chromosome lengths for drawing the interval map plot
- chromosome_mb_lengths = {}
- self.json_data['chrnames'] = []
- for key in self.species.chromosomes.chromosomes.keys():
- self.json_data['chrnames'].append([self.species.chromosomes.chromosomes[key].name, self.species.chromosomes.chromosomes[key].mb_length])
- chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length
-
self.js_data = dict(
- result_score_type = self.score_type,
- json_data = self.json_data,
- this_trait = self.this_trait.name,
- data_set = self.dataset.name,
- maf = self.maf,
- manhattan_plot = self.manhattan_plot,
- mapping_scale = self.mapping_scale,
- chromosomes = chromosome_mb_lengths,
- qtl_results = self.qtl_results,
+ #result_score_type = self.score_type,
+ #this_trait = self.this_trait.name,
+ #data_set = self.dataset.name,
+ #maf = self.maf,
+ #manhattan_plot = self.manhattan_plot,
+ #mapping_scale = self.mapping_scale,
+ #chromosomes = chromosome_mb_lengths,
+ #qtl_results = self.qtl_results,
num_perm = self.num_perm,
perm_results = self.perm_output,
+ browser_files = browser_files
)
+ else:
+ self.js_data = dict(
+ browser_files = browser_files
+ )
def run_rqtl_plink(self):
# os.chdir("") never do this inside a webserver!!
@@ -497,3 +490,17 @@ def trim_markers_for_table(markers):
return trimmed_sorted_markers
else:
return sorted_markers
+
+def write_input_for_browser(this_dataset, markers):
+ file_base = this_dataset.group.name + "_" + ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(6))
+ gwas_filename = file_base + "_GWAS"
+ annot_filename = file_base + "_ANNOT"
+ gwas_path = "{}/gn2/".format(TEMPDIR) + gwas_filename
+ annot_path = "{}/gn2/".format(TEMPDIR) + annot_filename
+
+ with open(gwas_path + ".json", "w") as gwas_file, open(annot_path + ".json", "w") as annot_file:
+ gwas_file.write(json.dumps(markers))
+ annot_file.write(json.dumps([]))
+
+ return [gwas_filename, annot_filename]
+ #return [gwas_filename, annot_filename] \ No newline at end of file
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 444e1f40..e74fef80 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -25,7 +25,7 @@ from db import webqtlDatabaseFunction
from wqflask import user_manager
-from flask import render_template
+from flask import render_template, Flask, g
from utility import formatting
from utility.type_checking import is_float, is_int, is_str, get_float, get_int, get_string
@@ -47,6 +47,7 @@ views.py).
###########################################
self.uc_id = uuid.uuid4()
+ self.go_term = None
logger.debug("uc_id:", self.uc_id) # contains a unique id
logger.debug("kw is:", kw) # dict containing search terms
@@ -157,25 +158,31 @@ views.py).
combined_where_clause = ""
previous_from_clauses = [] #The same table can't be referenced twice in the from clause
for i, a_search in enumerate(self.search_terms):
- the_search = self.get_search_ob(a_search)
- if the_search != None:
- get_from_clause = getattr(the_search, "get_from_clause", None)
- if callable(get_from_clause):
- from_clause = the_search.get_from_clause()
- if from_clause in previous_from_clauses:
- pass
- else:
- previous_from_clauses.append(from_clause)
- combined_from_clause += from_clause
- where_clause = the_search.get_where_clause()
- combined_where_clause += "(" + where_clause + ")"
- if (i+1) < len(self.search_terms):
- if self.and_or == "and":
- combined_where_clause += "AND"
- else:
- combined_where_clause += "OR"
+ if a_search['key'] == "GO":
+ self.go_term = a_search['search_term'][0]
+ gene_list = get_GO_symbols(a_search)
+ self.search_terms += gene_list
+ continue
else:
- self.search_term_exists = False
+ the_search = self.get_search_ob(a_search)
+ if the_search != None:
+ get_from_clause = getattr(the_search, "get_from_clause", None)
+ if callable(get_from_clause):
+ from_clause = the_search.get_from_clause()
+ if from_clause in previous_from_clauses:
+ pass
+ else:
+ previous_from_clauses.append(from_clause)
+ combined_from_clause += from_clause
+ where_clause = the_search.get_where_clause()
+ combined_where_clause += "(" + where_clause + ")"
+ if (i+1) < len(self.search_terms):
+ if self.and_or == "and":
+ combined_where_clause += "AND"
+ else:
+ combined_where_clause += "OR"
+ else:
+ self.search_term_exists = False
if self.search_term_exists:
combined_where_clause = "(" + combined_where_clause + ")"
final_query = the_search.compile_final_query(combined_from_clause, combined_where_clause)
@@ -186,11 +193,19 @@ views.py).
self.search_term_exists = False
else:
for a_search in self.search_terms:
- the_search = self.get_search_ob(a_search)
- if the_search != None:
- self.results.extend(the_search.run())
+ logger.debug("TERMS:", self.search_terms)
+ if a_search['key'] == "GO":
+ self.go_term = a_search['search_term'][0]
+ gene_list = get_GO_symbols(a_search)
+ self.search_terms += gene_list
+ self.search_terms.pop(0)
+ continue
else:
- self.search_term_exists = False
+ the_search = self.get_search_ob(a_search)
+ if the_search != None:
+ self.results.extend(the_search.run())
+ else:
+ self.search_term_exists = False
if self.search_term_exists:
if the_search != None:
@@ -218,9 +233,27 @@ views.py).
else:
return None
+def get_GO_symbols(a_search):
+ query = """SELECT genes
+ FROM GORef
+ WHERE goterm='{0}:{1}'""".format(a_search['key'], a_search['search_term'][0])
+
+ gene_list = g.db.execute(query).fetchone()[0].strip().split()
+
+ new_terms = []
+ for gene in gene_list:
+ this_term = dict(key=None,
+ separator=None,
+ search_term=[gene])
+
+ new_terms.append(this_term)
+
+ return new_terms
+
def insert_newlines(string, every=64):
""" This is because it is seemingly impossible to change the width of the description column, so I'm just manually adding line breaks """
lines = []
for i in xrange(0, len(string), every):
lines.append(string[i:i+every])
return '\n'.join(lines)
+
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index f1f5840f..b0a46b32 100644
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -107,7 +107,7 @@ class ShowTrait(object):
blatsequence += '%3EProbe_' + string.strip(seqt[1]) + '%0A' + string.strip(seqt[0]) + '%0A'
if self.dataset.group.species == "rat":
- self.UCSC_BLAT_URL = webqtlConfig.UCSC_BLAT % ('rat', 'rn3', blatsequence)
+ self.UCSC_BLAT_URL = webqtlConfig.UCSC_BLAT % ('rat', 'rn6', blatsequence)
self.UTHSC_BLAT_URL = ""
elif self.dataset.group.species == "mouse":
self.UCSC_BLAT_URL = webqtlConfig.UCSC_BLAT % ('mouse', 'mm10', blatsequence)
@@ -314,7 +314,7 @@ class ShowTrait(object):
if chr and transcript_start and transcript_end and kgId:
transcript_start = int(transcript_start*1000000) # Convert to bases from megabases
transcript_end = int(transcript_end*1000000)
- self.ucsc_blat_link = webqtlConfig.UCSC_REFSEQ % ('rn3', kgId, chr, transcript_start, transcript_end)
+ self.ucsc_blat_link = webqtlConfig.UCSC_REFSEQ % ('rn6', kgId, chr, transcript_start, transcript_end)
if self.this_trait.geneid and (self.dataset.group.species == "mouse" or self.dataset.group.species == "rat" or self.dataset.group.species == "human"):
self.biogps_link = webqtlConfig.BIOGPS_URL % (self.dataset.group.species, self.this_trait.geneid)
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 48b6da5e..53158885 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -940,6 +940,7 @@ if (js_data.num_values < 256) {
root.bar_layout = {
title: js_data.trait_id,
xaxis: {
+ type: 'category',
titlefont: {
size: 16
},
@@ -947,7 +948,7 @@ if (js_data.num_values < 256) {
ticklen: 4,
tickfont: {
size: 16
- }
+ },
},
yaxis: {
title: js_data.unit_type,
diff --git a/wqflask/wqflask/templates/mapping_results.html b/wqflask/wqflask/templates/mapping_results.html
index 98931166..b8b64761 100644
--- a/wqflask/wqflask/templates/mapping_results.html
+++ b/wqflask/wqflask/templates/mapping_results.html
@@ -3,9 +3,11 @@
{% block css %}
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
<link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
+ <link rel="stylesheet" type="text/css" href="/static/packages/purescript_genome_browser/css/purescript_genetics_browser_v01.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
- <link rel="stylesheet" type="text/css" href="/static/new/css/panelutil.css" />
+
{% endblock %}
{% from "base_macro.html" import header %}
{% block content %}
@@ -29,6 +31,7 @@
{% for sample in samples %}
<input type="hidden" name="value:{{ sample }}" value="{{ vals[loop.index - 1] }}">
{% endfor %}
+ <input type="hidden" name="num_vals" value="{{ n_samples }}">
<input type="hidden" name="maf">
<input type="hidden" name="use_loco" value="{{ use_loco }}">
<input type="hidden" name="selected_chr" value="{{ selectedChr }}">
@@ -153,11 +156,9 @@
<li id="gn1_map_tab">
<a href="#gn1_map" data-toggle="tab" aria-expanded="true">GN1 Map</a>
</li>
- {% if mapping_method != "gemma" and mapping_method != "plink" %}
- <li id="vector_map_tab">
- <a href="#vector_map" data-toggle="tab" {% if mapping_method != "gemma" and mapping_method != "plink" %}aria-expanded="false"{% else %}aria-expanded="true"{% endif %}>Vector Map</a>
+ <li id="browser_tab">
+ <a href="#browser_holder" data-toggle="tab" aria-expanded="true">Genome Browser</a>
</li>
- {% endif %}
</ul>
<div class="tab-content">
<div class="tab-pane active" id="gn1_map">
@@ -177,19 +178,31 @@
{% endif %}
</div>
</div>
- {% if mapping_method != "gemma" and mapping_method != "plink" %}
- <div class="tab-pane {% if mapping_method == "gemma" %}active{% endif %}" id="vector_map">
- <div id="chart_container">
- <div class="qtlcharts" id="topchart"></div>
- </div>
+ <div class="tab-pane" id="browser_holder" style="height: 500px;">
+ <div id="browser">
+ <div id="controls">
+ <button id="scrollLeft" type="button" >
+ <i class="fas fa-arrow-left"></i>
+ </button>
+ <button id="scrollRight" type="button" >
+ <i class="fas fa-arrow-right"></i>
+ </button>
+ <button id="zoomOut" type="button" >
+ <i class="fas fa-search-minus"></i>
+ </button>
+ <button id="zoomIn" type="button" >
+ <i class="fas fa-search-plus"></i>
+ </button>
+ <button id="reset" type="button" >Reset</button>
+ </div>
+ </div>
</div>
- {% endif %}
</div>
</div>
</form>
{% if selectedChr == -1 %}
- <div class="container" style="padding-left: 30px;">
+ <div class="container" style="padding-left: 30px; margin-top: 50px; position: relative;">
<h2>Mapping Statistics</h2>
<br />
<button class="btn btn-default" id="select_all"><span class="glyphicon glyphicon-ok"></span> Select All</button>
@@ -307,20 +320,14 @@
<script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.scientific.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/purescript_genome_browser/js/purescript-genetics-browser_v01.js"></script>
- {% if mapping_method != "gemma" and mapping_method != "plink" %}
<script>
js_data = {{ js_data | safe }}
</script>
- {% endif %}
<script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- {% if mapping_method != "gemma" and mapping_method != "plink" %}
- <script language="javascript" type="text/javascript" src="/static/new/javascript/panelutil.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/chr_lod_chart.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/lod_chart.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/javascript/create_lodchart.js"></script>
- {% endif %}
+ <script language="javascript" type="text/javascript" src="/static/new/javascript/init_genome_browser.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
@@ -332,7 +339,8 @@
{ "type": "natural", "width": "8%" },
{ "type": "natural", "width": "25%" },
{ "type": "natural" },
- { "type": "natural", "width": "8%" },
+ { "type": "natural" },
+ { "type": "natural" },
{ "type": "natural" }{% if 'additive' in marker %},
{ "type": "natural" }{% endif %}{% if 'dominance' in marker and dataset.group.genetic_type != "riset" %},
{ "type": "natural" }{% endif %}
@@ -438,6 +446,12 @@
return $('#marker_regression_form').submit();
}
+ $('#browser_tab').click(function() {
+ $('#gn1_map_options').css("display", "none")
+ })
+ $('#gn1_map_tab').click(function() {
+ $('#gn1_map_options').css("display", "block")
+ })
</script>
{% endblock %}
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index 2dded69f..8dfa37a8 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -15,6 +15,9 @@
<!-- Need to customize text more for other types of searches -->
<p><b>Search Results:</b> We searched <a href="http://genenetwork.org/webqtl/main.py?FormID=sharinginfo&{% if dataset.accession_id != 'None' %}GN_AccessionId={{ dataset.accession_id }}{% else %}InfoPageName={{ dataset.name }}{% endif %}">{{ dataset.fullname }}</a>
to find all records
+ {% if go_term is not none %}
+ with <u>Gene Ontology ID</u> <strong>GO:{{ go_term }}</strong>.
+ {% else %}
{% for word in search_terms %}
{% if word.key|lower == "rif" %}
with <u>GeneRIF</u> containing <strong>{{ word.search_term[0] }}</strong>{% if loop.last %}.{% else %} and {% endif %}
@@ -40,9 +43,13 @@
{% if word.search_term[0] == "*" %} in the dataset.{% else %}{% if loop.first %}that match:<br>{% endif %}<b>"{{ word.search_term[0] }}"</b>{% if loop.last %}{% else %} and {% endif %}{% endif %}
{% endif %}
{% endfor %}
+ {% endif %}
<br>
{{ results|count }} records are shown below.
</p>
+ {% if go_term is not none %}
+ <p><b>The associated genes include:</b><br><br>{% for word in search_terms %}{{ word.search_term[0] }}{% endfor %}</p>
+ {% endif %}
<!--<p>To study a record click on its ID below, and to view the whole description {% if dataset.type == "Publish" %}or list of authors {% endif %} hover over the table cell. Check records below and click Add button to add to selection.</p>-->
diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html
index 7714a1ab..bb0b62fe 100644
--- a/wqflask/wqflask/templates/show_trait_details.html
+++ b/wqflask/wqflask/templates/show_trait_details.html
@@ -1,40 +1,40 @@
<table class="table">
<tr>
- <td width="150px">Species and Group</td>
+ <td width="150px"><b>Species and Group</b></td>
<td>{{ this_trait.dataset.group.species }}, {{ this_trait.dataset.group.name }}</td>
</tr>
{% if this_trait.dataset.type == 'Publish' %}
<tr>
- <td>Phenotype</td>
+ <td><b>Phenotype</b></td>
<td><div style="width:40%;">{{ this_trait.description_fmt }}</div></td>
</tr>
<tr>
- <td>Authors</td>
+ <td><b>Authors</b></td>
<td><div style="width:40%;">{{ this_trait.authors }}</div></td>
</tr>
<tr>
- <td>Title</td>
+ <td><b>Title</b></td>
<td><div style="width:40%;">{{ this_trait.title }}</div></td>
</tr>
<tr>
- <td>Journal</td>
+ <td><b>Journal</b></td>
<td>{{ this_trait.journal }} ({% if this_trait.pubmed_id %}<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ this_trait.pubmed_id }}&dop=Abstract" target="_blank" title="PubMed">{{ this_trait.year }}</a>{% else %}{{ this_trait.year }}{% endif %})</td>
</tr>
{% else %}
<tr>
- <td>Tissue</td>
+ <td><b>Tissue</b></td>
<td>{{ this_trait.dataset.tissue }}</td>
</tr>
{% endif %}
{% if this_trait.dataset.type == 'ProbeSet' %}
{% if this_trait.symbol != None %}
<tr>
- <td>Gene Symbol</td>
+ <td><b>Gene Symbol</b></td>
<td>{{ this_trait.symbol }}</td>
</tr>
{% endif %}
<tr>
- <td>Aliases</td>
+ <td><b>Aliases</b></td>
<td>Wikidata: {{ this_trait.wikidata_alias_fmt|replace(",",";") }}</td>
</tr>
{% if this_trait.alias_fmt != "Not Available" %}
@@ -46,12 +46,12 @@
{% endif %}
{% if this_trait.dataset.type != 'Publish' %}
<tr>
- <td>Location</td>
+ <td><b>Location</b></td>
<td>{{ this_trait.location_fmt }}</td>
</tr>
{% endif %}
<tr>
- <td>Database</td>
+ <td><b>Database</b></td>
<td>
<a href="http://genenetwork.org/webqtl/main.py?FormID=sharinginfo&InfoPageName={{ dataset.name }}" target="_blank">
{{ dataset.fullname }}
@@ -60,7 +60,7 @@
</tr>
{% if this_trait.probe_set_specificity %}
<tr>
- <td>Target Score</td>
+ <td><b>Target Score</b></td>
<td>
<a href="http://genenetwork.org/blatInfo.html" target="_blank" title="Values higher than 2 for the specificity are good">
BLAT Specificity
@@ -75,7 +75,7 @@
{% endif %}
{% if this_trait.pubmed_id or this_trait.geneid or this_trait.omim or this_trait.symbol %}
<tr>
- <td>Resource Links</td>
+ <td><b>Resource Links</b></td>
<td>
{% if pubmed_link %}
<a href="{{ pubmed_link }}" target="_blank" title="PubMed">
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 7b585b03..aa64a910 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -639,7 +639,8 @@ def mapping_results_page():
'mapmethod_rqtl_geno',
'mapmodel_rqtl_geno',
'temp_trait',
- 'reaper_version'
+ 'reaper_version',
+ 'num_vals'
)
start_vars = {}
for key, value in initial_start_vars.iteritems():
@@ -670,8 +671,8 @@ def mapping_results_page():
if template_vars.no_results:
rendered_template = render_template("mapping_error.html")
else:
- if template_vars.mapping_method != "gemma" and template_vars.mapping_method != "plink":
- template_vars.js_data = json.dumps(template_vars.js_data,
+ #if template_vars.mapping_method != "gemma" and template_vars.mapping_method != "plink":
+ template_vars.js_data = json.dumps(template_vars.js_data,
default=json_default_handler,
indent=" ")
@@ -808,6 +809,17 @@ def get_temp_data():
temp_uuid = request.args['key']
return flask.jsonify(temp_data.TempData(temp_uuid).get_all())
+@app.route("/browser_input", methods=('GET',))
+def browser_inputs():
+ """ Returns JSON from tmp directory for the purescript genome browser"""
+
+ filename = request.args['filename']
+
+ with open("{}/gn2/".format(TEMPDIR) + filename + ".json", "r") as the_file:
+ file_contents = json.load(the_file)
+
+ return flask.jsonify(file_contents)
+
##########################################################################
def json_default_handler(obj):