about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xserver.py82
-rw-r--r--templates/tableview.html106
-rw-r--r--templates/tableview0.html17
3 files changed, 123 insertions, 82 deletions
diff --git a/server.py b/server.py
index 9003515..90e783e 100755
--- a/server.py
+++ b/server.py
@@ -370,8 +370,16 @@ def search():
 def tableview():
     with open("json_nodes.txt") as jsonfile:
         jnodes = json.load(jsonfile)
-    with open("json_edges.txt") as edgesjsonfile:
-        jedges = json.load(edgesjsonfile)
+    jedges =''
+    file_edges = open('json_edges.txt', 'r')
+    for line in file_edges.readlines():
+        if ':' not in line:
+            nodata_temp = 1
+        else: 
+            nodata_temp = 0
+            with open("json_edges.txt") as edgesjsonfile:
+                jedges = json.load(edgesjsonfile)
+            break
     genename=session['query'] 
     if len(genename)>3:
         genename = genename[0:3]
@@ -384,14 +392,22 @@ def tableview():
     gene_name = gene_name+added
     num_gene = gene_name.count(',')+1
     message3="<b> Notes: </b><li> Click on the abstract count to read sentences linking the keyword and the gene. <li> Click on a gene to search its relations with top 200 addiction genes. <li> Click on a keyword to see the terms included in the search. <li>View the results in <a href='cytoscape'><b> a graph.</b></a>"
-    return render_template('tableview.html', num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message3=message3)
+    return render_template('tableview.html', nodata_temp=nodata_temp, num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message3=message3)
 
 @app.route("/tableview0")
 def tableview0():
     with open("json_nodes.txt") as jsonfile:
         jnodes = json.load(jsonfile)
-    with open("json_edges.txt") as edgesjsonfile:
-        jedges = json.load(edgesjsonfile)
+    jedges =''
+    file_edges = open('json_edges.txt', 'r')
+    for line in file_edges.readlines():
+        if ':' not in line:
+            nodata_temp = 1
+        else: 
+            nodata_temp = 0
+            with open("json_edges.txt") as edgesjsonfile:
+                jedges = json.load(edgesjsonfile)
+            break
     genename=session['query'] 
     if len(genename)>3:
         genename = genename[0:3]
@@ -403,8 +419,8 @@ def tableview0():
     gene_name=gene_name.replace("'","")
     gene_name = gene_name+added
     num_gene = gene_name.count(',')+1
-    message4="<b> Notes: </b><li> These are the words that have <b>zero</b> abstract counts. <li>View all the results in <a href='cytoscape'><b> a graph.</b></a>"
-    return render_template('tableview0.html', num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message4=message4)
+    message4="<b> Notes: </b><li> These are the keywords that have <b>zero</b> abstract counts. <li>View all the results in <a href='cytoscape'><b> a graph.</b></a>"
+    return render_template('tableview0.html',nodata_temp=nodata_temp, num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message4=message4)
 
 @app.route("/userarchive")
 def userarchive():
@@ -452,6 +468,7 @@ def date():
     if ('email' in session):
         time_extension = str(select_date)
         time_extension = time_extension.split('_0_')[0]
+        gene_name1 = str(select_date).split('_0_')[1]
         time_extension = time_extension.replace(':', '_')
         time_extension = time_extension.replace('-', '_')
         session['path'] = tf_path+"/"+str(session['email'])+"/"+select_date+"/"+time_extension
@@ -469,24 +486,41 @@ def date():
                 temp_file.write(line) 
     with open("json_nodes.txt", "r") as jsonfile:
         jnodes = json.load(jsonfile)
-    with open("json_edges.txt", "r") as edgesjsonfile:
-        jedges = json.load(edgesjsonfile)
+
+    jedges =''
+    file_edges = open('json_edges.txt', 'r')
+    for line in file_edges.readlines():
+        if ':' not in line:
+            nodata_temp = 1
+        else: 
+            nodata_temp = 0
+            with open("json_edges.txt") as edgesjsonfile:
+                jedges = json.load(edgesjsonfile)
+            break
     gene_list=[]
