From a460bab0b127c4c992e36a26e3882d863909df0a Mon Sep 17 00:00:00 2001 From: BonfaceKilz Date: Sat, 8 May 2021 16:02:29 +0300 Subject: db: species: Fetch chromosomes using a group or species name * gn3/db/species.py (get_chromosome): New function. --- gn3/db/species.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 gn3/db/species.py diff --git a/gn3/db/species.py b/gn3/db/species.py new file mode 100644 index 0000000..91b78e2 --- /dev/null +++ b/gn3/db/species.py @@ -0,0 +1,24 @@ +"""This module contains db functions that get data related to species or +groups. Particularly useful when generating the menu + +""" +from typing import Any, Optional, Tuple +from MySQLdb import escape_string + + +def get_chromosome(name: str, is_species: bool, conn: Any) -> Optional[Tuple]: + """Given either a group or a species Name, return all the species""" + _sql = ("SELECT Chr_Length.Name, Chr_Length.OrderId, " + "Length FROM Chr_Length, Species WHERE " + "Chr_Length.SpeciesId = Species.SpeciesId AND " + "Species.Name = " + f"'{escape_string(name).decode('UTF-8')}' ORDER BY OrderId") + if not is_species: + _sql = ("SELECT Chr_Length.Name, Chr_Length.OrderId, " + "Length FROM Chr_Length, InbredSet WHERE " + "Chr_Length.SpeciesId = InbredSet.SpeciesId AND " + "InbredSet.Name = " + f"'{escape_string(name).decode('UTF-8')}' ORDER BY OrderId") + with conn.cursor() as cursor: + cursor.execute(_sql) + return cursor.fetchall() -- cgit v1.2.3