aboutsummaryrefslogtreecommitdiff
path: root/wqflask/base/data_set/datasetgroup.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-06-15 14:40:37 +0300
committerFrederick Muriuki Muriithi2023-06-20 13:36:50 +0300
commitaa4d213692cb27a903fe1593e2dd3387e638b350 (patch)
treef41cfdf7e369cae767af5534cfc02c9998b9e4a2 /wqflask/base/data_set/datasetgroup.py
parenta56d857dc1f6dbc25819a4af116139a2f3e14a68 (diff)
downloadgenenetwork2-aa4d213692cb27a903fe1593e2dd3387e638b350.tar.gz
Configs: Introduce Blueprints. Refactor configs in webqtlConfig.
* Introduce flask Blueprints to help with decoupling the various modules from the `wqflask/__init__.py` module * Refactor settings: Create a function `base.webqtlConfig.init_app(...)` to handle setting up the configurations on the app correctly. Call this function at app creation time. * Move configuration utility functions from `utility.tools` module to `utility.configuration` module. * Use the `get_setting(...)` function to retrieve configuration settings from the application.
Diffstat (limited to 'wqflask/base/data_set/datasetgroup.py')
-rw-r--r--wqflask/base/data_set/datasetgroup.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/wqflask/base/data_set/datasetgroup.py b/wqflask/base/data_set/datasetgroup.py
index 72577f38..90c59a1e 100644
--- a/wqflask/base/data_set/datasetgroup.py
+++ b/wqflask/base/data_set/datasetgroup.py
@@ -3,6 +3,7 @@
import os
import json
+from flask import current_app as app
from base import webqtlConfig
from .markers import Markers, HumanMarkers
@@ -11,11 +12,11 @@ from utility import gen_geno_ob
from db import webqtlDatabaseFunction
from maintenance import get_group_samplelists
from wqflask.database import database_connection
-from utility.tools import (
+from utility.configuration import (
locate,
- USE_REDIS,
flat_files,
flat_file_exists,
+ get_setting_bool,
locate_ignore_error)
class DatasetGroup:
@@ -87,8 +88,8 @@ class DatasetGroup:
def get_markers(self):
def check_plink_gemma():
- if flat_file_exists("mapping"):
- MAPPING_PATH = flat_files("mapping") + "/"
+ if flat_file_exists(app, "mapping"):
+ MAPPING_PATH = flat_files(app, "mapping") + "/"
if os.path.isfile(MAPPING_PATH + self.name + ".bed"):
return True
return False
@@ -117,6 +118,7 @@ class DatasetGroup:
def get_study_samplelists(self):
study_sample_file = locate_ignore_error(
+ app,
self.name + ".json", 'study_sample_lists')
try:
f = open(study_sample_file)
@@ -137,13 +139,15 @@ class DatasetGroup:
def get_samplelist(self, redis_conn):
result = None
key = "samplelist:v3:" + self.name
+ USE_REDIS = get_setting_bool(app, "USE_REDIS")
if USE_REDIS:
result = redis_conn.get(key)
if result is not None:
self.samplelist = json.loads(result)
else:
- genotype_fn = locate_ignore_error(self.name + ".geno", 'genotype')
+ genotype_fn = locate_ignore_error(
+ app, self.name + ".geno", 'genotype')
if genotype_fn:
self.samplelist = get_group_samplelists.get_samplelist(
"geno", genotype_fn)
@@ -168,12 +172,12 @@ class DatasetGroup:
# reaper barfs on unicode filenames, so here we ensure it's a string
if self.genofile:
if "RData" in self.genofile: # ZS: This is a temporary fix; I need to change the way the JSON files that point to multiple genotype files are structured to point to other file types like RData
- full_filename = str(
- locate(self.genofile.split(".")[0] + ".geno", 'genotype'))
+ full_filename = str(locate(
+ app, self.genofile.split(".")[0] + ".geno", 'genotype'))
else:
- full_filename = str(locate(self.genofile, 'genotype'))
+ full_filename = str(locate(app, self.genofile, 'genotype'))
else:
- full_filename = str(locate(self.name + '.geno', 'genotype'))
+ full_filename = str(locate(app, self.name + '.geno', 'genotype'))
genotype_1 = gen_geno_ob.genotype(full_filename)
if genotype_1.type == "group" and self.parlist: