about summary refs log tree commit diff
path: root/scripts/rqtl2_wrapper.R
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rqtl2_wrapper.R')
-rw-r--r--scripts/rqtl2_wrapper.R41
1 files changed, 13 insertions, 28 deletions
diff --git a/scripts/rqtl2_wrapper.R b/scripts/rqtl2_wrapper.R
index bd5b302..1a56207 100644
--- a/scripts/rqtl2_wrapper.R
+++ b/scripts/rqtl2_wrapper.R
@@ -13,7 +13,6 @@ args = commandArgs(trailingOnly = TRUE)
 
 # get the json file path with pre metadata required to create the cross
 
-
 if (length(args) == 0) {
   stop("Argument for the metadata file is Missing ", call. = FALSE)
 } else {
@@ -30,24 +29,23 @@ if (!(file.exists(json_file_path))) {
   json_data  = fromJSON(file = json_file_path)
 }
 
-# generate random string file path here
+# generate random string file paths
+
 genRandomFileName <- function(prefix, file_ext = ".txt") {
   randStr = paste(prefix, stri_rand_strings(1, 9, pattern = "[A-Za-z0-9]"), sep =
                     "_")
   return(paste(randStr, file_ext, sep = ""))
 }
 
-# TODO work on the optional parameters
+# TODO work on the optional parameters e.g cores, type of computation
 
-# make assertion for the geno_file and the geno_file exists
-# make assertion for the physical map file or the geno map file exists
+# TODO create temp directory for this workspace pass this as argument
 
-# create temp directory for this workspace
 control_file_path  <- file.path("/home/kabui",
                                 genRandomFileName(prefix = "control_", file_ext = ".json"))
 
 str_glue("Generated control file path is  {control_file_path}")
-# better defaults for the json file
+
 if (is.null(json_data$sep)){
 cat("Using ',' as a default sep for cross file\n")
 json_data$sep = ","
@@ -57,7 +55,6 @@ cat("Using '-' and 'NA' as the default na.strings\n")
  json_data$na.strings = c("-" , "NA")
 }
 
-
 # use this better defaults
 default_keys = c(
                 "geno_transposed", "founder_geno_transposed",
@@ -72,7 +69,6 @@ if (!(item %in% names(json_data))){
 }
 }
 
-
 generate_cross_object  <- function(json_data) {
  # function to write the cross object from a json data object
   return (
@@ -102,14 +98,14 @@ generate_cross_object  <- function(json_data) {
   )
 }
 
-
-# alternatively pass a  yaml file with
+# generate the cross file
 
 generate_cross_object(json_data)
 
+# read from the cross file path
 dataset  <- read_cross2(control_file_path, quiet = FALSE) # replace this with a dynamic path
-# check integrity of the cross
 
+# check integrity of the cross
 
 cat("Check the integrity of the cross object")
 check_cross2(dataset)
@@ -137,10 +133,7 @@ founders(dataset)
 
 # Work on computing the genetic probabilities
 
-
 analysis_type <- "single"
-
-
 perform_genetic_pr <- function(cross,
                                cores = 1,
                                error_prob = 0.002,
@@ -162,29 +155,24 @@ cat("Summaries  on the genetic probabilites \n")
 print(Pr)
 summary(Pr)
 
+#calculate genotyping error LOD scores
 
-#calculate genotyping error LOD scores, to help identify potential genotyping errors (and problem markers and/or individuals
 error_lod <- calc_errorlod(dataset, Pr, quiet = FALSE, cores = 4)
 print(error_lod)
 
 
 #  Perform genome scan
-
-# rework on this issue
+# TODO! rework on this issue
 ## grab phenotypes and covariates; ensure that covariates have names attribute
 pheno <- dataset$pheno
 covar <- match(dataset$covar$sex, c("f", "m")) # make numeric
 names(covar) <- rownames(dataset$covar)
 Xcovar <- get_x_covar(dataset)
-
 print(pheno)
 print(covar)
 print(Xcovar)
 
 # TODO: rework on fetching th Xcovar and getting the covar data
-
-
-
 perform_genome_scan <- function(cross,
                                 genome_prob,
                                 method,
@@ -233,7 +221,6 @@ results <- perform_genome_scan(cross = dataset,
 results # this should probably return the method use here
 
 # plot for the LOD scores from  performing the genome scan
-
 generate_lod_plot <- function(cross, scan_result, method, base_dir = ".") {
   # Plot LOD curves for a genome scan
   color <- c("slateblue", "violetred", "green3")
@@ -268,13 +255,10 @@ generate_lod_plot <- function(cross, scan_result, method, base_dir = ".") {
 lod_file_path <- generate_lod_plot(dataset, results, "HK")
 lod_file_path
 
-# work on 2 pair scan multiple pair scan # multiple pair scan
 
-# Q  how do we perform geno scan with Genome scan with a single-QTL model ????
+# Note pair scan does not exists in rqtl2
 
 # perform  permutation tests for single-QTL method
-
-
 perform_permutation_test <- function(cross,
                                      genome_prob,
                                      n_perm,
@@ -284,7 +268,8 @@ perform_permutation_test <- function(cross,
                                      perm_strata = NULL) {
 				     
   # TODO! add chr_lengths and perm_Xsp
-  
+
+  cat("performing permutation tes for the cross object\n") 
   if (method == "HKK") {
     perm <- scan1perm(
       genome_prob,