-    for p in jedges['data']:
-        if p['source'] not in gene_list:
-            gene_list.append(p['source'])
-    if len(gene_list)>3:
-        gene_list = gene_list[0:3]
-        added = ",..."
-    else:
-        added = ""
-    gene_name = str(gene_list)[1:]
-    gene_name=gene_name[:-1]
-    gene_name=gene_name.replace("'","")
-    gene_name = gene_name+added
-    num_gene = gene_name.count(',')+1
+    if nodata_temp == 0:
+        for p in jedges['data']:
+            if p['source'] not in gene_list:
+                gene_list.append(p['source'])
+        if len(gene_list)>3:
+            gene_list = gene_list[0:3]
+            added = ",..."
+        else:
+            added = ""
+        gene_name = str(gene_list)[1:]
+        gene_name=gene_name[:-1]
+        gene_name=gene_name.replace("'","")
+        gene_name = gene_name+added
+        num_gene = gene_name.count(',')+1
+    else: 
+        gene_name1 = gene_name1.replace("_", ", ")
+        gene_name = gene_name1
+        num_gene = gene_name1.count(',')+1
+        for i in range(0,num_gene):
+            gene_list.append(gene_name1.split(',')[i])
+    session['query'] = gene_list
     message3="<b> Notes: </b><li>Click on the keywords to see the indicated number of abstracts <li> Click on a gene to search its relations with top 200 addiction genes<li>Click on a keyword to see the terms included in the search<li>Hover your pointer over a node will hide other links <li>Nodes can be moved around for better visibility, reload the page will restore the original layout<li> View the results in <a href='cytoscape'><b>a graph.</b></a>"
-    return render_template('tableview.html', title='', date=select_date, num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message3=message3)
+    return render_template('tableview.html', title='',nodata_temp=nodata_temp, date=select_date, num_gene=num_gene,session_path = session['path'], jedges=jedges, jnodes=jnodes,gene_name=gene_name, message3=message3)
 
 @app.route('/cytoscape')
 def cytoscape():
@@ -515,7 +549,7 @@ def sentences():
                out3+= "<li> "+ text + " <a href=\"https://www.ncbi.nlm.nih.gov/pubmed/?term=" + pmid +"\" target=_new>PMID:"+pmid+"<br></a>"
                pmid_temp = pmid
                pmid_list.append(pmid+cat0)
-    out1="<h3>"+gene0 + " and " + cat0  + "</h3><hr>\n"
+    out1="<h3>"+gene0 + " and " + cat0  + "</h3>\n"
     if len(pmid_list)>1:
         out2 = str(len(pmid_list)) + ' sentences in ' + str(len(pmid_list)) + ' studies' "<hr>\n"
     else:
diff --git a/templates/tableview.html b/templates/tableview.html
index d60f435..15b39ca 100644
--- a/templates/tableview.html
+++ b/templates/tableview.html
@@ -4,12 +4,18 @@
 <script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.6.0/cytoscape.min.js" integrity="sha256-uZV2wRlscgr52q3Wb3Oew0rKCPsM3g4aBTv46sF4qzg=" crossorigin="anonymous"></script>
 <head>
     {%if num_gene==1%}
-        <h2> <b>GENE(S): {{gene_name}}</b> </h2>
+        <h2> <b>GENE: {{gene_name}}</b> </h2>
+        {%if nodata_temp==1%}
+            <b>No result was found.</b>
+        {%endif%}
     {%else%}
     <h2> <b>GENES: {{gene_name}}</b> </h2>
+        {%if nodata_temp==1%}
+            <b>No result was found.</b>
+        {%endif%}
     {%endif%}
 </head>
