about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/ctl/ctl_analysis.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/wqflask/wqflask/ctl/ctl_analysis.py b/wqflask/wqflask/ctl/ctl_analysis.py
index 3159ad7f..8a2f1954 100644
--- a/wqflask/wqflask/ctl/ctl_analysis.py
+++ b/wqflask/wqflask/ctl/ctl_analysis.py
@@ -8,11 +8,14 @@ import rpy2.rinterface as ri
 
 from base.webqtlConfig import GENERATED_IMAGE_DIR
 from utility import webqtlUtil                # Random number for the image
+from utility import genofile_parser           # genofile_parser
 
 import base64
 import array
+import csv
 
 from utility import helper_functions
+from utility.tools import locate
 
 from rpy2.robjects.packages import importr
 utils = importr("utils")
@@ -43,13 +46,17 @@ r_dev_off       = ro.r["dev.off"]             # Map the dev.off function
 class CTL(object):
     def __init__(self):
         print("Initialization of CTL")
-        #log = r_file("/tmp/genenetwork_wcgna.log", open = "wt")
+        #log = r_file("/tmp/genenetwork_ctl.log", open = "wt")
         #r_sink(log)                                  # Uncomment the r_sink() commands to log output from stdout/stderr to a file
         #r_sink(log, type = "message")
         r_library("ctl")                                                  # Load CTL - Should only be done once, since it is quite expensive
         r_options(stringsAsFactors = False)
         print("Initialization of CTL done, package loaded in R session")
-        self.r_CTLscan    = ro.r["CTLscan"]                               # Map the CTLscan function
+        self.r_CTLscan            = ro.r["CTLscan"]                        # Map the CTLscan function
+        self.r_CTLsignificant     = ro.r["CTLsignificant"]                 # Map the CTLsignificant function
+        self.r_lineplot           = ro.r["ctl.lineplot"]                   # Map the ctl.lineplot function
+        self.r_CTLnetwork         = ro.r["CTLnetwork"]                     # Map the CTLnetwork function
+        self.r_CTLprofiles        = ro.r["CTLprofiles"]                    # Map the CTLprofiles function
         print("Obtained pointers to CTL functions")
 
     def run_analysis(self, requestform):
@@ -57,18 +64,26 @@ class CTL(object):
 
         self.trait_db_list = [trait.strip() for trait in requestform['trait_list'].split(',')]
         print("Retrieved phenotype data from database", requestform['trait_list'])
+
         helper_functions.get_trait_db_obs(self, self.trait_db_list)
 
         self.input = {}           # self.input contains the phenotype values we need to send to R
         strains = []              # All the strains we have data for (contains duplicates)
         traits  = []              # All the traits we have data for (should not contain duplicates)
+        genotypebasename = ""
         for trait in self.trait_list:
             traits.append(trait[0].name)
+            if genotypebasename == "":
+              genotypebasename = trait[1].group.name
             self.input[trait[0].name] = {}
             for strain in trait[0].data:
                 strains.append(strain)
                 self.input[trait[0].name][strain]  = trait[0].data[strain].value
 
+        genofilelocation = locate(genotypebasename + ".geno", "genotype")
+        parser = genofile_parser.ConvertGenoFile(genofilelocation)
+        parser.process_csv()
+        print(parser.markers)
         self.results = {}
         sys.stdout.flush()