From cb70dedbf910a7af275ae78fbee3db43cf3bec5b Mon Sep 17 00:00:00 2001 From: Kris Thielemans Date: Thu, 19 Sep 2024 20:51:44 +0100 Subject: [PATCH] added Siemens_mMR_NEMA_IQ_lowcounts --- .../Siemens_mMR_NEMA_IQ_lowcounts/__init__.py | 0 .../prepare_mMR_NEMA_IQ_data.py | 48 +++++++++++++++++++ SIRF_data_preparation/dataset_settings.py | 4 +- petric.py | 1 + 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/__init__.py create mode 100644 SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/prepare_mMR_NEMA_IQ_data.py diff --git a/SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/__init__.py b/SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/prepare_mMR_NEMA_IQ_data.py b/SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/prepare_mMR_NEMA_IQ_data.py new file mode 100644 index 0000000..343d53c --- /dev/null +++ b/SIRF_data_preparation/Siemens_mMR_NEMA_IQ_lowcounts/prepare_mMR_NEMA_IQ_data.py @@ -0,0 +1,48 @@ +import argparse +import logging +import os + +from ..data_utilities import prepare_challenge_Siemens_data, the_data_path, the_orgdata_path + +this_directory = os.path.dirname(__file__) +repo_directory = os.path.dirname(this_directory) +challenge_data_path = os.path.join(repo_directory, 'data') + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='SyneRBI PETRIC Siemens mMR NEMA IQ data preparation script.') + + parser.add_argument('--log', type=str, default='warning') + parser.add_argument('--start', type=float, default=0) + parser.add_argument('--end', type=float, default=100) + parser.add_argument('--raw_data_path', type=str, default=None) + args = parser.parse_args() + + if args.log in ['debug', 'info', 'warning', 'error', 'critical']: + level = eval(f'logging.{args.log.upper()}') + logging.basicConfig(level=level) + logging.info(f"Setting logging level to {args.log.upper()}") + + start = args.start + end = args.end + + if args.raw_data_path is None: + data_path = the_orgdata_path('Siemens_mMR_NEMA_IQ', 'raw', 'NEMA_IQ') + else: + data_path = args.raw_data_path + + data_path = os.path.abspath(data_path) + logging.debug(f"Raw data path: {data_path}") + + intermediate_data_path = the_orgdata_path('Siemens_mMR_NEMA_IQ_lowcounts', 'processing') + challenge_data_path = the_data_path('Siemens_mMR_NEMA_IQ_lowcounts') + + os.makedirs(challenge_data_path, exist_ok=True) + os.chdir(challenge_data_path) + os.makedirs(intermediate_data_path, exist_ok=True) + + f_template = os.path.join(data_path, 'mMR_template_span11.hs') + + prepare_challenge_Siemens_data(data_path, challenge_data_path, intermediate_data_path, '20170809_NEMA_', + '60min_UCL.l.hdr', 'MUMAP_UCL.v', 'MUMAP_UCL.hv', 'UCL.n', 'norm.n.hdr', f_template, + 'prompts', 'mult_factors', 'additive_term', 'randoms', 'attenuation_factor', + 'attenuation_correction_factor', 'scatter', start, end) diff --git a/SIRF_data_preparation/dataset_settings.py b/SIRF_data_preparation/dataset_settings.py index a59d52e..a0a9628 100644 --- a/SIRF_data_preparation/dataset_settings.py +++ b/SIRF_data_preparation/dataset_settings.py @@ -4,8 +4,8 @@ from petric import DATA_SLICES DATA_SUBSETS = { - 'Siemens_mMR_NEMA_IQ': 7, 'Siemens_mMR_ACR': 7, 'NeuroLF_Hoffman_Dataset': 16, 'Mediso_NEMA_IQ': 12, - 'Siemens_Vision600_thorax': 5} + 'Siemens_mMR_NEMA_IQ': 7, 'Siemens_mMR_NEMA_IQ_lowcounts': 7, 'Siemens_mMR_ACR': 7, 'NeuroLF_Hoffman_Dataset': 16, + 'Mediso_NEMA_IQ': 12, 'Siemens_Vision600_thorax': 5} @dataclass diff --git a/petric.py b/petric.py index e1b886a..50dddea 100755 --- a/petric.py +++ b/petric.py @@ -248,6 +248,7 @@ def get_image(fname): DATA_SLICES = { 'Siemens_mMR_NEMA_IQ': {'transverse_slice': 72, 'coronal_slice': 109}, # 'sagittal_slice': 89 + 'Siemens_mMR_NEMA_IQ_lowcounts': {'transverse_slice': 72, 'coronal_slice': 109, 'sagittal_slice': 89}, 'Siemens_mMR_ACR': {'transverse_slice': 99}, 'NeuroLF_Hoffman_Dataset': {'transverse_slice': 72}, 'Mediso_NEMA_IQ': {'transverse_slice': 22, 'coronal_slice': 89, 'sagittal_slice': 66},