about summary refs log tree commit diff
path: root/gn3/db
diff options
context:
space:
mode:
authorBonfaceKilz2021-04-13 08:18:19 +0300
committerBonfaceKilz2021-05-08 19:19:47 +0300
commitc6f9aca5917d9838680349dc91db215c9a38ecda (patch)
treec4761d442a665b738585dd2418a5e5a3bdf4bf6e /gn3/db
parentbaf2b6daa2c9d8646a68465269d1a64646e0e162 (diff)
downloadgenenetwork3-c6f9aca5917d9838680349dc91db215c9a38ecda.tar.gz
Add method to fetch riset name and id
Diffstat (limited to 'gn3/db')
-rw-r--r--gn3/db/__init__.py0
-rw-r--r--gn3/db/traits.py31
2 files changed, 31 insertions, 0 deletions
diff --git a/gn3/db/__init__.py b/gn3/db/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gn3/db/__init__.py
diff --git a/gn3/db/traits.py b/gn3/db/traits.py
new file mode 100644
index 0000000..b0d1831
--- /dev/null
+++ b/gn3/db/traits.py
@@ -0,0 +1,31 @@
+"""This contains all the necessary functions that are required to add traits
+to the published database"""
+from collections import namedtuple
+from typing import Any
+
+
+riset = namedtuple('riset', ['name', 'id'])
+
+
+def get_riset(data_type: str, name: str, conn: Any):
+    query, _name, _id = None, None, None
+    if data_type == "Publish":
+        query = ("SELECT InbredSet.Name, InbredSet.Id FROM InbredSet, "
+                 "PublishFreeze WHERE PublishFreeze.InbredSetId = "
+                 "InbredSet.Id AND PublishFreeze.Name = '%s'" % name)
+    elif data_type == "Geno":
+        query = ("SELECT InbredSet.Name, InbredSet.Id FROM InbredSet, "
+                 "GenoFreeze WHERE GenoFreeze.InbredSetId = "
+                 "InbredSet.Id AND GenoFreeze.Name = '%s'" % name)
+    elif data_type == "ProbeSet":
+        query = ("SELECT InbredSet.Name, InbredSet.Id FROM "
+                 "InbredSet, ProbeSetFreeze, ProbeFreeze WHERE "
+                 "ProbeFreeze.InbredSetId = InbredSet.Id AND "
+                 "ProbeFreeze.Id = ProbeSetFreeze.ProbeFreezeId AND "
+                 "ProbeSetFreeze.Name = '%s'" % name)
+    if query:
+        with conn.cursor() as cursor:
+            _name, _id = cursor.fetchone()
+            if _name == "BXD300":
+                _name = "BXD"
+    return riset(_name, _id)