From 63300e26ec4a8dab60cc9a80a6c4204c2c156e22 Mon Sep 17 00:00:00 2001
From: Frederick Muriuki Muriithi
Date: Mon, 19 Sep 2022 09:07:11 +0300
Subject: Check paths before running gemma command

* Check that the required file paths exist
* Check the bimbam directory path only once
---
 wqflask/wqflask/marker_regression/gemma_mapping.py | 26 +++++++++++++---------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/wqflask/wqflask/marker_regression/gemma_mapping.py b/wqflask/wqflask/marker_regression/gemma_mapping.py
index 3bf9fdd5..fa7f0beb 100644
--- a/wqflask/wqflask/marker_regression/gemma_mapping.py
+++ b/wqflask/wqflask/marker_regression/gemma_mapping.py
@@ -7,7 +7,7 @@ import json
 from base import webqtlConfig
 from base.trait import create_trait
 from base.data_set import create_dataset
-from utility.tools import flat_files
+from utility.tools import flat_files, assert_file
 from utility.tools import GEMMA_WRAPPER_COMMAND
 from utility.tools import TEMPDIR
 from utility.tools import WEBSERVER_MODE
@@ -55,22 +55,26 @@ def run_gemma(this_trait, this_dataset, samples, vals, covariates, use_loco,
         if covariates != "":
             covar_filename = gen_covariates_file(this_dataset, covariates, samples)
         if str(use_loco).lower() == "true":
+            bimbam_dir = flat_files('genotype/bimbam')
+            geno_filepath = assert_file(
+                f"{bimbam_dir}/{genofile_name}_geno.txt")
+            pheno_filepath = assert_file(f"{TEMPDIR}/gn2/{pheno_filename}.txt")
+            snps_filepath = assert_file(
+                f"{bimbam_dir}/{genofile_name}_snps.txt")
+            k_json_output_filepath = f"{TEMPDIR}/gn2/{k_output_filename}.json"
             generate_k_command = (f"{GEMMA_WRAPPER_COMMAND} --json --loco "
                                   f"{chr_list_string} -- {GEMMAOPTS} "
-                                  f"-g {flat_files('genotype/bimbam')}/"
-                                  f"{genofile_name}_geno.txt -p "
-                                  f"{TEMPDIR}/gn2/{pheno_filename}.txt -a "
-                                  f"{flat_files('genotype/bimbam')}/"
-                                  f"{genofile_name}_snps.txt -gk > "
-                                  f"{TEMPDIR}/gn2/{k_output_filename}.json")
+                                  f"-g {geno_filepath} -p "
+                                  f"{pheno_filepath} -a "
+                                  f"{snps_filepath} -gk > "
+                                  f"{k_json_output_filepath}")
             os.system(generate_k_command)
 
             gemma_command = (f"{GEMMA_WRAPPER_COMMAND} --json --loco "
-                             f"--input {TEMPDIR}/gn2/{k_output_filename}.json "
+                             f"--input {k_json_output_filepath} "
                              f"-- {GEMMAOPTS} "
-                             f"-g {flat_files('genotype/bimbam')}/"
-                             f"{genofile_name}_geno.txt "
-                             f"-p {TEMPDIR}/gn2/{pheno_filename}.txt ")
+                             f"-g {geno_filepath} "
+                             f"-p {pheno_filepath} ")
             if covariates != "":
                 gemma_command += (f"-c {flat_files('mapping')}/"
                                   f"{covar_filename}.txt "
-- 
cgit v1.2.3