From ba3d2e6dff6795ee1733bbc029c007ce5bead07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:04:48 -0400 Subject: [PATCH 01/27] Remove data_files entry --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 19e4249..c41deef 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,6 @@ author="avcaron", author_email="", description="", - data_files=[(".", ["config.py", "config.json"])], scripts=list( filter(lambda s: "init" not in s, glob.glob("scripts/*.py")) ), From 3bc144e93ad2c9115f9b978d863645e6852c3cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:22:04 -0400 Subject: [PATCH 02/27] Added default util --- simulator/default.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 simulator/default.py diff --git a/simulator/default.py b/simulator/default.py new file mode 100644 index 0000000..5d7b73e --- /dev/null +++ b/simulator/default.py @@ -0,0 +1,4 @@ +import typing + +SINGULARITY_PATH: typing.Final[str] = "utils" +SINGULARITY_NAME: typing.Final[str] = "voxsim_singularity_latest.sif" From e260acc3e306b7f4949c799bc638f896ecf31d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:22:12 -0400 Subject: [PATCH 03/27] Added SingularityConfig class --- simulator/runner/config.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 simulator/runner/config.py diff --git a/simulator/runner/config.py b/simulator/runner/config.py new file mode 100644 index 0000000..2d4764a --- /dev/null +++ b/simulator/runner/config.py @@ -0,0 +1,8 @@ +import dataclasses +import simulator.default as default + + +@dataclasses.dataclass +class SingularityConfig: + singularity_path: str = default.SINGULARITY_PATH + singularity_name: str = default.SINGULARITY_NAME From d7d69669772b2634e3af509c6f0c45a1ad47ef34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:25:07 -0400 Subject: [PATCH 04/27] Format --- simulator/runner/legacy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulator/runner/legacy.py b/simulator/runner/legacy.py index 463b321..fa721e1 100644 --- a/simulator/runner/legacy.py +++ b/simulator/runner/legacy.py @@ -14,11 +14,11 @@ from ..exceptions import SimulationRunnerException from ..utils.logging import RTLogging - logger = logging.getLogger(basename(__file__).split(".")[0]) class SimulationRunner: + def __init__( self, base_naming, From d6cf37fc752e22d1a0bd69e913744a38f2d5f33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:25:44 -0400 Subject: [PATCH 05/27] Integrated SingularityConfig into legacy runner --- simulator/runner/legacy.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/simulator/runner/legacy.py b/simulator/runner/legacy.py index fa721e1..10e79c3 100644 --- a/simulator/runner/legacy.py +++ b/simulator/runner/legacy.py @@ -10,7 +10,7 @@ from numpy import ones_like, sum import nrrd -from config import get_config +from .config import SingularityConfig from ..exceptions import SimulationRunnerException from ..utils.logging import RTLogging @@ -24,7 +24,7 @@ def __init__( base_naming, geometry_infos, simulation_infos=None, - singularity_conf=get_config(), + singularity_conf=SingularityConfig(), output_nifti=False, ): self._geometry_path = geometry_infos["file_path"] @@ -40,7 +40,7 @@ def __init__( self._compartment_ids = simulation_infos["compartment_ids"] singularity_conf = ( - singularity_conf if singularity_conf else get_config() + singularity_conf if singularity_conf else SingularityConfig() ) self._singularity = path.join( singularity_conf["singularity_path"], From 49d6d9f8768d57a362eec983c9af75aa55605046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:26:06 -0400 Subject: [PATCH 06/27] Format --- simulator/runner/simulation_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 1857cc1..523e6e5 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -9,11 +9,11 @@ from .datastore import Datastore from ..utils.logging import RTLogging - logger = logging.getLogger(basename(__file__).split(".")[0]) class AsyncRunner: + def __init__(self): self._event_loop = new_event_loop() From 14481bda87adf4b5e23b7e396f12dccf015d0b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 13:42:00 -0400 Subject: [PATCH 07/27] Format --- simulator/runner/config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/simulator/runner/config.py b/simulator/runner/config.py index 2d4764a..4d17ac3 100644 --- a/simulator/runner/config.py +++ b/simulator/runner/config.py @@ -1,4 +1,5 @@ import dataclasses + import simulator.default as default From 0bde314321638bb3a15af528464a85bfa84269e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 15:38:01 -0400 Subject: [PATCH 08/27] Added singularity exec attribute to config --- simulator/default.py | 1 + simulator/runner/config.py | 1 + 2 files changed, 2 insertions(+) diff --git a/simulator/default.py b/simulator/default.py index 5d7b73e..45d3c33 100644 --- a/simulator/default.py +++ b/simulator/default.py @@ -2,3 +2,4 @@ SINGULARITY_PATH: typing.Final[str] = "utils" SINGULARITY_NAME: typing.Final[str] = "voxsim_singularity_latest.sif" +SINGULARITY_EXEC: typing.Final[str] = "singularity" diff --git a/simulator/runner/config.py b/simulator/runner/config.py index 4d17ac3..1368938 100644 --- a/simulator/runner/config.py +++ b/simulator/runner/config.py @@ -7,3 +7,4 @@ class SingularityConfig: singularity_path: str = default.SINGULARITY_PATH singularity_name: str = default.SINGULARITY_NAME + singularity_exec: str = default.SINGULARITY_EXEC From 8714a5eec87d1429d9967691078ed5e04304c7b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 15:43:28 -0400 Subject: [PATCH 09/27] Typo --- simulator/default.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulator/default.py b/simulator/default.py index 45d3c33..da6816d 100644 --- a/simulator/default.py +++ b/simulator/default.py @@ -1,5 +1,5 @@ import typing -SINGULARITY_PATH: typing.Final[str] = "utils" +SINGULARITY_PATH: typing.Final[str] = "." SINGULARITY_NAME: typing.Final[str] = "voxsim_singularity_latest.sif" SINGULARITY_EXEC: typing.Final[str] = "singularity" From 45247c0e1f4efaf7135ab5f160a99102a34d2832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 15:56:41 -0400 Subject: [PATCH 10/27] Refactored config to include singularity attr --- simulator/default.py | 4 +++- simulator/runner/config.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/simulator/default.py b/simulator/default.py index da6816d..3a170b7 100644 --- a/simulator/default.py +++ b/simulator/default.py @@ -1,5 +1,7 @@ import typing +import pathlib -SINGULARITY_PATH: typing.Final[str] = "." +SINGULARITY_PATH: typing.Final[pathlib.PurePath] = pathlib.PurePath() SINGULARITY_NAME: typing.Final[str] = "voxsim_singularity_latest.sif" +SINGULARITY: typing.Final[pathlib.PurePath] = SINGULARITY_PATH / SINGULARITY_NAME SINGULARITY_EXEC: typing.Final[str] = "singularity" diff --git a/simulator/runner/config.py b/simulator/runner/config.py index 1368938..1667208 100644 --- a/simulator/runner/config.py +++ b/simulator/runner/config.py @@ -1,10 +1,10 @@ import dataclasses +import pathlib import simulator.default as default @dataclasses.dataclass class SingularityConfig: - singularity_path: str = default.SINGULARITY_PATH - singularity_name: str = default.SINGULARITY_NAME + singularity: pathlib.PurePath = default.SINGULARITY singularity_exec: str = default.SINGULARITY_EXEC From 825e4dc5f4b4ad0d22ee55d9ba4641d7e93b2dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 15:59:11 -0400 Subject: [PATCH 11/27] Final integration of config in legacy runner --- simulator/runner/legacy.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/simulator/runner/legacy.py b/simulator/runner/legacy.py index 10e79c3..b73efbb 100644 --- a/simulator/runner/legacy.py +++ b/simulator/runner/legacy.py @@ -42,15 +42,8 @@ def __init__( singularity_conf = ( singularity_conf if singularity_conf else SingularityConfig() ) - self._singularity = path.join( - singularity_conf["singularity_path"], - singularity_conf["singularity_name"], - ) - self._singularity_exec = ( - singularity_conf["singularity_exec"] - if "singularity_exec" in singularity_conf - else "singularity" - ) + self._singularity = singularity_conf.singularity + self._singularity_exec = singularity_conf.singularity_exec self._run_simulation = True if simulation_infos else False self._extension = "nii.gz" if output_nifti else "nrrd" From 2240b4964cb13b28165ef474bcab27303f522568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 16:00:28 -0400 Subject: [PATCH 12/27] Final integration of config in new runner --- simulator/runner/simulation_runner.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 523e6e5..ae13528 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -5,7 +5,7 @@ from os.path import basename from subprocess import PIPE, Popen -from config import get_config +from .config import SingularityConfig from .datastore import Datastore from ..utils.logging import RTLogging @@ -49,16 +49,11 @@ async def _run_async(self, command, log_file, log_tag): class SimulationRunner(AsyncRunner): _apps = {"phantom": "launch_voxsim", "diffusion mri": "launch_mitk"} - def __init__(self, singularity_conf=get_config()): - self._singularity = path.join( - singularity_conf["singularity_path"], - singularity_conf["singularity_name"], - ) + def __init__(self, singularity_conf=SingularityConfig()): + self._singularity = singularity_conf.singularity super().__init__() - self._singularity_exec = "singularity" - if "singularity_exec" in singularity_conf: - self._singularity_exec = singularity_conf["singularity_exec"] + self._singularity_exec = singularity_conf.singularity_exec def _bind_singularity(self, step, paths, arguments): return "{} run -B {} --app {} {} {}".format( From 53b84fa066c8f7b141baa5856e2d5795b9641f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 16:02:18 -0400 Subject: [PATCH 13/27] Removed deprecated config files --- config.json | 5 ----- config.py | 13 ------------- 2 files changed, 18 deletions(-) delete mode 100644 config.json delete mode 100644 config.py diff --git a/config.json b/config.json deleted file mode 100644 index 3d18623..0000000 --- a/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "singularity_path": ".", - "singularity_name": "voxsim_singularity_latest.sif" -} - diff --git a/config.py b/config.py deleted file mode 100644 index 232a35c..0000000 --- a/config.py +++ /dev/null @@ -1,13 +0,0 @@ -import json -from os.path import dirname, join, realpath - - -def get_config(path=dirname(realpath(__file__))): - with open(join(path, "config.json")) as f: - return json.load(f) - - -def override_global_config(config): - print(config) - with open(join(dirname(realpath(__file__)), "config.json"), "w+") as f: - json.dump(config, f) From 19ef8c8a7fd9cf2df73653a35e030f528f16a6df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 16:02:38 -0400 Subject: [PATCH 14/27] Import SingularityConfig when importing runner pkg --- simulator/runner/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/simulator/runner/__init__.py b/simulator/runner/__init__.py index 119609b..49dc376 100755 --- a/simulator/runner/__init__.py +++ b/simulator/runner/__init__.py @@ -1 +1,2 @@ +from .config import SingularityConfig from .simulation_runner import SimulationRunner From d0bb89a714fdb78fabdd45e9a86afd4069c39f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Wed, 29 Jun 2022 16:07:00 -0400 Subject: [PATCH 15/27] Bumped version --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index c41deef..c2b3514 100644 --- a/setup.py +++ b/setup.py @@ -3,11 +3,10 @@ from simulator.utils.setup.documentation import DocCommand - if __name__ == "__main__": setup( name="simulation_generator", - version="1.0.0", + version="1.0.1", packages=find_packages(exclude=("tests", "tests.*")), url="", license="", From 5839e7897d827b63698eb1d9267999ef01775e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Fri, 1 Jul 2022 16:46:01 -0400 Subject: [PATCH 16/27] Prefixed module with `_` so it has a different name than its pkg --- simulator/factory/common/__init__.py | 2 +- simulator/factory/common/{common.py => _common.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename simulator/factory/common/{common.py => _common.py} (100%) mode change 100755 => 100644 diff --git a/simulator/factory/common/__init__.py b/simulator/factory/common/__init__.py index fd9d22f..8e48e44 100755 --- a/simulator/factory/common/__init__.py +++ b/simulator/factory/common/__init__.py @@ -1 +1 @@ -from .common import AttributeAsDictClass +from ._common import AttributeAsDictClass diff --git a/simulator/factory/common/common.py b/simulator/factory/common/_common.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/common/common.py rename to simulator/factory/common/_common.py From 59019ef85b9241fed102360fdaeecb56616acf3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Fri, 1 Jul 2022 16:47:11 -0400 Subject: [PATCH 17/27] Prefixed module with `_` so it has a different name than its pkg --- simulator/factory/geometry_factory/__init__.py | 2 +- .../{geometry_factory.py => _geometry_factory.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename simulator/factory/geometry_factory/{geometry_factory.py => _geometry_factory.py} (100%) mode change 100755 => 100644 diff --git a/simulator/factory/geometry_factory/__init__.py b/simulator/factory/geometry_factory/__init__.py index b69e045..6cbe349 100755 --- a/simulator/factory/geometry_factory/__init__.py +++ b/simulator/factory/geometry_factory/__init__.py @@ -1,3 +1,3 @@ -from .geometry_factory import GeometryFactory +from ._geometry_factory import GeometryFactory from simulator.factory.geometry_factory.utils.plane import Plane from simulator.factory.geometry_factory.utils.rotation import Rotation diff --git a/simulator/factory/geometry_factory/geometry_factory.py b/simulator/factory/geometry_factory/_geometry_factory.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/geometry_factory/geometry_factory.py rename to simulator/factory/geometry_factory/_geometry_factory.py From 73b58f809fff76958431ba68d65584af29348392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Fri, 1 Jul 2022 16:49:12 -0400 Subject: [PATCH 18/27] Prefixed module with `_` so it has a different name than its pkg --- simulator/factory/simulation_factory/__init__.py | 2 +- .../{simulation_factory.py => _simulation_factory.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename simulator/factory/simulation_factory/{simulation_factory.py => _simulation_factory.py} (100%) mode change 100755 => 100644 diff --git a/simulator/factory/simulation_factory/__init__.py b/simulator/factory/simulation_factory/__init__.py index 1cb8895..fe0c0a9 100755 --- a/simulator/factory/simulation_factory/__init__.py +++ b/simulator/factory/simulation_factory/__init__.py @@ -1 +1 @@ -from .simulation_factory import SimulationFactory +from ._simulation_factory import SimulationFactory diff --git a/simulator/factory/simulation_factory/simulation_factory.py b/simulator/factory/simulation_factory/_simulation_factory.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/simulation_factory/simulation_factory.py rename to simulator/factory/simulation_factory/_simulation_factory.py From bd10859860562c9e0f2948bdf75faa0837b8025b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Fri, 1 Jul 2022 16:55:02 -0400 Subject: [PATCH 19/27] Bumped version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c2b3514..6e94a39 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ if __name__ == "__main__": setup( name="simulation_generator", - version="1.0.1", + version="1.0.2", packages=find_packages(exclude=("tests", "tests.*")), url="", license="", From 109f4b482fa6fb6aa2c4fca15c09e22f97c189fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:44:28 -0400 Subject: [PATCH 20/27] Fragment os imports --- simulator/runner/simulation_runner.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index ae13528..27464e9 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -1,7 +1,8 @@ import logging from asyncio import get_event_loop, new_event_loop, set_event_loop -from os import makedirs, path +from os import makedirs +from os import path from os.path import basename from subprocess import PIPE, Popen From ec44af855c3e2a4b7bd5d43cdac7c9de912d7ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:46:30 -0400 Subject: [PATCH 21/27] Use import instead of import-from for os.path.basename --- simulator/runner/simulation_runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 27464e9..28a2119 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -3,14 +3,14 @@ from asyncio import get_event_loop, new_event_loop, set_event_loop from os import makedirs from os import path -from os.path import basename +import os.path from subprocess import PIPE, Popen from .config import SingularityConfig from .datastore import Datastore from ..utils.logging import RTLogging -logger = logging.getLogger(basename(__file__).split(".")[0]) +logger = logging.getLogger(os.path.basename(__file__).split(".")[0]) class AsyncRunner: From 60960b16a2d26dcb20917a482afd17444ca2dd97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:48:23 -0400 Subject: [PATCH 22/27] Use import instead of import-from for os.path --- simulator/runner/simulation_runner.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 28a2119..40a2ecf 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -2,8 +2,7 @@ from asyncio import get_event_loop, new_event_loop, set_event_loop from os import makedirs -from os import path -import os.path +import os from subprocess import PIPE, Popen from .config import SingularityConfig @@ -93,8 +92,8 @@ def run( ) datastore = Datastore( - path.join(output_folder, "simulation"), - path.join( + os.path.join(output_folder, "simulation"), + os.path.join( output_folder, "phantom", "{}_phantom_merged_bundles.fib".format(run_name), @@ -104,7 +103,7 @@ def run( ) datastore.load_compartments( - path.join(output_folder, "phantom"), run_name, output_nifti + os.path.join(output_folder, "phantom"), run_name, output_nifti ) datastore.stage_compartments(run_name) @@ -136,17 +135,17 @@ def generate_phantom( base_output_folder = output_folder output_folder = self._create_outputs( - path.join(output_folder, "phantom") + os.path.join(output_folder, "phantom") ) - phantom_def = path.join( + phantom_def = os.path.join( phantom_infos["file_path"], phantom_infos["base_file"] ) resolution = ",".join([str(r) for r in phantom_infos["resolution"]]) spacing = ",".join([str(s) for s in phantom_infos["spacing"]]) fiber_fraction = "rel" if relative_fiber_fraction else "abs" - out_name = path.join( + out_name = os.path.join( output_folder, "phantom, " "{}_phantom".format(run_name) ) @@ -159,7 +158,7 @@ def generate_phantom( bind_paths = ",".join([phantom_infos["file_path"], output_folder]) command = self._bind_singularity("phantom", bind_paths, arguments) - log_file = path.join(base_output_folder, "{}.log".format(run_name)) + log_file = os.path.join(base_output_folder, "{}.log".format(run_name)) self._run_command(command, log_file, "[PHANTOM]") loop_managed or self.stop() @@ -181,18 +180,18 @@ def simulate_diffusion_mri( bind_paths = [] if bind_paths is None else bind_paths base_output_folder = output_folder output_folder = self._create_outputs( - path.join(output_folder, "simulation") + os.path.join(output_folder, "simulation") ) name = "{}_simulation".format(run_name) bind_paths += [simulation_infos["file_path"], output_folder] bind_paths = ",".join(bind_paths) - ffp_file = path.join( + ffp_file = os.path.join( simulation_infos["file_path"], simulation_infos["param_file"] ) extension = "nii.gz" if output_nifti else "nrrd" - out_name = path.join(output_folder, "{}.{}".format(name, extension)) + out_name = os.path.join(output_folder, "{}.{}".format(name, extension)) if not compartments_staged and compartment_maps is not None: datastore = Datastore( @@ -207,7 +206,7 @@ def simulate_diffusion_mri( arguments = "-p {} -i {} -o {}".format(ffp_file, fibers_file, out_name) command = self._bind_singularity("diffusion mri", bind_paths, arguments) - log_file = path.join(base_output_folder, "{}.log".format(run_name)) + log_file = os.path.join(base_output_folder, "{}.log".format(run_name)) self._run_command(command, log_file, "[DIFFUSION MRI]") loop_managed or self.stop() From ed2d7b6e1a5b50f29eea50c602f4923279365fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:49:21 -0400 Subject: [PATCH 23/27] Fixed `_create_outputs` name shadowing of `os.path` due to param `path` --- simulator/runner/simulation_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 40a2ecf..a75f36a 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -65,7 +65,7 @@ def _bind_singularity(self, step, paths, arguments): ) def _create_outputs(self, path): - if not path.exists(path): + if not os.path.exists(path): makedirs(path, exist_ok=True) return path From 9db96aaa7af0046e9a1e712852854e355d846bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:50:17 -0400 Subject: [PATCH 24/27] Followed recommendation to make `_create_outputs` static --- simulator/runner/simulation_runner.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index a75f36a..da0beee 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -64,7 +64,8 @@ def _bind_singularity(self, step, paths, arguments): arguments, ) - def _create_outputs(self, path): + @staticmethod + def _create_outputs(path): if not os.path.exists(path): makedirs(path, exist_ok=True) From bcf88b55f174e991ef6b94cee56aeef13c77001c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Sun, 3 Jul 2022 15:59:42 -0400 Subject: [PATCH 25/27] Bumped version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 6e94a39..8825144 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ if __name__ == "__main__": setup( name="simulation_generator", - version="1.0.2", + version="1.0.3", packages=find_packages(exclude=("tests", "tests.*")), url="", license="", From b786c19860564c36bfb4c42afac2e84b700bfa57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Mon, 4 Jul 2022 12:24:23 -0400 Subject: [PATCH 26/27] Fixed str.join of Path results in an error --- simulator/runner/simulation_runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index da0beee..3b1be6e 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -157,7 +157,7 @@ def generate_phantom( if output_nifti: arguments += " --nii" - bind_paths = ",".join([phantom_infos["file_path"], output_folder]) + bind_paths = ",".join([str(phantom_infos["file_path"]), str(output_folder)]) command = self._bind_singularity("phantom", bind_paths, arguments) log_file = os.path.join(base_output_folder, "{}.log".format(run_name)) self._run_command(command, log_file, "[PHANTOM]") @@ -186,7 +186,7 @@ def simulate_diffusion_mri( name = "{}_simulation".format(run_name) - bind_paths += [simulation_infos["file_path"], output_folder] + bind_paths += [str(simulation_infos["file_path"]), str(output_folder)] bind_paths = ",".join(bind_paths) ffp_file = os.path.join( simulation_infos["file_path"], simulation_infos["param_file"] From 26edbb57154a582f36772825f05617e252df0223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dubreuil?= Date: Mon, 4 Jul 2022 12:27:21 -0400 Subject: [PATCH 27/27] Fixed str.join of Path results in an error in legacy runner --- simulator/runner/legacy.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/simulator/runner/legacy.py b/simulator/runner/legacy.py index b73efbb..a56e9ad 100644 --- a/simulator/runner/legacy.py +++ b/simulator/runner/legacy.py @@ -73,7 +73,7 @@ def run_simulation_dwimage( "{} run -B {} --app launch_mitk {} -p {} -i {} -o {} {}".format( self._singularity_exec, ",".join( - [simulation_infos["file_path"], simulation_output_folder] + [str(simulation_infos["file_path"]), str(simulation_output_folder)] ), self._singularity, path.join( @@ -149,9 +149,9 @@ def run_simulation_standalone( self._singularity_exec, ",".join( [ - geometry_folder, - simulation_infos["file_path"], - simulation_output_folder, + str(geometry_folder), + str(simulation_infos["file_path"]), + str(simulation_output_folder), ] ), self._singularity, @@ -231,7 +231,7 @@ def run( geometry_command = ( "singularity run -B {} --app launch_voxsim {} -f {} -r {} " "-s {} -o {} --comp-map {} --quiet{}".format( - ",".join([self._geometry_path, geometry_output_folder]), + ",".join([str(self._geometry_path), str(geometry_output_folder)]), self._singularity, path.join(self._geometry_path, self._geometry_base_file), ",".join([str(r) for r in self._geometry_resolution]), @@ -248,9 +248,9 @@ def run( "-p {} -i {} -o {} {}".format( ",".join( [ - self._simulation_path, - geometry_output_folder, - simulation_output_folder, + str(self._simulation_path), + str(geometry_output_folder), + str(simulation_output_folder), ] ), self._singularity,