-
+{%if nodata_temp!=1%}
 <style>
     * {
       box-sizing: border-box;
@@ -53,54 +59,54 @@
         {{ message3 |safe}} 
     </div>
 </div>
-
-<script>{
-    {}   
-    var table = document.getElementById("myTable");
-    var header = table.createTHead();
-    var row = header.insertRow(0);    
-    var cell = row.insertCell(0);
-    cell.innerHTML = "<b>Gene</b>";
-    var cell = row.insertCell(1);
-    cell.innerHTML = "<b>Abstract Count</b>";
-    var cell = row.insertCell(2);
-    cell.innerHTML = "<b>Keyword</b>";
-    var cell = row.insertCell(3);
-    cell.innerHTML = "<b>Category</b>";
-    
-    {%for p in jedges['data']%}
-        var x=document.getElementById('myTable').insertRow(1);
-        source = '{{p['source']}}';
-        target = '{{p['target']}}';
-        var y= x.insertCell(0);        
-        {%for p1 in jnodes['data']%}
-            {%if p['target'] == p1['id']%}
-                color='{{p1['nodecolor']}}'
-                type='{{p1['nodetype']}}'
+    <script>{
+        {}   
+        var table = document.getElementById("myTable");
+        var header = table.createTHead();
+        var row = header.insertRow(0);    
+        var cell = row.insertCell(0);
+        cell.innerHTML = "<b>Gene</b>";
+        var cell = row.insertCell(1);
+        cell.innerHTML = "<b>Abstract Count</b>";
+        var cell = row.insertCell(2);
+        cell.innerHTML = "<b>Keyword</b>";
+        var cell = row.insertCell(3);
+        cell.innerHTML = "<b>Category</b>";
+        
+        {%for p in jedges['data']%}
+            var x=document.getElementById('myTable').insertRow(1);
+            source = '{{p['source']}}';
+            target = '{{p['target']}}';
+            var y= x.insertCell(0);        
+            {%for p1 in jnodes['data']%}
+                {%if p['target'] == p1['id']%}
+                    color='{{p1['nodecolor']}}'
+                    type='{{p1['nodetype']}}'
+                {%endif%}
+            {%endfor%}
+            {%if 'GWAS' in  p['target']%}
+                color="#AEB6BF"
+                type='GWAS'
+                key_gwas = target.replace("_GWAS","")
+                    this_url1 = 'sentences?edgeID=gwas_addiction.tab|'+source+'|'+target;
+                    this_url2 = 'https://www.ebi.ac.uk/gwas/search?query='+key_gwas;
+                {%else%}
+                    this_url1 = 'sentences?edgeID='+'{{session_path}}'+'_snt|'+source+'|'+target;
+                    this_url2 = 'shownode?nodetype='+type+'&node='+target;
             {%endif%}
-        {%endfor%}
-        {%if 'GWAS' in  p['target']%}
-            color="#AEB6BF"
-            type='GWAS'
-            key_gwas = target.replace("_GWAS","")
-                this_url1 = 'sentences?edgeID=gwas_addiction.tab|'+source+'|'+target;
-                this_url2 = 'https://www.ebi.ac.uk/gwas/search?query='+key_gwas;
-            {%else%}
-                this_url1 = 'sentences?edgeID='+'{{session_path}}'+'_snt|'+source+'|'+target;
-                this_url2 = 'shownode?nodetype='+type+'&node='+target;
-        {%endif%}
-        genegene_url = '/startGeneGene?forTopGene='+source;
-        y.innerHTML="<a href='"+genegene_url+"'>{{p['source']}}</a>";
-        y= x.insertCell(1);
-        y.innerHTML="<center> <a href='"+this_url1+"'> {{p['sentCnt']}}</a> </center>"; 
-        y= x.insertCell(2);
-        y.innerHTML="<a href='"+this_url2+"'>{{p['target']}}</a>";
-        y= x.insertCell(3);
-        y.innerHTML=type; 
-    {% endfor %}
-}
-</script>
-
-<a href="/tableview0">Check</a> for searches that has <b>zero</b> abstract counts.
+            genegene_url = '/startGeneGene?forTopGene='+source;
+            y.innerHTML="<a href='"+genegene_url+"'>{{p['source']}}</a>";
+            y= x.insertCell(1);
+            y.innerHTML="<center> <a href='"+this_url1+"'> {{p['sentCnt']}}</a> </center>"; 
+            y= x.insertCell(2);
+            y.innerHTML="<a href='"+this_url2+"'>{{p['target']}}</a>";
+            y= x.insertCell(3);
+            y.innerHTML=type; 
+        {% endfor %}
+    }
+    </script>
+{%endif%}
+<br>
+<a href="/tableview0">Review</a> searches that have <b>zero</b> abstract counts.
 
 {%endblock%}
diff --git a/templates/tableview0.html b/templates/tableview0.html
index c0299ce..a81f412 100644
--- a/templates/tableview0.html
+++ b/templates/tableview0.html
@@ -2,14 +2,14 @@
 {% block content %}
 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.6.0/cytoscape.min.js" integrity="sha256-uZV2wRlscgr52q3Wb3Oew0rKCPsM3g4aBTv46sF4qzg=" crossorigin="anonymous"></script>
+
 <head>
     {%if num_gene==1%}
-        <h2> <b>GENE(S): {{gene_name}}</b> </h2>
+        <h2> <b>GENE:  {{gene_name}}</b> </h2>
     {%else%}
     <h2> <b>GENES: {{gene_name}}</b> </h2>
     {%endif%}
 </head>
-
 <style>
     * {
       box-sizing: border-box;
@@ -70,12 +70,13 @@
         var x=document.getElementById('myTable').insertRow(1);
         
         control=0;
-        {%for p1 in jedges['data']%}
-            {%if p1['target'] == p['id']%}
-                control=1
-            {%endif%}
-        {%endfor%}
-
+        {%if nodata_temp!=1%}
+          {%for p1 in jedges['data']%}
+              {%if p1['target'] == p['id']%}
+                  control=1
+              {%endif%}
+          {%endfor%}
+        {%endif%}
         if(control !=1){
             y= x.insertCell(0);
             y.innerHTML='{{p['id']}}';