diff --git a/cistrans/templates/eQTL.html b/cistrans/templates/eQTL.html
index 567d15e9cb680e169f481731d425d6eeeb582f34..415ba36de8d10c416d254acebe0c523de28a21dd 100644
--- a/cistrans/templates/eQTL.html
+++ b/cistrans/templates/eQTL.html
@@ -27,11 +27,8 @@
                 <li><a href="/AraQTL/?mode=correlation">Correlation</a></li>
                 <li><a href="/AraQTL/?mode=coregulation">Marker</a></li>
                 <form class="navbar-form navbar-left" action="/AraQTL/cistrans/" id="top_form" method="get">
-                    <input title="LOD score threshold (numeric, one decimal)" id="thld"
-                           pattern="[0-9]+([.][0-9])?"
-                           name="thld" type="text"
-                           size="3" class="form-control"
-                           value="{% if thld %}{{ thld|floatformat:-1}}{% else %}{{ lodthld|floatformat:-1 }}{% endif %}">
+                    <input title="Type your query here" id="query" name="query" type="text" class="form-control"
+                           placeholder="Search...">
                     <select title="Select an experiment" class="form-control" id="experiment_selector" name="experiment_name">
                         {% for experiment in experiments %}
                         <option value="{{ experiment.experiment_name }}" {% if experiment.experiment_name == experiment_name %} selected {% endif %}>
@@ -39,6 +36,11 @@
                         </option>
                         {% endfor %}
                     </select>
+                    LOD:<input title="LOD score threshold (numeric, one decimal)" id="thld"
+                           pattern="[0-9]+([.][0-9])?"
+                           name="thld" type="text"
+                           size="3" class="form-control"
+                           value="{% if thld %}{{ thld|floatformat:-1}}{% else %}{{ lodthld|floatformat:-1 }}{% endif %}">
                 </form>
                 <li class="dropdown">
                     <a class="dropdown-toggle" data-toggle="dropdown" href="#">Help
@@ -257,7 +259,7 @@
 		//############################### add Y-axis name upper left ##################################
 	    xloc = left[0] - pad.left * 0.65; // xloc and yloc together locate the title lable in the middle of y axis.
 	    yloc = (top[0] + bottom[0]) / 2;
-	    axislabels.append("text").text("probe position (bp)").attr("x", xloc).attr("y", yloc).attr("transform", "rotate(270," + xloc + "," + yloc + ")").style("text-anchor", "middle").attr("fill", titlecolor);
+	    axislabels.append("text").text("Gene position (bp)").attr("x", xloc).attr("y", yloc).attr("transform", "rotate(270," + xloc + "," + yloc + ")").style("text-anchor", "middle").attr("fill", titlecolor);
 		//############################### add Y-axis name lower #######################################
 	    xloc = left[1] - pad.left * 0.65;
 	    yloc = (top[1] + bottom[1]) / 2;
@@ -533,10 +535,39 @@
        });
 
 
-         $('input#thld').keypress(function(e) {
+        $('input#thld').keypress(function(e) {
             if(e.which == 13) {
                 $('form#top_form').submit();
             }
         });
+        selectedProbe = "";
+        attrR = 0
+        attrFill = "";
+        attrStroke = "";
+        attrStroke_width = 0;
+        attrOpacity = 0;
+
+        $('input#query').keypress(function(e) {
+            if(e.which == 13) {
+                spot = $('input#query').val()
+                probe = "circle.probe_" + spot;
+                if (selectedProbe.length > 0) {
+                    d3.selectAll(selectedProbe).attr("r", attrR).attr("fill", attrFill).attr("stroke", attrStroke).attr("stroke-width", attrStroke_width).attr("opacity", attrOpacity);
+                    selectedProbe = "";
+                }
+
+                if(!d3.select(probe).empty()) {
+                    selectedProbe = probe;
+                    d3Probe = d3.selectAll(probe);
+                    attrR = d3Probe.attr("r");
+                    attrFill = d3Probe.attr("fill");
+                    attrStroke = d3Probe.attr("stroke");
+                    attrStroke_width = d3Probe.attr("stroke-width");
+                    attrOpacity = d3Probe.attr("opacity");
+                    d3Probe.attr("r", 5).attr("fill", "hotpink").attr("stroke", "darkslateblue").attr("stroke-width", 1).attr("opacity", 1);
+                    d3.json("../media/data/{{ experiment_name }}/probe/" + spot + ".json", draw_plot);
+                }
+            }
+        });
 </script>
 {% endblock %}
diff --git a/cistrans/views.py b/cistrans/views.py
index f80bfabbc96cfca906d7ca7f3d2a8caec5550307..f8cecb2c00462188d8b47f4eb0703c4561b7cbb5 100644
--- a/cistrans/views.py
+++ b/cistrans/views.py
@@ -5,7 +5,7 @@ from django.shortcuts import render, render_to_response
 from django.conf import settings
 
 from main.models import ArraySpot, Experiment, Marker, Chromosome, GeneInfo
-from main.parser import outputJSON
+#from main.parser import outputJSON
 
 
 # Create your views here.
@@ -184,6 +184,9 @@ def outputJson(experiment_name, qtl_file, thld, output):
             for line in lines:
                 j += 1
                 col = line.rstrip().split('\t')
+                #check if the transcript/gene id exists in the database
+                if col[0].upper() not in output_dic['spot']:
+                    continue
                 # assign LOD value to 0 if null
                 lod_list = [float(lod) if lod != '' else 0.0 for lod in col[1:]]
                 k = 0  # splice index
@@ -279,4 +282,4 @@ def outputJson(experiment_name, qtl_file, thld, output):
 
     with open(out_path, 'w') as fo:
         json.dump(output_dic, fo, indent=4)
-    print i, j
+