From 633e7fb587b91e3add2796406f8b44c8b5987cae Mon Sep 17 00:00:00 2001
From: Amandine PERRIN <amandine.perrin@pasteur.fr>
Date: Tue, 12 Nov 2019 11:48:10 +0100
Subject: [PATCH] Correct mmseq functions for pangenome

---
 PanACoTA/pangenome_module/mmseqs_functions.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/PanACoTA/pangenome_module/mmseqs_functions.py b/PanACoTA/pangenome_module/mmseqs_functions.py
index fb5a7196..870eaaaf 100755
--- a/PanACoTA/pangenome_module/mmseqs_functions.py
+++ b/PanACoTA/pangenome_module/mmseqs_functions.py
@@ -12,6 +12,8 @@ import os
 import time
 import multiprocessing
 import progressbar
+import copy
+
 from PanACoTA import utils
 
 logger = logging.getLogger("pangnome.mmseqs")
@@ -363,22 +365,25 @@ def create_mmseqs_db(mmseqdb, prt_path, logmmseq):
     if os.path.isfile(mmseqdb):
         for file in [mmseqdb + ext for ext in outext]:
             if not os.path.isfile(file):
-                break
+                continue
             files_existing.append(file)
         if len(files_existing) != len(outext):
-            logger.warning(f"mmseq database {mmseqdb} already exists, but at least 1 associated "
+            logger.warning(f"mmseqs database {mmseqdb} already exists, but at least 1 associated "
                             "file (.dbtype, .index etc). is missing. The program will "
                             "remove existing files and recreate the database.")
+            files_remaining = copy.deepcopy(files_existing)
             for file in files_existing:
-                os.remove(file)
-                logger.details("Removing {}".format(file))
+                os.remove(file)  # Delete file
+                files_remaining.remove(file)  # Remove file from list of existing files
+                logger.details(f"Removing '{file}'.")
+            files_existing = copy.deepcopy(files_remaining)
         else:
-            logger.warning("mmseq database {mmseqdb} already exists. The program will "
+            logger.warning(f"mmseqs database {mmseqdb} already exists. The program will "
                            "use it.")
             return 0
     if len(files_existing) != len(outext):
         logger.info("Creating database")
-        logger.details("Exiting files: {}".format(len(files_existing)))
+        logger.details("Existing files: {}".format(len(files_existing)))
         logger.details("Expected extentions: {}".format(len(outext)))
         cmd = f"mmseqs createdb {prt_path} {mmseqdb}"
         msg = (f"Problem while trying to convert database {prt_path} to mmseqs "
-- 
GitLab