From a72bee5f4dcf9acaab965414f726e5c64efc7a04 Mon Sep 17 00:00:00 2001 From: kono Date: Wed, 6 Nov 2024 08:44:42 +0000 Subject: [PATCH 1/5] enable to restart during rmmol rmfile (test not yet) --- pacs/mdrun/Cycle.py | 18 ++++++++++++++---- pacs/utils/rmfile.py | 6 ++++++ pacs/utils/rmmol.py | 16 ++++++++++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/pacs/mdrun/Cycle.py b/pacs/mdrun/Cycle.py index bf49066..26c9462 100644 --- a/pacs/mdrun/Cycle.py +++ b/pacs/mdrun/Cycle.py @@ -148,11 +148,21 @@ def is_needed(self) -> bool: fn = f"{self.settings.each_cycle(_cycle=self.cycle)}/summary/progress.log" if not Path(fn).exists(): return True + + export_needed = True + rmmol_needed = self.settings.rmmol + rmfile_needed = self.settings.rmfile + with open(fn, "r") as f: - a = f.readlines() - if len(a) == 0: - return True - return "export to" not in a[-1] + for line in f: + if "export to" in line: + export_needed = False + if "reduced" in line: + rmmol_needed = False + if "rmfile" in line: + rmfile_needed = False + + return any([export_needed, rmmol_needed, rmfile_needed]) # def genrepresent(self) -> None: # genrepresent.genrepresent(self.settings) diff --git a/pacs/utils/rmfile.py b/pacs/utils/rmfile.py index 4daa4cb..4cfcca8 100644 --- a/pacs/utils/rmfile.py +++ b/pacs/utils/rmfile.py @@ -99,7 +99,13 @@ def rmfile(settings: MDsettings, cycle: int) -> None: continue LOGGER.info(f"rmfile completed successfully in cycle{cycle:03}") + record_finished(settings, cycle) +def record_finished(settings: MDsettings, cycle: int) -> None: + dir = settings.each_cycle(_cycle=cycle) + logger = generate_logger(f"{cycle}", f"{dir}/summary/progress.log") + logger.info(f"rmfile completed successfully in cycle{cycle:03}") + close_logger(logger) def rmfile_all(settings: MDsettings) -> None: max_cycle = detect_n_cycle(settings) diff --git a/pacs/utils/rmmol.py b/pacs/utils/rmmol.py index 2b4253d..7768250 100644 --- a/pacs/utils/rmmol.py +++ b/pacs/utils/rmmol.py @@ -171,6 +171,7 @@ def rmmol(settings: MDsettings, cycle: int, last_cycle: bool) -> None: p.close() LOGGER.info(f"trajectory files in cycle{cycle:03} have been reduced") + record_finished(settings, cycle) def rmmol_replica_mdtraj( @@ -291,12 +292,19 @@ def rmmol_log_add_info(settings: MDsettings) -> None: exit(1) +def record_finished(settings: MDsettings, cycle: int) -> None: + dir = settings.each_cycle(_cycle=cycle) + logger = generate_logger(f"{cycle}", f"{dir}/summary/progress.log") + logger.info(f"trajectory files in cycle{cycle:03} have been reduced") + close_logger(logger) + + def rmmol_log_add_info_gmx(settings: MDsettings) -> None: - LOGGER.info("prd.tpr files are probably no longer needed") - LOGGER.info("it is recommended to remove prd.tpr files to save disk space") + LOGGER.info("The 'prd.tpr' files are probably no longer needed.") + LOGGER.info("It is recommended to remove 'prd.tpr' files to save disk space.") LOGGER.info( - "you can manually regenerate the prd.tpr files from input.gro files \ - even if you need them later" + "If needed later, you can manually regenerate the 'prd.tpr' files from " + "the 'input.gro' files." ) From 6d6120d8aca989e300f1ce4ddbf15f1aa5a30c9d Mon Sep 17 00:00:00 2001 From: kono Date: Wed, 6 Nov 2024 15:41:14 +0000 Subject: [PATCH 2/5] change logger name --- pacs/mdrun/Cycle.py | 2 +- pacs/utils/rmfile.py | 6 ++++-- pacs/utils/rmmol.py | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pacs/mdrun/Cycle.py b/pacs/mdrun/Cycle.py index 26c9462..63b734d 100644 --- a/pacs/mdrun/Cycle.py +++ b/pacs/mdrun/Cycle.py @@ -148,7 +148,7 @@ def is_needed(self) -> bool: fn = f"{self.settings.each_cycle(_cycle=self.cycle)}/summary/progress.log" if not Path(fn).exists(): return True - + export_needed = True rmmol_needed = self.settings.rmmol rmfile_needed = self.settings.rmfile diff --git a/pacs/utils/rmfile.py b/pacs/utils/rmfile.py index 4cfcca8..d16f47c 100644 --- a/pacs/utils/rmfile.py +++ b/pacs/utils/rmfile.py @@ -2,7 +2,7 @@ from pathlib import Path from pacs.models.settings import MDsettings -from pacs.utils.logger import generate_logger +from pacs.utils.logger import close_logger, generate_logger LOGGER = generate_logger(__name__) @@ -101,12 +101,14 @@ def rmfile(settings: MDsettings, cycle: int) -> None: LOGGER.info(f"rmfile completed successfully in cycle{cycle:03}") record_finished(settings, cycle) + def record_finished(settings: MDsettings, cycle: int) -> None: dir = settings.each_cycle(_cycle=cycle) - logger = generate_logger(f"{cycle}", f"{dir}/summary/progress.log") + logger = generate_logger(f"{cycle}_rmfile", f"{dir}/summary/progress.log") logger.info(f"rmfile completed successfully in cycle{cycle:03}") close_logger(logger) + def rmfile_all(settings: MDsettings) -> None: max_cycle = detect_n_cycle(settings) for cycle in range(max_cycle + 1): diff --git a/pacs/utils/rmmol.py b/pacs/utils/rmmol.py index 7768250..14b4257 100644 --- a/pacs/utils/rmmol.py +++ b/pacs/utils/rmmol.py @@ -3,7 +3,7 @@ from pathlib import Path from pacs.models.settings import MDsettings -from pacs.utils.logger import generate_logger +from pacs.utils.logger import close_logger, generate_logger LOGGER = generate_logger(__name__) @@ -294,7 +294,7 @@ def rmmol_log_add_info(settings: MDsettings) -> None: def record_finished(settings: MDsettings, cycle: int) -> None: dir = settings.each_cycle(_cycle=cycle) - logger = generate_logger(f"{cycle}", f"{dir}/summary/progress.log") + logger = generate_logger(f"{cycle}_rmmol", f"{dir}/summary/progress.log") logger.info(f"trajectory files in cycle{cycle:03} have been reduced") close_logger(logger) From fca86f7ab284c4e40c2a5135a6a4653e85e184ee Mon Sep 17 00:00:00 2001 From: kono Date: Wed, 6 Nov 2024 16:10:33 +0000 Subject: [PATCH 3/5] type hint --- pacs/mdrun/Cycle.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pacs/mdrun/Cycle.py b/pacs/mdrun/Cycle.py index 63b734d..f553678 100644 --- a/pacs/mdrun/Cycle.py +++ b/pacs/mdrun/Cycle.py @@ -149,9 +149,9 @@ def is_needed(self) -> bool: if not Path(fn).exists(): return True - export_needed = True - rmmol_needed = self.settings.rmmol - rmfile_needed = self.settings.rmfile + export_needed: bool = True + rmmol_needed : bool = self.settings.rmmol + rmfile_needed: bool = self.settings.rmfile with open(fn, "r") as f: for line in f: From 5f2b34f46b40b1a115823cf6ed9ea9e570163063 Mon Sep 17 00:00:00 2001 From: kono Date: Thu, 7 Nov 2024 03:32:59 +0000 Subject: [PATCH 4/5] delete duplicated logger --- pacs/utils/rmfile.py | 2 +- pacs/utils/rmmol.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pacs/utils/rmfile.py b/pacs/utils/rmfile.py index d16f47c..8551c36 100644 --- a/pacs/utils/rmfile.py +++ b/pacs/utils/rmfile.py @@ -98,7 +98,7 @@ def rmfile(settings: MDsettings, cycle: int) -> None: continue - LOGGER.info(f"rmfile completed successfully in cycle{cycle:03}") + # LOGGER.info(f"rmfile completed successfully in cycle{cycle:03}") record_finished(settings, cycle) diff --git a/pacs/utils/rmmol.py b/pacs/utils/rmmol.py index 14b4257..efeff24 100644 --- a/pacs/utils/rmmol.py +++ b/pacs/utils/rmmol.py @@ -170,7 +170,7 @@ def rmmol(settings: MDsettings, cycle: int, last_cycle: bool) -> None: for p in processes: p.close() - LOGGER.info(f"trajectory files in cycle{cycle:03} have been reduced") + # LOGGER.info(f"trajectory files in cycle{cycle:03} have been reduced") record_finished(settings, cycle) From a1955f7bc7869989e9c417feb6e7f58762d872f2 Mon Sep 17 00:00:00 2001 From: kono Date: Thu, 7 Nov 2024 03:39:43 +0000 Subject: [PATCH 5/5] fmt, lint --- pacs/mdrun/Cycle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pacs/mdrun/Cycle.py b/pacs/mdrun/Cycle.py index f553678..ca3e656 100644 --- a/pacs/mdrun/Cycle.py +++ b/pacs/mdrun/Cycle.py @@ -150,7 +150,7 @@ def is_needed(self) -> bool: return True export_needed: bool = True - rmmol_needed : bool = self.settings.rmmol + rmmol_needed: bool = self.settings.rmmol rmfile_needed: bool = self.settings.rmfile with open(fn, "r") as f: