about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Kabui2022-01-19 15:52:59 +0300
committerBonfaceKilz2022-02-09 08:49:56 +0300
commit36abd8a04b84aa38a9c713054a0abce69848cf3a (patch)
treed1f65dacf02f298daebefba88a48f0ff0df0d452
parentbaeef69552bbe522087f5c2f0d0b1bd1402f8761 (diff)
downloadgenenetwork2-36abd8a04b84aa38a9c713054a0abce69848cf3a.tar.gz
process significant table results
-rw-r--r--wqflask/wqflask/ctl/gn3_ctl_analysis.py79
1 files changed, 44 insertions, 35 deletions
diff --git a/wqflask/wqflask/ctl/gn3_ctl_analysis.py b/wqflask/wqflask/ctl/gn3_ctl_analysis.py
index 113764a7..ba7d4971 100644
--- a/wqflask/wqflask/ctl/gn3_ctl_analysis.py
+++ b/wqflask/wqflask/ctl/gn3_ctl_analysis.py
@@ -1,4 +1,5 @@
 import requests
+import itertools
 
 from utility import genofile_parser
 from utility.tools import GN3_LOCAL_URL
@@ -6,37 +7,53 @@ from utility.tools import locate
 
 from base.trait import create_trait
 from base.trait import retrieve_sample_data
+from base import data_set
 
 
-def parse_geno_data(dataset_group_name) ->dict:
-	"""function to parse geno file data"""
-	genofile_location = locate(dataset.group.name + ".geno", "genotype")
-	parser = genofile_parser.ConvertGenoFile(genofilelocation)
 
-	parser.process_csv()
+def process_significance_data(significant_data):
+    """function to process significance the data for
+    datatables"""
 
-	# get marker and marker names
+    col_names = ["trait","marker","trait_2","LOD","dCor"]
 
-	return parser
+    data_set_rows = [[] for _ in range(len(significant_data["trait"]))]
+
+
+
+
+    return {
+    "col_names":[],
+    ""
+    }
+
+def parse_geno_data(dataset_group_name) -> dict:
+    """function to parse geno file data"""
+    genofile_location = locate(dataset_group_name + ".geno", "genotype")
+    parser = genofile_parser.ConvertGenoFile(genofile_location)
+
+    parser.process_csv()
 
     markers = []
+
     markernames = []
+
     for marker in parser.markers:
         markernames.append(marker["name"])
         markers.append(marker["genotypes"])
 
     return {
 
-    "genotypes":list(itertools.chain(*markers)),
-    "markernames":markernames
-    "individuals":parser.individuals,
+        "genotypes": list(itertools.chain(*markers)),
+        "markernames": markernames,
+        "individuals": parser.individuals
 
 
     }
 
 
-def parse_phenotype_data(trait_db_list):
-	"""function to parse and generate phenodata"""
+def parse_phenotype_data(trait_db_list, dataset, individuals):
+    """function to parse and generate phenodata"""
 
     traits = []
     for trait in trait_db_list:
@@ -50,16 +67,15 @@ def parse_phenotype_data(trait_db_list):
                 else:
                     traits.append("-999")
 
-
-    # missing inviduals 
+    # missing inviduals
 
     return {
-    "trait_db_list":trait_db_list,
-    "traits":traits
+        "trait_db_list": trait_db_list,
+        "traits": traits,
+        "individuals": individuals
     }
 
 
-
 def parse_form_data(form_data: dict):
     """function to parse/validate form data
     input: dict containing required data
@@ -68,11 +84,11 @@ def parse_form_data(form_data: dict):
     """
 
     trait_db_list = [trait.strip()
-                          for trait in requestform['trait_list'].split(',')]
-    form_data["trait_db_list"] = [x for x in  trait_db_list if x]
+                     for trait in form_data['trait_list'].split(',')]
+    form_data["trait_db_list"] = [x for x in trait_db_list if x]
 
     form_data["nperm"] = int(form_data["nperm"])
-    form_data["significance"] = float(int(form_data["significance"]))
+    form_data["significance"] = float(form_data["significance"])
     form_data["strategy"] = form_data["strategy"].capitalize()
 
     return form_data
@@ -84,32 +100,25 @@ def run_ctl(requestform):
 
     ctl_api = f"{GN3_LOCAL_URL}/api/ctl/run_ctl"
 
-    form_data = parse_form_data(requestform)
+    form_data = parse_form_data(requestform.to_dict())
 
     trait_db_list = form_data["trait_db_list"]
     dataset = data_set.create_dataset(trait_db_list[0].split(":")[1])
 
-    pheno_data = parse_geno_data(dataset.group.name)
-
-    geno_data = parse_phenotype_data(trait_db_list)
-
-
-    pheno_data["individuals"] = geno_data["individuals"]
+    geno_data = parse_geno_data(dataset.group.name)
 
+    pheno_data = parse_phenotype_data(
+        trait_db_list, dataset, geno_data["individuals"])
 
     response = requests.post(ctl_api, json={
 
-    	"genoData":geno_data,
-    	"phenoData":pheno_data,
+        "genoData": geno_data,
+        "phenoData": pheno_data,
 
-    	**form_data,
+        **form_data,
 
     })
 
     # todo check for errors
 
-    response_data =  response.json()
-
-    print(">>>>>>>>>>>>>>>>>>>>>>",response_data)
-
-    return ""
+    return response.json()
\ No newline at end of file