about summary refs log tree commit diff
path: root/scripts/run_qtlreaper.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/run_qtlreaper.py')
-rw-r--r--scripts/run_qtlreaper.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/scripts/run_qtlreaper.py b/scripts/run_qtlreaper.py
index ab19da0..2269ea6 100644
--- a/scripts/run_qtlreaper.py
+++ b/scripts/run_qtlreaper.py
@@ -6,6 +6,7 @@ import time
 import secrets
 import logging
 import subprocess
+import multiprocessing
 from pathlib import Path
 from functools import reduce
 from typing import Union, Iterator
@@ -147,13 +148,17 @@ def dispatch(args: Namespace) -> int:
 
             _qtlreaper_main_output = args.working_dir.joinpath(
                 f"main-output-{secrets.token_urlsafe(15)}.tsv")#type: ignore[attr-defined]
+            _qtlreaper_permu_output = args.working_dir.joinpath(
+                f"permu-output-{secrets.token_urlsafe(15)}.tsv")
             logger.debug("Main output filename: %s", _qtlreaper_main_output)
             with subprocess.Popen(
                     ("qtlreaper",
                      "--n_permutations", "1000",
                      "--geno", _genofile,
                      "--traits", _traitsfile,
-                     "--main_output", _qtlreaper_main_output),
+                     "--main_output", _qtlreaper_main_output,
+                     "--permu_output", _qtlreaper_permu_output,
+                     "--threads", str(int(1+(multiprocessing.cpu_count()/2)))),
                     env=({**os.environ, "RUST_BACKTRACE": "full"}
                          if logger.getEffectiveLevel() == logging.DEBUG
                          else dict(os.environ))) as _qtlreaper:
@@ -172,8 +177,17 @@ def dispatch(args: Namespace) -> int:
             logger.debug("Cleaning up temporary files.")
 
             # short-circuits to delete file if exists
-            _traitsfile.exists() and _traitsfile.unlink()
-            _qtlreaper_main_output.exists() and _qtlreaper_main_output.unlink()
+            if _traitsfile.exists():
+                _traitsfile.unlink()
+                logger.info("Deleted generated traits' file for QTLReaper.")
+
+            if _qtlreaper_main_output.exists():
+                _qtlreaper_main_output.unlink()
+                logger.info("Deleted QTLReaper's main output file.")
+
+            if _qtlreaper_permu_output.exists():
+                _qtlreaper_permu_output.unlink()
+                logger.info("Deleted QTLReaper's permutations file.")
 
             if _qtlreaper.returncode != 0:
                 return _qtlreaper.returncode