diff options
author | Arun Isaac | 2023-12-29 18:55:37 +0000 |
---|---|---|
committer | Arun Isaac | 2023-12-29 19:01:46 +0000 |
commit | 204a308be0f741726b9a620d88fbc22b22124c81 (patch) | |
tree | b3cf66906674020b530c844c2bb4982c8a0e2d39 /gn2/utility/helper_functions.py | |
parent | 83062c75442160427b50420161bfcae2c5c34c84 (diff) | |
download | genenetwork2-204a308be0f741726b9a620d88fbc22b22124c81.tar.gz |
Namespace all modules under gn2.
We move all modules under a gn2 directory. This is important for
"correct" packaging and deployment as a Guix service.
Diffstat (limited to 'gn2/utility/helper_functions.py')
-rw-r--r-- | gn2/utility/helper_functions.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gn2/utility/helper_functions.py b/gn2/utility/helper_functions.py new file mode 100644 index 00000000..fc101959 --- /dev/null +++ b/gn2/utility/helper_functions.py @@ -0,0 +1,69 @@ +from gn2.base import data_set +from gn2.base.trait import create_trait +from gn2.base.species import TheSpecies + +from gn2.utility import hmac +from gn2.utility.tools import get_setting + +from gn2.wqflask.database import database_connection + + +def get_species_dataset_trait(self, start_vars): + if "temp_trait" in list(start_vars.keys()): + if start_vars['temp_trait'] == "True": + self.dataset = data_set.create_dataset( + dataset_name="Temp", + dataset_type="Temp", + group_name=start_vars['group']) + else: + self.dataset = data_set.create_dataset(start_vars['dataset']) + else: + self.dataset = data_set.create_dataset(start_vars['dataset']) + self.species = TheSpecies(dataset=self.dataset) + self.this_trait = create_trait(dataset=self.dataset, + name=start_vars['trait_id'], + cellid=None, + get_qtl_info=True) + +def get_trait_db_obs(self, trait_db_list): + if isinstance(trait_db_list, str): + trait_db_list = trait_db_list.split(",") + + self.trait_list = [] + for trait in trait_db_list: + data, _separator, hmac_string = trait.rpartition(':') + data = data.strip() + assert hmac_string == hmac.hmac_creation(data), "Data tampering?" + trait_name, dataset_name = data.split(":")[:2] + if dataset_name == "Temp": + dataset_ob = data_set.create_dataset( + dataset_name=dataset_name, dataset_type="Temp", + group_name=trait_name.split("_")[2]) + else: + dataset_ob = data_set.create_dataset(dataset_name) + trait_ob = create_trait(dataset=dataset_ob, + name=trait_name, + cellid=None) + if trait_ob: + self.trait_list.append((trait_ob, dataset_ob)) + + +def get_species_groups(): + """Group each species into a group""" + _menu = {} + species, group_name = None, None + with database_connection(get_setting("SQL_URI")) as conn, conn.cursor() as cursor: + cursor.execute( + "SELECT s.MenuName, i.InbredSetName FROM InbredSet i " + "INNER JOIN Species s ON s.SpeciesId = i.SpeciesId " + "ORDER BY i.SpeciesId ASC, i.Name ASC" + ) + for species, group_name in cursor.fetchall(): + if species in _menu: + if _menu.get(species): + _menu = _menu[species].append(group_name) + else: + _menu[species] = [group_name] + return [{"species": key, + "groups": value} for key, value in + list(_menu.items())] |