diff --git a/02-run_programs/src/run_angst.py b/02-run_programs/src/run_angst.py
index a212e64967420f61cc56e0cba55c6dd625a4c828..b0dddc8a5401400dcdac0a2bac8325427c7e3c08 100644
--- a/02-run_programs/src/run_angst.py
+++ b/02-run_programs/src/run_angst.py
@@ -7,6 +7,7 @@ import logging
 import shutil
 from datetime import timedelta
 from ete3 import Tree
+import traceback
 
 # Create or get the logger
 logger = logging.getLogger(__name__)
@@ -56,11 +57,29 @@ def run_ANGST_on_NOG(pool_args):
     # Run AnGST
     try:
         logger.info("Running AnGST for NOG_ID {}".format(nog_id))
+        logger.info("Command: python2 {} {}".format(
+            angst_script, input_path))
+        # make sure python2 is available
+        py2_available = False
+        for path in os.environ["PATH"].split(os.pathsep):
+            full_path = os.path.join(path, "python2")
+            if os.path.isfile(full_path) and os.access(full_path, os.X_OK):
+                py2_available = True
+                break
+        if not py2_available:
+            logger.error("python2 is not available in PATH")
+            raise EnvironmentError("python2 is not available in PATH. Make sure you are in the correct conda environment.")
+                
         subprocess.check_call(["python2", angst_script, input_path])
     except subprocess.CalledProcessError as e:
         logger.error(
             "AnGST failed for NOG_ID {} with error\n {}".format(nog_id, e))
         return None
+    except Exception as e:
+        logger.error(
+            "AnGST failed for NOG_ID {} with error\n {}".format(nog_id, e))
+        logger.error(traceback.format_exc())
+        return None
 
     return nog_id
 
@@ -93,10 +112,10 @@ if __name__ == '__main__':
     # use argparse for reading in the number of threads and the input trees file
     parser = argparse.ArgumentParser(
         description="Run AnGST on a set of gene trees")
-    parser.add_argument("--species", "-s", type=str, default="../../data/1236_wol_tree_pruned_angst.nwk",
-                        help="Path to species tree file (default: ../../data/1236_wol_tree_pruned_angst.nwk)")
-    parser.add_argument("--gene", "-g", type=str, default="../../data/1236_pruned_gene_trees.tsv",
-                        help="Path to gene trees file (default: ../../data/1236_pruned_gene_trees.tsv)")
+    parser.add_argument("--species", "-s", type=str, default="../../1236_wol_tree_pruned_angst.nwk",
+                        help="Path to species tree file (default: ../../1236_wol_tree_pruned_angst.nwk)")
+    parser.add_argument("--gene", "-g", type=str, default="../../1236_pruned_gene_trees.tsv",
+                        help="Path to gene trees file (default: ../../1236_pruned_gene_trees.tsv)")
     parser.add_argument("--threads", "-t", type=int, default=50,
                         help="Number of threads to use for parallelization (default: 50)")
     parser.add_argument("--output", "-o", type=str, default="./Results",