From cf8d133b110d87aed5cb6695711616625a6669fd Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Thu, 18 Jan 2024 05:52:52 +0300 Subject: Create new ProbeSet study. --- qc_app/db/platforms.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 qc_app/db/platforms.py (limited to 'qc_app/db/platforms.py') diff --git a/qc_app/db/platforms.py b/qc_app/db/platforms.py new file mode 100644 index 0000000..cb527a7 --- /dev/null +++ b/qc_app/db/platforms.py @@ -0,0 +1,25 @@ +"""Handle db interactions for platforms.""" +from typing import Optional + +import MySQLdb as mdb +from MySQLdb.cursors import DictCursor + +def platforms_by_species( + conn: mdb.Connection, speciesid: int) -> tuple[dict, ...]: + """Retrieve platforms by the species""" + with conn.cursor(cursorclass=DictCursor) as cursor: + cursor.execute("SELECT * FROM GeneChip WHERE SpeciesId=%s " + "ORDER BY GeneChipName ASC", + (speciesid,)) + return tuple(dict(row) for row in cursor.fetchall()) + +def platform_by_id(conn: mdb.Connection, platformid: int) -> Optional[dict]: + """Retrieve a platform by its ID""" + with conn.cursor(cursorclass=DictCursor) as cursor: + cursor.execute("SELECT * FROM GeneChip WHERE Id=%s", + (platformid,)) + result = cursor.fetchone() + if bool(result): + return dict(result) + + return None -- cgit v1.2.3