about summary refs log tree commit diff
path: root/wqflask/dbFunction/webqtlDatabaseFunction.py
diff options
context:
space:
mode:
authorPjotr Prins2016-06-19 16:41:01 +0000
committerPjotr Prins2016-06-19 16:41:01 +0000
commit2bae8718f4d4ec185586d12ae007f79a8dd89136 (patch)
tree28d608fdc2c0784393ac28187bc0f4d50998e25c /wqflask/dbFunction/webqtlDatabaseFunction.py
parentaae827674cdbe46c7f1ce5d2246bf485a24dbbb3 (diff)
downloadgenenetwork2-2bae8718f4d4ec185586d12ae007f79a8dd89136.tar.gz
gn_server: Species info can be fetched from gn_server
Diffstat (limited to 'wqflask/dbFunction/webqtlDatabaseFunction.py')
-rw-r--r--wqflask/dbFunction/webqtlDatabaseFunction.py38
1 files changed, 27 insertions, 11 deletions
diff --git a/wqflask/dbFunction/webqtlDatabaseFunction.py b/wqflask/dbFunction/webqtlDatabaseFunction.py
index 5b968d7e..d7e160d0 100644
--- a/wqflask/dbFunction/webqtlDatabaseFunction.py
+++ b/wqflask/dbFunction/webqtlDatabaseFunction.py
@@ -25,8 +25,11 @@ from flask import Flask, g
 
 import MySQLdb
 import string
+import urllib2
+import json
 from base import webqtlConfig
 from utility.tools import USE_GN_SERVER
+from utility.benchmark import Bench
 
 from utility.logger import getLogger
 logger = getLogger(__name__ )
@@ -44,24 +47,37 @@ def getCursor():
     except:
         return None
 
-def fetchone(cursor,query):
-    result = g.db.execute("""select Species.Name from Species, InbredSet where InbredSet.Name = %s and InbredSet.SpeciesId = Species.Id""", (group)).fetchone()[0]
-    return cursor.execute(query)
+def fetchone(callername,query):
+    """Return tuple containing one row by calling SQL directly
+
+    """
+    with Bench("SQL took"):
+        def helper(query):
+            res = g.db.execute(query)
+            return res.fetchone()
+        return logger.sql(callername, query, helper)
+
+def gn_server(path):
+    """Return JSON record by calling GN_SERVER
+
+    """
+    with Bench("GN_SERVER took"):
+        res = urllib2.urlopen("http://localhost:8880/"+path)
+        rest = res.read()
+        res2 = json.loads(rest)
+        logger.info(res2)
+        return res2
 
 def retrieve_species(group):
     """Get the species of a group (e.g. returns string "mouse" on "BXD"
 
     """
     if USE_GN_SERVER:
-        raise Exception("NYI")
+        result = gn_server("/cross/"+group)
+        return result["species"]
     else:
-        res = logger.sql(stack()[0][3],"select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % (group), g.db.execute)
-        result = res.fetchone()[0]
-
-        # result = g.db.execute("""select Species.Name from Species, InbredSet where InbredSet.Name = %s and InbredSet.SpeciesId = Species.Id""", (group)).fetchone()[0]
-
-    logger.info(result,type(result))
-    return result
+        result = fetchone(stack()[0][3],"select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % (group))
+        return result[0]
 
 ###########################################################################
 #input: cursor, groupName (string)