From efa076133173bf4e3ce73a2a2ee8dd0207568c38 Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Mon, 13 Oct 2025 16:04:30 -0400 Subject: [PATCH 1/5] :test_tube: Add test to replicate current failure --- CPAC/utils/bids_utils.py | 43 ++--- CPAC/utils/datasource.py | 5 + CPAC/utils/datatypes.py | 5 + CPAC/utils/tests/test_bids_utils.py | 22 ++- .../sub-NDARAB348EWR_acq-HCP_run-01_T1w.json | 68 ++++++++ ...sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-HCP_run-02_T1w.json | 68 ++++++++ ...sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNavNorm_T2w.json | 68 ++++++++ .../sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz | 0 ...-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json | 68 ++++++++ ...DARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz | 0 ...-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json | 68 ++++++++ ...DARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz | 0 .../anat/sub-NDARAB348EWR_acq-VNav_T2w.json | 67 ++++++++ .../anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNav_run-01_T1w.json | 67 ++++++++ ...ub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNav_run-02_T1w.json | 67 ++++++++ ...ub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json | 78 +++++++++ ...ub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.json | 153 ++++++++++++++++++ .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz | 0 .../sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json | 77 +++++++++ ...sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json | 135 ++++++++++++++++ ...ub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json | 77 +++++++++ ...sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json | 135 ++++++++++++++++ ...ub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz | 0 .../sub-NDARAB348EWR_task-movieDM_bold.json | 139 ++++++++++++++++ .../sub-NDARAB348EWR_task-movieDM_bold.nii.gz | 0 .../sub-NDARAB348EWR_task-movieTP_bold.json | 139 ++++++++++++++++ .../sub-NDARAB348EWR_task-movieTP_bold.nii.gz | 0 ...sub-NDARAB348EWR_task-peer_run-1_bold.json | 139 ++++++++++++++++ ...b-NDARAB348EWR_task-peer_run-1_bold.nii.gz | 0 ...sub-NDARAB348EWR_task-peer_run-3_bold.json | 139 ++++++++++++++++ ...b-NDARAB348EWR_task-peer_run-3_bold.nii.gz | 0 42 files changed, 1805 insertions(+), 22 deletions(-) create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json create mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz diff --git a/CPAC/utils/bids_utils.py b/CPAC/utils/bids_utils.py index 4ed9e45e7c..d52abebd45 100755 --- a/CPAC/utils/bids_utils.py +++ b/CPAC/utils/bids_utils.py @@ -802,12 +802,10 @@ def bids_gen_cpac_sublist( return sublist -def collect_bids_files_configs(bids_dir, aws_input_creds=""): - """ - :param bids_dir: - :param aws_input_creds: - :return: - """ +def collect_bids_files_configs( + bids_dir: str, aws_input_creds: Optional[str] = "" +) -> tuple[list[str], dict[str, Any]]: + """Collect NIfTI file paths and JSON configurations from a BIDS directory.""" file_paths = [] config_dict = {} @@ -853,7 +851,7 @@ def collect_bids_files_configs(bids_dir, aws_input_creds=""): except Exception as e: msg = ( f"Error retrieving {s3_obj.key.replace(prefix, '')}" - f" ({e.message})" + f" ({getattr(e, 'message', str(e))})" ) raise SpecifiedBotoCoreError(msg) from e elif "nii" in str(s3_obj.key): @@ -862,7 +860,7 @@ def collect_bids_files_configs(bids_dir, aws_input_creds=""): ) else: - for root, dirs, files in os.walk(bids_dir, topdown=False, followlinks=True): + for root, _dirs, files in os.walk(bids_dir, topdown=False, followlinks=True): if files: for f in files: for suf in suffixes: @@ -1086,26 +1084,26 @@ def cl_strip_brackets(arg_list): def create_cpac_data_config( - bids_dir, - participant_labels=None, - aws_input_creds=None, - skip_bids_validator=False, - only_one_anat=True, -): + bids_dir: str, + participant_labels: Optional[list[str]] = None, + aws_input_creds: Optional[str] = None, + skip_bids_validator: bool = False, + only_one_anat: bool = True, +) -> list: """ Create a C-PAC data config YAML file from a BIDS directory. Parameters ---------- - bids_dir : str + bids_dir - participant_labels : list or None + participant_labels aws_input_creds - skip_bids_validator : bool + skip_bids_validator - only_one_anat : bool + only_one_anat The "anat" key for a subject expects a string value, but we can temporarily store a list instead by passing True here if we will be filtering that list down to a single string later @@ -1129,8 +1127,10 @@ def create_cpac_data_config( ] if not file_paths: - UTLOGGER.error("Did not find data for %s", ", ".join(participant_labels)) - sys.exit(1) + if participant_labels: + UTLOGGER.error("Did not find data for %s", ", ".join(participant_labels)) + msg = f"Did not find data in {bids_dir}" + raise FileNotFoundError(msg) raise_error = not skip_bids_validator @@ -1145,7 +1145,8 @@ def create_cpac_data_config( if not sub_list: UTLOGGER.error("Did not find data in %s", bids_dir) - sys.exit(1) + msg = f"Did not find data in {bids_dir}" + raise FileNotFoundError(msg) return sub_list diff --git a/CPAC/utils/datasource.py b/CPAC/utils/datasource.py index 89416edd15..f1251b4221 100644 --- a/CPAC/utils/datasource.py +++ b/CPAC/utils/datasource.py @@ -514,9 +514,14 @@ def match_epi_fmaps( with open(scan_params, "r") as f: scan_params = json.load(f) if "PhaseEncodingDirection" in scan_params: + from CPAC.utils.datatypes import PHASE_ENCODING_DIRECTIONS + epi_pedir: str | bytes = scan_params["PhaseEncodingDirection"] if isinstance(epi_pedir, bytes): epi_pedir = epi_pedir.decode("utf-8") + assert ( + epi_pedir in PHASE_ENCODING_DIRECTIONS + ), f"PhaseEncodingDirection {epi_pedir} not valid (should be one of {PHASE_ENCODING_DIRECTIONS})" if epi_pedir == bold_pedir: same_pe_epi = epi_scan elif epi_pedir[0] == bold_pedir[0]: diff --git a/CPAC/utils/datatypes.py b/CPAC/utils/datatypes.py index 2b29d8741f..ffd77b8e1e 100644 --- a/CPAC/utils/datatypes.py +++ b/CPAC/utils/datatypes.py @@ -68,3 +68,8 @@ def __init__(self, *args, **kwargs): else: args = ([args[0]],) list.__init__(self, *args, **kwargs) + + +PHASE_ENCODING_DIRECTIONS: list[str] = [ + f"{i}{sign}" for i in ["i", "j", "k"] for sign in ["", "-"] +] diff --git a/CPAC/utils/tests/test_bids_utils.py b/CPAC/utils/tests/test_bids_utils.py index 2b7267af94..2e70d46366 100644 --- a/CPAC/utils/tests/test_bids_utils.py +++ b/CPAC/utils/tests/test_bids_utils.py @@ -1,4 +1,4 @@ -# Copyright (C) 2021-2024 C-PAC Developers +# Copyright (C) 2021-2025 C-PAC Developers # This file is part of C-PAC. @@ -19,6 +19,7 @@ from importlib import resources import os from subprocess import run +from typing import Optional import pytest import yaml @@ -33,6 +34,7 @@ load_yaml_config, sub_list_filter_by_labels, ) +from CPAC.utils.datatypes import PHASE_ENCODING_DIRECTIONS from CPAC.utils.monitoring.custom_logging import getLogger logger = getLogger("CPAC.utils.tests") @@ -194,3 +196,21 @@ def test_sub_list_filter_by_labels(t1w_label, bold_label, participant_label): ) else: assert all(len(sub.get("func")) in [0, 5] for sub in sub_list) + + +@pytest.mark.parametrize( + "bids_dir,participant_labels", [("dev/circleci_data/test_data", ["NDARAB348EWR"])] +) +def test_scan_parameter_type( + bids_dir: str, participant_labels: Optional[list[str]] +) -> None: + """Test that scan parameter types are correctly interpreted.""" + data_config = create_cpac_data_config(bids_dir, participant_labels) + assert len(data_config) == 1 + if "fmap" in data_config[0]: + assert ( + data_config[0]["fmap"]["epi_PA"]["scan_parameters"][ + "PhaseEncodingDirection" + ] + in PHASE_ENCODING_DIRECTIONS + ) diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json new file mode 100644 index 0000000000..ca527ef67f --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json @@ -0,0 +1,68 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 320, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ANAT_T1W-RU", + "RepetitionTime": 2.5, + "PhaseEncodingSteps": 319, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 0.8, + "DwellTime": 1.2e-05, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "SAR": 0.0837998, + "PulseSequenceDetails": "%SiemensSeq%_tfl", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 320, + "FlipAngle": 8, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "ANAT_T1W-RU", + "PartialFourier": 1, + "ShimSetting": [ + 190, + -10383, + -5869, + 94, + -9, + -40, + -17, + 2 + ], + "PatientPosition": "HFS", + "SequenceName": "_tfl3d1_16ns", + "MagneticFieldStrength": 3, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "NORM" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.00315, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 320, + "PixelBandwidth": 130, + "ScanOptions": "IR", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json new file mode 100644 index 0000000000..ca527ef67f --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json @@ -0,0 +1,68 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 320, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ANAT_T1W-RU", + "RepetitionTime": 2.5, + "PhaseEncodingSteps": 319, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 0.8, + "DwellTime": 1.2e-05, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "SAR": 0.0837998, + "PulseSequenceDetails": "%SiemensSeq%_tfl", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 320, + "FlipAngle": 8, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "ANAT_T1W-RU", + "PartialFourier": 1, + "ShimSetting": [ + 190, + -10383, + -5869, + 94, + -9, + -40, + -17, + 2 + ], + "PatientPosition": "HFS", + "SequenceName": "_tfl3d1_16ns", + "MagneticFieldStrength": 3, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "NORM" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.00315, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 320, + "PixelBandwidth": 130, + "ScanOptions": "IR", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json new file mode 100644 index 0000000000..3f74d6e9bf --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json @@ -0,0 +1,68 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T2w_SPC_vNav", + "RepetitionTime": 3.2, + "BodyPartExamined": "BRAIN", + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 227, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "EchoTrainLength": 190, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "NORM" + ], + "SeriesDescription": "ABCD_T2w_SPC_vNav", + "SAR": 0.130135, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "SE", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 120, + "PulseSequenceDetails": "%CustomerSeq%_tse_vfl_mgh_epinav_ABCD", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "spc_200ns", + "ReceiveCoilName": "Head_32", + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.565, + "SequenceVariant": "SK_SP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "PFP", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json new file mode 100644 index 0000000000..0d50425f95 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json @@ -0,0 +1,68 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T1w_MPR_vNAV", + "RepetitionTime": 2.5, + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 255, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "NORM" + ], + "SeriesDescription": "ABCD_T1w_MPR_vNAV", + "SAR": 0.0593795, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 8, + "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "tfl3d1_16ns", + "ReceiveCoilName": "Head_32", + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.00288, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "IR_WE", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json new file mode 100644 index 0000000000..0d50425f95 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json @@ -0,0 +1,68 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T1w_MPR_vNAV", + "RepetitionTime": 2.5, + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 255, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "NORM" + ], + "SeriesDescription": "ABCD_T1w_MPR_vNAV", + "SAR": 0.0593795, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 8, + "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "tfl3d1_16ns", + "ReceiveCoilName": "Head_32", + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.00288, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "IR_WE", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json new file mode 100644 index 0000000000..d3db31a41f --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json @@ -0,0 +1,67 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T2w_SPC_vNav", + "RepetitionTime": 3.2, + "EchoTrainLength": 190, + "PhaseEncodingSteps": 227, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "SAR": 0.130135, + "PulseSequenceDetails": "%CustomerSeq%_tse_vfl_mgh_epinav_ABCD", + "ScanningSequence": "SE", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 120, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "ABCD_T2w_SPC_vNav", + "PartialFourier": 1, + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "spc_200ns", + "MagneticFieldStrength": 3, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.565, + "SequenceVariant": "SK_SP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "PFP", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json new file mode 100644 index 0000000000..f9738c9681 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json @@ -0,0 +1,67 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T1w_MPR_vNAV", + "RepetitionTime": 2.5, + "PhaseEncodingSteps": 255, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "SAR": 0.0593795, + "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 8, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "ABCD_T1w_MPR_vNAV", + "PartialFourier": 1, + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "tfl3d1_16ns", + "MagneticFieldStrength": 3, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.00288, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "IR_WE", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json new file mode 100644 index 0000000000..f9738c9681 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json @@ -0,0 +1,67 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "ROW", + "InversionTime": 1.06, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 256, + "ImageOrientationPatientDICOM": [ + 0.0436415, + 0.999047, + -2.19496e-08, + -0.0400786, + 0.00175073, + -0.999195 + ], + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "ABCD_T1w_MPR_vNAV", + "RepetitionTime": 2.5, + "PhaseEncodingSteps": 255, + "MRAcquisitionType": "3D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1, + "DwellTime": 8.1e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "SAR": 0.0593795, + "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", + "ScanningSequence": "GR_IR", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 256, + "FlipAngle": 8, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "ABCD_T1w_MPR_vNAV", + "PartialFourier": 1, + "ShimSetting": [ + 186, + -10422, + -5600, + 438, + 102, + -137, + -119, + -36 + ], + "PatientPosition": "HFS", + "SequenceName": "tfl3d1_16ns", + "MagneticFieldStrength": 3, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.00288, + "SequenceVariant": "SK_SP_MP", + "PhaseResolution": 1, + "BaseResolution": 256, + "PixelBandwidth": 240, + "ScanOptions": "IR_WE", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json new file mode 100644 index 0000000000..0ab923198d --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json @@ -0,0 +1,78 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "VendorReportedEchoSpacing": 0.00078, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB3_PE4", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 104, + "ImageOrientationPatientDICOM": [ + 1, + 0, + 0, + 0, + 1, + 0 + ], + "EffectiveEchoSpacing": 0.000389997, + "TotalReadoutTime": 0.0401697, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_DKI", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 24.655, + "RepetitionTime": 3.32, + "EchoTrainLength": 51, + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 103, + "MRAcquisitionType": "2D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1.8, + "DwellTime": 3.3e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000779995, + "SAR": 0.426562, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 104, + "FlipAngle": 90, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_DKI_TRACEW", + "PartialFourier": 1, + "ShimSetting": [ + 182, + -10388, + -5574, + 486, + 91, + 36, + -127, + -34 + ], + "PatientPosition": "HFS", + "SequenceName": "ep_b1000t", + "SpacingBetweenSlices": 1.8, + "ImageType": [ + "DERIVED", + "PRIMARY", + "DIFFUSION", + "TRACEW", + "MB", + "ND" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.1002, + "SequenceVariant": "SK_SS", + "PhaseResolution": 1, + "BaseResolution": 104, + "PixelBandwidth": 1455, + "ScanOptions": "FS", + "RawImage": false, + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json new file mode 100644 index 0000000000..f9f2224255 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json @@ -0,0 +1,153 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "VendorReportedEchoSpacing": 0.00078, + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB3_PE4", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 104, + "ImageOrientationPatientDICOM": [ + 1, + 0, + 0, + 0, + 1, + 0 + ], + "EffectiveEchoSpacing": 0.000389997, + "TotalReadoutTime": 0.0401697, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_DKI", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 24.655, + "RepetitionTime": 3.32, + "MultibandAccelerationFactor": 3, + "PhaseEncodingSteps": 103, + "MRAcquisitionType": "2D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1.8, + "DwellTime": 3.3e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000779995, + "SAR": 0.426562, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 104, + "FlipAngle": 90, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_DKI", + "PartialFourier": 1, + "ShimSetting": [ + 182, + -10388, + -5574, + 486, + 91, + 36, + -127, + -34 + ], + "PatientPosition": "HFS", + "SequenceName": "ep_b0", + "MagneticFieldStrength": 3, + "SpacingBetweenSlices": 1.8, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "DIFFUSION", + "NONE", + "MB", + "ND", + "MOSAIC" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.1002, + "SequenceVariant": "SK_SS", + "SliceTiming": [ + 0, + 1.5125, + 3.025, + 1.2375, + 2.75, + 0.9625, + 2.475, + 0.6875, + 2.2, + 0.4125, + 1.925, + 0.1375, + 1.65, + 3.1625, + 1.375, + 2.8875, + 1.1, + 2.6125, + 0.825, + 2.3375, + 0.55, + 2.0625, + 0.275, + 1.7875, + 0, + 1.5125, + 3.025, + 1.2375, + 2.75, + 0.9625, + 2.475, + 0.6875, + 2.2, + 0.4125, + 1.925, + 0.1375, + 1.65, + 3.1625, + 1.375, + 2.8875, + 1.1, + 2.6125, + 0.825, + 2.3375, + 0.55, + 2.0625, + 0.275, + 1.7875, + 0, + 1.5125, + 3.025, + 1.2375, + 2.75, + 0.9625, + 2.475, + 0.6875, + 2.2, + 0.4125, + 1.925, + 0.1375, + 1.65, + 3.1625, + 1.375, + 2.8875, + 1.1, + 2.6125, + 0.825, + 2.3375, + 0.55, + 2.0625, + 0.275, + 1.7875 + ], + "PhaseResolution": 1, + "EchoTrainLength": 51, + "BaseResolution": 104, + "PixelBandwidth": 1455, + "ScanOptions": "FS", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json new file mode 100644 index 0000000000..4caf86e909 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json @@ -0,0 +1,77 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "SequenceName": "ep_b0", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB3_PE4_SENSE1", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 104, + "ImageOrientationPatientDICOM": [ + 1, + 0, + 0, + 0, + 1, + 0 + ], + "EffectiveEchoSpacing": 0.000389997, + "TotalReadoutTime": 0.0401697, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_dMRI_DistortionMap_AP", + "BandwidthPerPixelPhaseEncode": 24.655, + "RepetitionTime": 3.32, + "BodyPartExamined": "BRAIN", + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 103, + "MRAcquisitionType": "2D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1.8, + "DwellTime": 3.3e-06, + "TxRefAmp": 212.939, + "EchoTrainLength": 51, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "DIFFUSION", + "NONE", + "MB", + "ND" + ], + "DerivedVendorReportedEchoSpacing": 0.000779995, + "SeriesDescription": "cmrr_dMRI_DistortionMap_AP", + "SAR": 0.133927, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "StationName": "MRTRIO3TX72", + "ReconMatrixPE": 104, + "FlipAngle": 90, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 182, + -10388, + -5574, + 486, + 91, + 36, + -127, + -34 + ], + "PatientPosition": "HFS", + "VendorReportedEchoSpacing": 0.00078, + "ReceiveCoilName": "Head_32", + "SpacingBetweenSlices": 1.8, + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.1002, + "SequenceVariant": "SK_SS", + "PhaseResolution": 1, + "BaseResolution": 104, + "PhaseEncodingDirection": "j-", + "ScanOptions": "FS", + "SoftwareVersions": "syngo_MR_E11", + "PixelBandwidth": 1455, + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json new file mode 100644 index 0000000000..5887cd8486 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json @@ -0,0 +1,135 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.00049999, + "TotalReadoutTime": 0.0414992, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_fMRI_DistortionMap_AP", + "BandwidthPerPixelPhaseEncode": 23.81, + "RepetitionTime": 5.301, + "BodyPartExamined": "BRAIN", + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "EchoTrainLength": 84, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "MOSAIC" + ], + "DerivedVendorReportedEchoSpacing": 0.00049999, + "SeriesDescription": "cmrr_fMRI_DistortionMap_AP", + "SAR": 0.354174, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "StationName": "MRTRIO3TX72", + "ReconMatrixPE": 84, + "FlipAngle": 90, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_se", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 181, + -10393, + -5556, + 554, + 76, + 11, + -137, + -39 + ], + "PatientPosition": "HFS", + "SequenceName": "epse2d1_84", + "ReceiveCoilName": "Head_32", + "SpacingBetweenSlices": 2.4, + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.0512, + "SequenceVariant": "SK", + "SliceTiming": [ + 2.64, + 0, + 2.73, + 0.0875, + 2.8175, + 0.1775, + 2.905, + 0.265, + 2.9925, + 0.3525, + 3.08, + 0.44, + 3.17, + 0.5275, + 3.2575, + 0.6175, + 3.345, + 0.705, + 3.4325, + 0.7925, + 3.52, + 0.88, + 3.61, + 0.9675, + 3.6975, + 1.0575, + 3.785, + 1.145, + 3.8725, + 1.2325, + 3.96, + 1.32, + 4.05, + 1.4075, + 4.1375, + 1.4975, + 4.225, + 1.585, + 4.3125, + 1.6725, + 4.4, + 1.76, + 4.49, + 1.85, + 4.5775, + 1.9375, + 4.665, + 2.025, + 4.7525, + 2.1125, + 4.84, + 2.2, + 4.93, + 2.29, + 5.0175, + 2.3775, + 5.105, + 2.465, + 5.1925, + 2.5525 + ], + "PhaseResolution": 1, + "BaseResolution": 84, + "PhaseEncodingDirection": "j-", + "ScanOptions": "FS", + "SoftwareVersions": "syngo_MR_E11", + "PixelBandwidth": 2290, + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json new file mode 100644 index 0000000000..1e0cf8aa2a --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json @@ -0,0 +1,77 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "SequenceName": "ep_b0", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB3_PE4_SENSE1", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 104, + "ImageOrientationPatientDICOM": [ + 1, + 0, + 0, + 0, + 1, + 0 + ], + "EffectiveEchoSpacing": 0.000389997, + "TotalReadoutTime": 0.0401697, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_dMRI_DistortionMap_PA", + "BandwidthPerPixelPhaseEncode": 24.655, + "RepetitionTime": 3.32, + "BodyPartExamined": "BRAIN", + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 103, + "MRAcquisitionType": "2D", + "ParallelReductionFactorInPlane": 2, + "SliceThickness": 1.8, + "DwellTime": 3.3e-06, + "TxRefAmp": 212.939, + "EchoTrainLength": 51, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "DIFFUSION", + "NONE", + "MB", + "ND" + ], + "DerivedVendorReportedEchoSpacing": 0.000779995, + "SeriesDescription": "cmrr_dMRI_DistortionMap_PA", + "SAR": 0.133927, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "StationName": "MRTRIO3TX72", + "ReconMatrixPE": 104, + "FlipAngle": 90, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 182, + -10388, + -5574, + 486, + 91, + 36, + -127, + -34 + ], + "PatientPosition": "HFS", + "VendorReportedEchoSpacing": 0.00078, + "ReceiveCoilName": "Head_32", + "SpacingBetweenSlices": 1.8, + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.1002, + "SequenceVariant": "SK_SS", + "PhaseResolution": 1, + "BaseResolution": 104, + "PhaseEncodingDirection": "j", + "ScanOptions": "FS", + "SoftwareVersions": "syngo_MR_E11", + "PixelBandwidth": 1455, + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json new file mode 100644 index 0000000000..9e98a36460 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json @@ -0,0 +1,135 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.00049999, + "TotalReadoutTime": 0.0414992, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_fMRI_DistortionMap_PA", + "BandwidthPerPixelPhaseEncode": 23.81, + "RepetitionTime": 5.301, + "BodyPartExamined": "BRAIN", + "MagneticFieldStrength": 3, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "EchoTrainLength": 84, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "ND", + "MOSAIC" + ], + "DerivedVendorReportedEchoSpacing": 0.00049999, + "SeriesDescription": "cmrr_fMRI_DistortionMap_PA", + "SAR": 0.354174, + "ConversionSoftware": "dcm2niix", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "PercentPhaseFOV": 100, + "StationName": "MRTRIO3TX72", + "ReconMatrixPE": 84, + "FlipAngle": 90, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_se", + "PartialFourier": 1, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "ShimSetting": [ + 181, + -10393, + -5556, + 554, + 76, + 11, + -137, + -39 + ], + "PatientPosition": "HFS", + "SequenceName": "epse2d1_84", + "ReceiveCoilName": "Head_32", + "SpacingBetweenSlices": 2.4, + "ReceiveCoilActiveElements": "HEA;HEP", + "EchoTime": 0.0512, + "SequenceVariant": "SK", + "SliceTiming": [ + 2.64, + 0, + 2.7275, + 0.0875, + 2.815, + 0.175, + 2.9025, + 0.2625, + 2.9925, + 0.35, + 3.08, + 0.44, + 3.1675, + 0.5275, + 3.255, + 0.615, + 3.3425, + 0.7025, + 3.4325, + 0.79, + 3.52, + 0.88, + 3.6075, + 0.9675, + 3.695, + 1.055, + 3.7825, + 1.1425, + 3.8725, + 1.2325, + 3.96, + 1.32, + 4.0475, + 1.4075, + 4.135, + 1.495, + 4.2225, + 1.5825, + 4.3125, + 1.6725, + 4.4, + 1.76, + 4.4875, + 1.8475, + 4.575, + 1.935, + 4.6625, + 2.0225, + 4.7525, + 2.1125, + 4.84, + 2.2, + 4.9275, + 2.2875, + 5.015, + 2.375, + 5.1025, + 2.4625, + 5.1925, + 2.5525 + ], + "PhaseResolution": 1, + "BaseResolution": 84, + "PhaseEncodingDirection": "j", + "ScanOptions": "FS", + "SoftwareVersions": "syngo_MR_E11", + "PixelBandwidth": 2290, + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json new file mode 100644 index 0000000000..6ea5d96cf1 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json @@ -0,0 +1,139 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB6_PE3_LB", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.000589987, + "TotalReadoutTime": 0.0489689, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_MOVIE1", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 20.178, + "RepetitionTime": 0.8, + "MultibandAccelerationFactor": 6, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000589987, + "SAR": 0.102514, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 84, + "FlipAngle": 31, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_MOVIE1", + "PartialFourier": 1, + "ShimSetting": [ + 181, + -10393, + -5557, + 553, + 76, + 11, + -136, + -38 + ], + "PatientPosition": "HFS", + "SequenceName": "epfid2d1_84", + "MagneticFieldStrength": 3, + "TaskName": "Movie", + "SpacingBetweenSlices": 2.4, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "ND", + "MOSAIC" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.03, + "SequenceVariant": "SK_SS", + "SliceTiming": [ + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325 + ], + "PhaseResolution": 1, + "EchoTrainLength": 84, + "BaseResolution": 84, + "PixelBandwidth": 2290, + "ScanOptions": "FS_EXT", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json new file mode 100644 index 0000000000..709eff0eea --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json @@ -0,0 +1,139 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB6_PE3_LB", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.000589987, + "TotalReadoutTime": 0.0489689, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_MOVIE2", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 20.178, + "RepetitionTime": 0.8, + "MultibandAccelerationFactor": 6, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000589987, + "SAR": 0.101548, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 84, + "FlipAngle": 31, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_MOVIE2", + "PartialFourier": 1, + "ShimSetting": [ + 181, + -10393, + -5557, + 553, + 76, + 11, + -136, + -38 + ], + "PatientPosition": "HFS", + "SequenceName": "epfid2d1_84", + "MagneticFieldStrength": 3, + "TaskName": "Movie", + "SpacingBetweenSlices": 2.4, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "ND", + "MOSAIC" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.03, + "SequenceVariant": "SK_SS", + "SliceTiming": [ + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235, + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235, + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235, + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235, + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235, + 0, + 0.5475, + 0.3125, + 0.08, + 0.625, + 0.39, + 0.1575, + 0.7025, + 0.47, + 0.235 + ], + "PhaseResolution": 1, + "EchoTrainLength": 84, + "BaseResolution": 84, + "PixelBandwidth": 2290, + "ScanOptions": "FS_EXT", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json new file mode 100644 index 0000000000..4eed7c4cd3 --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json @@ -0,0 +1,139 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB6_PE3_LB", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.000589987, + "TotalReadoutTime": 0.0489689, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_PEER1", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 20.178, + "RepetitionTime": 0.8, + "MultibandAccelerationFactor": 6, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000589987, + "SAR": 0.100383, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 84, + "FlipAngle": 31, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_PEER1", + "PartialFourier": 1, + "ShimSetting": [ + 181, + -10393, + -5557, + 553, + 76, + 11, + -136, + -38 + ], + "PatientPosition": "HFS", + "SequenceName": "epfid2d1_84", + "MagneticFieldStrength": 3, + "TaskName": "PEER", + "SpacingBetweenSlices": 2.4, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "ND", + "MOSAIC" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.03, + "SequenceVariant": "SK_SS", + "SliceTiming": [ + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325 + ], + "PhaseResolution": 1, + "EchoTrainLength": 84, + "BaseResolution": 84, + "PixelBandwidth": 2290, + "ScanOptions": "FS_EXT", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json new file mode 100644 index 0000000000..cf0471cddd --- /dev/null +++ b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json @@ -0,0 +1,139 @@ +{ + "InPlanePhaseEncodingDirectionDICOM": "COL", + "ConsistencyInfo": "N4_VE11B_LATEST_20150530", + "ImageComments": "Unaliased_MB6_PE3_LB", + "ProcedureStepDescription": "CMI_HBN-CBIC", + "DeviceSerialNumber": "67080", + "AcquisitionMatrixPE": 84, + "ImageOrientationPatientDICOM": [ + 0.998388, + -0.0154639, + -0.0546089, + 2.66905e-08, + 0.962167, + -0.272462 + ], + "EffectiveEchoSpacing": 0.000589987, + "TotalReadoutTime": 0.0489689, + "ManufacturersModelName": "Prisma_fit", + "ProtocolName": "cmrr_PEER3", + "PhaseEncodingDirection": "j-", + "BandwidthPerPixelPhaseEncode": 20.178, + "RepetitionTime": 0.8, + "MultibandAccelerationFactor": 6, + "PhaseEncodingSteps": 84, + "MRAcquisitionType": "2D", + "SliceThickness": 2.4, + "DwellTime": 2.6e-06, + "TxRefAmp": 212.939, + "BodyPartExamined": "BRAIN", + "ReceiveCoilActiveElements": "HEA;HEP", + "DerivedVendorReportedEchoSpacing": 0.000589987, + "SAR": 0.100383, + "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", + "ScanningSequence": "EP", + "Manufacturer": "Siemens", + "ConversionSoftware": "dcm2niix", + "PercentPhaseFOV": 100, + "ReconMatrixPE": 84, + "FlipAngle": 31, + "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", + "SeriesDescription": "cmrr_PEER3", + "PartialFourier": 1, + "ShimSetting": [ + 181, + -10393, + -5557, + 553, + 76, + 11, + -136, + -38 + ], + "PatientPosition": "HFS", + "SequenceName": "epfid2d1_84", + "MagneticFieldStrength": 3, + "TaskName": "PEER", + "SpacingBetweenSlices": 2.4, + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "ND", + "MOSAIC" + ], + "ReceiveCoilName": "Head_32", + "EchoTime": 0.03, + "SequenceVariant": "SK_SS", + "SliceTiming": [ + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325, + 0, + 0.545, + 0.31, + 0.0775, + 0.6225, + 0.39, + 0.155, + 0.7, + 0.4675, + 0.2325 + ], + "PhaseResolution": 1, + "EchoTrainLength": 84, + "BaseResolution": 84, + "PixelBandwidth": 2290, + "ScanOptions": "FS_EXT", + "SoftwareVersions": "syngo_MR_E11", + "StationName": "MRTRIO3TX72", + "Modality": "MR" +} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz new file mode 100644 index 0000000000..e69de29bb2 From d1e6708a8cf721db36158b18c9fd53966737dacb Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Mon, 13 Oct 2025 16:06:19 -0400 Subject: [PATCH 2/5] :necktie: Change sidecar values from bytestrings to strings --- CPAC/utils/bids_utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CPAC/utils/bids_utils.py b/CPAC/utils/bids_utils.py index d52abebd45..6dac91a7e8 100755 --- a/CPAC/utils/bids_utils.py +++ b/CPAC/utils/bids_utils.py @@ -324,7 +324,10 @@ def bids_retrieve_params(bids_config_dict, f_dict, dbg=False): for k, v in params.items(): if isinstance(v, str): - params[k] = v.encode("ascii", errors="ignore") + # Force all strings to be ASCII-compatible UTF-8 + params[k] = v.encode("ascii", errors="ignore").decode( + "utf-8", errors="ignore" + ) return params From 0686a8cca27c7a0c2935d7aa1b80859d450c424d Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Mon, 13 Oct 2025 16:14:57 -0400 Subject: [PATCH 3/5] =?UTF-8?q?:speech=5Fballoon:=20Update=20=C2=A9=20date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CPAC/utils/bids_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPAC/utils/bids_utils.py b/CPAC/utils/bids_utils.py index 6dac91a7e8..3303ebb30a 100755 --- a/CPAC/utils/bids_utils.py +++ b/CPAC/utils/bids_utils.py @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2024 C-PAC Developers +# Copyright (C) 2016-2025 C-PAC Developers # This file is part of C-PAC. From 64128055ef8527da77b505b27c5453b680abf1ed Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Tue, 14 Oct 2025 14:00:42 -0400 Subject: [PATCH 4/5] :truck: Get test data from S3 instead of keeping in repo --- CPAC/utils/interfaces/datasink.py | 3 +- CPAC/utils/tests/test_bids_utils.py | 66 +++++++- .../sub-NDARAB348EWR_acq-HCP_run-01_T1w.json | 68 -------- ...sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-HCP_run-02_T1w.json | 68 -------- ...sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNavNorm_T2w.json | 68 -------- .../sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz | 0 ...-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json | 68 -------- ...DARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz | 0 ...-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json | 68 -------- ...DARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz | 0 .../anat/sub-NDARAB348EWR_acq-VNav_T2w.json | 67 -------- .../anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNav_run-01_T1w.json | 67 -------- ...ub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-VNav_run-02_T1w.json | 67 -------- ...ub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz | 0 .../sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json | 78 --------- ...ub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec | 0 .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.json | 153 ------------------ .../dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz | 0 .../sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json | 77 --------- ...sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json | 135 ---------------- ...ub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json | 77 --------- ...sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz | 0 .../sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json | 135 ---------------- ...ub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz | 0 .../sub-NDARAB348EWR_task-movieDM_bold.json | 139 ---------------- .../sub-NDARAB348EWR_task-movieDM_bold.nii.gz | 0 .../sub-NDARAB348EWR_task-movieTP_bold.json | 139 ---------------- .../sub-NDARAB348EWR_task-movieTP_bold.nii.gz | 0 ...sub-NDARAB348EWR_task-peer_run-1_bold.json | 139 ---------------- ...b-NDARAB348EWR_task-peer_run-1_bold.nii.gz | 0 ...sub-NDARAB348EWR_task-peer_run-3_bold.json | 139 ---------------- ...b-NDARAB348EWR_task-peer_run-3_bold.nii.gz | 0 40 files changed, 61 insertions(+), 1760 deletions(-) delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json delete mode 100644 dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz diff --git a/CPAC/utils/interfaces/datasink.py b/CPAC/utils/interfaces/datasink.py index c6c77d6c65..fcfbd451b0 100644 --- a/CPAC/utils/interfaces/datasink.py +++ b/CPAC/utils/interfaces/datasink.py @@ -30,7 +30,7 @@ # Prior to release 0.12, Nipype was licensed under a BSD license. -# Modifications Copyright (C) 2019-2024 C-PAC Developers +# Modifications Copyright (C) 2019-2025 C-PAC Developers # This file is part of C-PAC. """Interface that allow interaction with data. @@ -139,6 +139,7 @@ def _fetch_bucket(self, bucket_name): # Import packages try: import boto3 + import boto3.session import botocore except ImportError: err_msg = "Boto3 package is not installed - install boto3 and try again." diff --git a/CPAC/utils/tests/test_bids_utils.py b/CPAC/utils/tests/test_bids_utils.py index 2e70d46366..1c371af185 100644 --- a/CPAC/utils/tests/test_bids_utils.py +++ b/CPAC/utils/tests/test_bids_utils.py @@ -17,10 +17,15 @@ """Tests for bids_utils.""" from importlib import resources +from itertools import permutations import os +from pathlib import Path from subprocess import run -from typing import Optional +from warnings import warn +import boto3 +from botocore import UNSIGNED +from botocore.client import Config import pytest import yaml @@ -198,13 +203,10 @@ def test_sub_list_filter_by_labels(t1w_label, bold_label, participant_label): assert all(len(sub.get("func")) in [0, 5] for sub in sub_list) -@pytest.mark.parametrize( - "bids_dir,participant_labels", [("dev/circleci_data/test_data", ["NDARAB348EWR"])] -) -def test_scan_parameter_type( - bids_dir: str, participant_labels: Optional[list[str]] -) -> None: +@pytest.mark.parametrize("participant_labels", [["NDARAB348EWR"]]) +def test_scan_parameter_type(tmp_path: Path, participant_labels: list[str]) -> None: """Test that scan parameter types are correctly interpreted.""" + bids_dir = _gather_scan_parameter_test_data(tmp_path, participant_labels) data_config = create_cpac_data_config(bids_dir, participant_labels) assert len(data_config) == 1 if "fmap" in data_config[0]: @@ -214,3 +216,53 @@ def test_scan_parameter_type( ] in PHASE_ENCODING_DIRECTIONS ) + + +def _gather_scan_parameter_test_data( + root_dir: Path, participant_labels: list[str] +) -> str: + """Create a test BIDS dataset with structure for the given subject. + + Downloads JSON files from S3 and creates empty placeholder files for imaging data. + """ + s3_bucket = "fcp-indi" + bids_dir = root_dir / "data" + for _participant in participant_labels: + participant = ( + f"sub-{_participant}" + if not _participant.startswith("sub-") + else _participant + ) + s3_prefix = f"data/Projects/HBN/MRI/Site-CBIC/{participant}" + s3_client = boto3.client("s3", config=Config(signature_version=UNSIGNED)) + files = { + "anat": [ + f"{participant}_acq-HCP_run-01_T1w", + ], + "fmap": [ + f"{participant}_dir-{direction}_acq-{acq}_epi" + for direction in [ + "".join(direction) for direction in permutations(["A", "P"], 2) + ] + for acq in ["dwi", "fMRI"] + ], + "func": [ + f"{participant}_task-movieDM_bold", + ], + } + for modality, file_list in files.items(): + modality_dir = bids_dir / participant / modality + modality_dir.mkdir(parents=True, exist_ok=True) + for file_base in file_list: + # Download JSON files from S3 + json_file = modality_dir / f"{file_base}.json" + s3_key = f"{s3_prefix}/{modality}/{file_base}.json" + try: + s3_client.download_file(s3_bucket, s3_key, str(json_file)) + except Exception as e: + # If download fails, create empty JSON + warn("Failed to download %s: %s" % (s3_key, e)) + json_file.write_text("{}") + nii_file = modality_dir / f"{file_base}.nii.gz" + nii_file.touch() + return str(bids_dir) diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json deleted file mode 100644 index ca527ef67f..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 320, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ANAT_T1W-RU", - "RepetitionTime": 2.5, - "PhaseEncodingSteps": 319, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 0.8, - "DwellTime": 1.2e-05, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "SAR": 0.0837998, - "PulseSequenceDetails": "%SiemensSeq%_tfl", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 320, - "FlipAngle": 8, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "ANAT_T1W-RU", - "PartialFourier": 1, - "ShimSetting": [ - 190, - -10383, - -5869, - 94, - -9, - -40, - -17, - 2 - ], - "PatientPosition": "HFS", - "SequenceName": "_tfl3d1_16ns", - "MagneticFieldStrength": 3, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "NORM" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.00315, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 320, - "PixelBandwidth": 130, - "ScanOptions": "IR", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-01_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json deleted file mode 100644 index ca527ef67f..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 320, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ANAT_T1W-RU", - "RepetitionTime": 2.5, - "PhaseEncodingSteps": 319, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 0.8, - "DwellTime": 1.2e-05, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "SAR": 0.0837998, - "PulseSequenceDetails": "%SiemensSeq%_tfl", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 320, - "FlipAngle": 8, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "ANAT_T1W-RU", - "PartialFourier": 1, - "ShimSetting": [ - 190, - -10383, - -5869, - 94, - -9, - -40, - -17, - 2 - ], - "PatientPosition": "HFS", - "SequenceName": "_tfl3d1_16ns", - "MagneticFieldStrength": 3, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "NORM" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.00315, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 320, - "PixelBandwidth": 130, - "ScanOptions": "IR", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-HCP_run-02_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json deleted file mode 100644 index 3f74d6e9bf..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T2w_SPC_vNav", - "RepetitionTime": 3.2, - "BodyPartExamined": "BRAIN", - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 227, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "EchoTrainLength": 190, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "NORM" - ], - "SeriesDescription": "ABCD_T2w_SPC_vNav", - "SAR": 0.130135, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "SE", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 120, - "PulseSequenceDetails": "%CustomerSeq%_tse_vfl_mgh_epinav_ABCD", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "spc_200ns", - "ReceiveCoilName": "Head_32", - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.565, - "SequenceVariant": "SK_SP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "PFP", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_T2w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json deleted file mode 100644 index 0d50425f95..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T1w_MPR_vNAV", - "RepetitionTime": 2.5, - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 255, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "NORM" - ], - "SeriesDescription": "ABCD_T1w_MPR_vNAV", - "SAR": 0.0593795, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 8, - "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "tfl3d1_16ns", - "ReceiveCoilName": "Head_32", - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.00288, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "IR_WE", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-01_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json deleted file mode 100644 index 0d50425f95..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T1w_MPR_vNAV", - "RepetitionTime": 2.5, - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 255, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "NORM" - ], - "SeriesDescription": "ABCD_T1w_MPR_vNAV", - "SAR": 0.0593795, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 8, - "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "tfl3d1_16ns", - "ReceiveCoilName": "Head_32", - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.00288, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "IR_WE", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNavNorm_run-02_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json deleted file mode 100644 index d3db31a41f..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T2w_SPC_vNav", - "RepetitionTime": 3.2, - "EchoTrainLength": 190, - "PhaseEncodingSteps": 227, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "SAR": 0.130135, - "PulseSequenceDetails": "%CustomerSeq%_tse_vfl_mgh_epinav_ABCD", - "ScanningSequence": "SE", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 120, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "ABCD_T2w_SPC_vNav", - "PartialFourier": 1, - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "spc_200ns", - "MagneticFieldStrength": 3, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.565, - "SequenceVariant": "SK_SP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "PFP", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_T2w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json deleted file mode 100644 index f9738c9681..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T1w_MPR_vNAV", - "RepetitionTime": 2.5, - "PhaseEncodingSteps": 255, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "SAR": 0.0593795, - "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 8, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "ABCD_T1w_MPR_vNAV", - "PartialFourier": 1, - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "tfl3d1_16ns", - "MagneticFieldStrength": 3, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.00288, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "IR_WE", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-01_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json deleted file mode 100644 index f9738c9681..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "ROW", - "InversionTime": 1.06, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 256, - "ImageOrientationPatientDICOM": [ - 0.0436415, - 0.999047, - -2.19496e-08, - -0.0400786, - 0.00175073, - -0.999195 - ], - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "ABCD_T1w_MPR_vNAV", - "RepetitionTime": 2.5, - "PhaseEncodingSteps": 255, - "MRAcquisitionType": "3D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1, - "DwellTime": 8.1e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "SAR": 0.0593795, - "PulseSequenceDetails": "%CustomerSeq%_tfl_mgh_epinav_ABCD", - "ScanningSequence": "GR_IR", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 256, - "FlipAngle": 8, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "ABCD_T1w_MPR_vNAV", - "PartialFourier": 1, - "ShimSetting": [ - 186, - -10422, - -5600, - 438, - 102, - -137, - -119, - -36 - ], - "PatientPosition": "HFS", - "SequenceName": "tfl3d1_16ns", - "MagneticFieldStrength": 3, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.00288, - "SequenceVariant": "SK_SP_MP", - "PhaseResolution": 1, - "BaseResolution": 256, - "PixelBandwidth": 240, - "ScanOptions": "IR_WE", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/anat/sub-NDARAB348EWR_acq-VNav_run-02_T1w.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json deleted file mode 100644 index 0ab923198d..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "VendorReportedEchoSpacing": 0.00078, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB3_PE4", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 104, - "ImageOrientationPatientDICOM": [ - 1, - 0, - 0, - 0, - 1, - 0 - ], - "EffectiveEchoSpacing": 0.000389997, - "TotalReadoutTime": 0.0401697, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_DKI", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 24.655, - "RepetitionTime": 3.32, - "EchoTrainLength": 51, - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 103, - "MRAcquisitionType": "2D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1.8, - "DwellTime": 3.3e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000779995, - "SAR": 0.426562, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 104, - "FlipAngle": 90, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_DKI_TRACEW", - "PartialFourier": 1, - "ShimSetting": [ - 182, - -10388, - -5574, - 486, - 91, - 36, - -127, - -34 - ], - "PatientPosition": "HFS", - "SequenceName": "ep_b1000t", - "SpacingBetweenSlices": 1.8, - "ImageType": [ - "DERIVED", - "PRIMARY", - "DIFFUSION", - "TRACEW", - "MB", - "ND" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.1002, - "SequenceVariant": "SK_SS", - "PhaseResolution": 1, - "BaseResolution": 104, - "PixelBandwidth": 1455, - "ScanOptions": "FS", - "RawImage": false, - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dirTRACEW_dwi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bval deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.bvec deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json deleted file mode 100644 index f9f2224255..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "VendorReportedEchoSpacing": 0.00078, - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB3_PE4", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 104, - "ImageOrientationPatientDICOM": [ - 1, - 0, - 0, - 0, - 1, - 0 - ], - "EffectiveEchoSpacing": 0.000389997, - "TotalReadoutTime": 0.0401697, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_DKI", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 24.655, - "RepetitionTime": 3.32, - "MultibandAccelerationFactor": 3, - "PhaseEncodingSteps": 103, - "MRAcquisitionType": "2D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1.8, - "DwellTime": 3.3e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000779995, - "SAR": 0.426562, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 104, - "FlipAngle": 90, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_DKI", - "PartialFourier": 1, - "ShimSetting": [ - 182, - -10388, - -5574, - 486, - 91, - 36, - -127, - -34 - ], - "PatientPosition": "HFS", - "SequenceName": "ep_b0", - "MagneticFieldStrength": 3, - "SpacingBetweenSlices": 1.8, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "DIFFUSION", - "NONE", - "MB", - "ND", - "MOSAIC" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.1002, - "SequenceVariant": "SK_SS", - "SliceTiming": [ - 0, - 1.5125, - 3.025, - 1.2375, - 2.75, - 0.9625, - 2.475, - 0.6875, - 2.2, - 0.4125, - 1.925, - 0.1375, - 1.65, - 3.1625, - 1.375, - 2.8875, - 1.1, - 2.6125, - 0.825, - 2.3375, - 0.55, - 2.0625, - 0.275, - 1.7875, - 0, - 1.5125, - 3.025, - 1.2375, - 2.75, - 0.9625, - 2.475, - 0.6875, - 2.2, - 0.4125, - 1.925, - 0.1375, - 1.65, - 3.1625, - 1.375, - 2.8875, - 1.1, - 2.6125, - 0.825, - 2.3375, - 0.55, - 2.0625, - 0.275, - 1.7875, - 0, - 1.5125, - 3.025, - 1.2375, - 2.75, - 0.9625, - 2.475, - 0.6875, - 2.2, - 0.4125, - 1.925, - 0.1375, - 1.65, - 3.1625, - 1.375, - 2.8875, - 1.1, - 2.6125, - 0.825, - 2.3375, - 0.55, - 2.0625, - 0.275, - 1.7875 - ], - "PhaseResolution": 1, - "EchoTrainLength": 51, - "BaseResolution": 104, - "PixelBandwidth": 1455, - "ScanOptions": "FS", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/dwi/sub-NDARAB348EWR_acq-64dir_dwi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json deleted file mode 100644 index 4caf86e909..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "SequenceName": "ep_b0", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB3_PE4_SENSE1", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 104, - "ImageOrientationPatientDICOM": [ - 1, - 0, - 0, - 0, - 1, - 0 - ], - "EffectiveEchoSpacing": 0.000389997, - "TotalReadoutTime": 0.0401697, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_dMRI_DistortionMap_AP", - "BandwidthPerPixelPhaseEncode": 24.655, - "RepetitionTime": 3.32, - "BodyPartExamined": "BRAIN", - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 103, - "MRAcquisitionType": "2D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1.8, - "DwellTime": 3.3e-06, - "TxRefAmp": 212.939, - "EchoTrainLength": 51, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "DIFFUSION", - "NONE", - "MB", - "ND" - ], - "DerivedVendorReportedEchoSpacing": 0.000779995, - "SeriesDescription": "cmrr_dMRI_DistortionMap_AP", - "SAR": 0.133927, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "StationName": "MRTRIO3TX72", - "ReconMatrixPE": 104, - "FlipAngle": 90, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 182, - -10388, - -5574, - 486, - 91, - 36, - -127, - -34 - ], - "PatientPosition": "HFS", - "VendorReportedEchoSpacing": 0.00078, - "ReceiveCoilName": "Head_32", - "SpacingBetweenSlices": 1.8, - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.1002, - "SequenceVariant": "SK_SS", - "PhaseResolution": 1, - "BaseResolution": 104, - "PhaseEncodingDirection": "j-", - "ScanOptions": "FS", - "SoftwareVersions": "syngo_MR_E11", - "PixelBandwidth": 1455, - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-dwi_epi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json deleted file mode 100644 index 5887cd8486..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.00049999, - "TotalReadoutTime": 0.0414992, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_fMRI_DistortionMap_AP", - "BandwidthPerPixelPhaseEncode": 23.81, - "RepetitionTime": 5.301, - "BodyPartExamined": "BRAIN", - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "EchoTrainLength": 84, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "MOSAIC" - ], - "DerivedVendorReportedEchoSpacing": 0.00049999, - "SeriesDescription": "cmrr_fMRI_DistortionMap_AP", - "SAR": 0.354174, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "StationName": "MRTRIO3TX72", - "ReconMatrixPE": 84, - "FlipAngle": 90, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_se", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 181, - -10393, - -5556, - 554, - 76, - 11, - -137, - -39 - ], - "PatientPosition": "HFS", - "SequenceName": "epse2d1_84", - "ReceiveCoilName": "Head_32", - "SpacingBetweenSlices": 2.4, - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.0512, - "SequenceVariant": "SK", - "SliceTiming": [ - 2.64, - 0, - 2.73, - 0.0875, - 2.8175, - 0.1775, - 2.905, - 0.265, - 2.9925, - 0.3525, - 3.08, - 0.44, - 3.17, - 0.5275, - 3.2575, - 0.6175, - 3.345, - 0.705, - 3.4325, - 0.7925, - 3.52, - 0.88, - 3.61, - 0.9675, - 3.6975, - 1.0575, - 3.785, - 1.145, - 3.8725, - 1.2325, - 3.96, - 1.32, - 4.05, - 1.4075, - 4.1375, - 1.4975, - 4.225, - 1.585, - 4.3125, - 1.6725, - 4.4, - 1.76, - 4.49, - 1.85, - 4.5775, - 1.9375, - 4.665, - 2.025, - 4.7525, - 2.1125, - 4.84, - 2.2, - 4.93, - 2.29, - 5.0175, - 2.3775, - 5.105, - 2.465, - 5.1925, - 2.5525 - ], - "PhaseResolution": 1, - "BaseResolution": 84, - "PhaseEncodingDirection": "j-", - "ScanOptions": "FS", - "SoftwareVersions": "syngo_MR_E11", - "PixelBandwidth": 2290, - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-AP_acq-fMRI_epi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json deleted file mode 100644 index 1e0cf8aa2a..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "SequenceName": "ep_b0", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB3_PE4_SENSE1", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 104, - "ImageOrientationPatientDICOM": [ - 1, - 0, - 0, - 0, - 1, - 0 - ], - "EffectiveEchoSpacing": 0.000389997, - "TotalReadoutTime": 0.0401697, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_dMRI_DistortionMap_PA", - "BandwidthPerPixelPhaseEncode": 24.655, - "RepetitionTime": 3.32, - "BodyPartExamined": "BRAIN", - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 103, - "MRAcquisitionType": "2D", - "ParallelReductionFactorInPlane": 2, - "SliceThickness": 1.8, - "DwellTime": 3.3e-06, - "TxRefAmp": 212.939, - "EchoTrainLength": 51, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "DIFFUSION", - "NONE", - "MB", - "ND" - ], - "DerivedVendorReportedEchoSpacing": 0.000779995, - "SeriesDescription": "cmrr_dMRI_DistortionMap_PA", - "SAR": 0.133927, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "StationName": "MRTRIO3TX72", - "ReconMatrixPE": 104, - "FlipAngle": 90, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_diff", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 182, - -10388, - -5574, - 486, - 91, - 36, - -127, - -34 - ], - "PatientPosition": "HFS", - "VendorReportedEchoSpacing": 0.00078, - "ReceiveCoilName": "Head_32", - "SpacingBetweenSlices": 1.8, - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.1002, - "SequenceVariant": "SK_SS", - "PhaseResolution": 1, - "BaseResolution": 104, - "PhaseEncodingDirection": "j", - "ScanOptions": "FS", - "SoftwareVersions": "syngo_MR_E11", - "PixelBandwidth": 1455, - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-dwi_epi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json deleted file mode 100644 index 9e98a36460..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.00049999, - "TotalReadoutTime": 0.0414992, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_fMRI_DistortionMap_PA", - "BandwidthPerPixelPhaseEncode": 23.81, - "RepetitionTime": 5.301, - "BodyPartExamined": "BRAIN", - "MagneticFieldStrength": 3, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "EchoTrainLength": 84, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "ND", - "MOSAIC" - ], - "DerivedVendorReportedEchoSpacing": 0.00049999, - "SeriesDescription": "cmrr_fMRI_DistortionMap_PA", - "SAR": 0.354174, - "ConversionSoftware": "dcm2niix", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "PercentPhaseFOV": 100, - "StationName": "MRTRIO3TX72", - "ReconMatrixPE": 84, - "FlipAngle": 90, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_se", - "PartialFourier": 1, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "ShimSetting": [ - 181, - -10393, - -5556, - 554, - 76, - 11, - -137, - -39 - ], - "PatientPosition": "HFS", - "SequenceName": "epse2d1_84", - "ReceiveCoilName": "Head_32", - "SpacingBetweenSlices": 2.4, - "ReceiveCoilActiveElements": "HEA;HEP", - "EchoTime": 0.0512, - "SequenceVariant": "SK", - "SliceTiming": [ - 2.64, - 0, - 2.7275, - 0.0875, - 2.815, - 0.175, - 2.9025, - 0.2625, - 2.9925, - 0.35, - 3.08, - 0.44, - 3.1675, - 0.5275, - 3.255, - 0.615, - 3.3425, - 0.7025, - 3.4325, - 0.79, - 3.52, - 0.88, - 3.6075, - 0.9675, - 3.695, - 1.055, - 3.7825, - 1.1425, - 3.8725, - 1.2325, - 3.96, - 1.32, - 4.0475, - 1.4075, - 4.135, - 1.495, - 4.2225, - 1.5825, - 4.3125, - 1.6725, - 4.4, - 1.76, - 4.4875, - 1.8475, - 4.575, - 1.935, - 4.6625, - 2.0225, - 4.7525, - 2.1125, - 4.84, - 2.2, - 4.9275, - 2.2875, - 5.015, - 2.375, - 5.1025, - 2.4625, - 5.1925, - 2.5525 - ], - "PhaseResolution": 1, - "BaseResolution": 84, - "PhaseEncodingDirection": "j", - "ScanOptions": "FS", - "SoftwareVersions": "syngo_MR_E11", - "PixelBandwidth": 2290, - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/fmap/sub-NDARAB348EWR_dir-PA_acq-fMRI_epi.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json deleted file mode 100644 index 6ea5d96cf1..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB6_PE3_LB", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.000589987, - "TotalReadoutTime": 0.0489689, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_MOVIE1", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 20.178, - "RepetitionTime": 0.8, - "MultibandAccelerationFactor": 6, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000589987, - "SAR": 0.102514, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 84, - "FlipAngle": 31, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_MOVIE1", - "PartialFourier": 1, - "ShimSetting": [ - 181, - -10393, - -5557, - 553, - 76, - 11, - -136, - -38 - ], - "PatientPosition": "HFS", - "SequenceName": "epfid2d1_84", - "MagneticFieldStrength": 3, - "TaskName": "Movie", - "SpacingBetweenSlices": 2.4, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "MB", - "ND", - "MOSAIC" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.03, - "SequenceVariant": "SK_SS", - "SliceTiming": [ - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325 - ], - "PhaseResolution": 1, - "EchoTrainLength": 84, - "BaseResolution": 84, - "PixelBandwidth": 2290, - "ScanOptions": "FS_EXT", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieDM_bold.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json deleted file mode 100644 index 709eff0eea..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB6_PE3_LB", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.000589987, - "TotalReadoutTime": 0.0489689, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_MOVIE2", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 20.178, - "RepetitionTime": 0.8, - "MultibandAccelerationFactor": 6, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000589987, - "SAR": 0.101548, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 84, - "FlipAngle": 31, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_MOVIE2", - "PartialFourier": 1, - "ShimSetting": [ - 181, - -10393, - -5557, - 553, - 76, - 11, - -136, - -38 - ], - "PatientPosition": "HFS", - "SequenceName": "epfid2d1_84", - "MagneticFieldStrength": 3, - "TaskName": "Movie", - "SpacingBetweenSlices": 2.4, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "MB", - "ND", - "MOSAIC" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.03, - "SequenceVariant": "SK_SS", - "SliceTiming": [ - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235, - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235, - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235, - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235, - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235, - 0, - 0.5475, - 0.3125, - 0.08, - 0.625, - 0.39, - 0.1575, - 0.7025, - 0.47, - 0.235 - ], - "PhaseResolution": 1, - "EchoTrainLength": 84, - "BaseResolution": 84, - "PixelBandwidth": 2290, - "ScanOptions": "FS_EXT", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-movieTP_bold.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json deleted file mode 100644 index 4eed7c4cd3..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB6_PE3_LB", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.000589987, - "TotalReadoutTime": 0.0489689, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_PEER1", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 20.178, - "RepetitionTime": 0.8, - "MultibandAccelerationFactor": 6, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000589987, - "SAR": 0.100383, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 84, - "FlipAngle": 31, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_PEER1", - "PartialFourier": 1, - "ShimSetting": [ - 181, - -10393, - -5557, - 553, - 76, - 11, - -136, - -38 - ], - "PatientPosition": "HFS", - "SequenceName": "epfid2d1_84", - "MagneticFieldStrength": 3, - "TaskName": "PEER", - "SpacingBetweenSlices": 2.4, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "MB", - "ND", - "MOSAIC" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.03, - "SequenceVariant": "SK_SS", - "SliceTiming": [ - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325 - ], - "PhaseResolution": 1, - "EchoTrainLength": 84, - "BaseResolution": 84, - "PixelBandwidth": 2290, - "ScanOptions": "FS_EXT", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-1_bold.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json deleted file mode 100644 index cf0471cddd..0000000000 --- a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "InPlanePhaseEncodingDirectionDICOM": "COL", - "ConsistencyInfo": "N4_VE11B_LATEST_20150530", - "ImageComments": "Unaliased_MB6_PE3_LB", - "ProcedureStepDescription": "CMI_HBN-CBIC", - "DeviceSerialNumber": "67080", - "AcquisitionMatrixPE": 84, - "ImageOrientationPatientDICOM": [ - 0.998388, - -0.0154639, - -0.0546089, - 2.66905e-08, - 0.962167, - -0.272462 - ], - "EffectiveEchoSpacing": 0.000589987, - "TotalReadoutTime": 0.0489689, - "ManufacturersModelName": "Prisma_fit", - "ProtocolName": "cmrr_PEER3", - "PhaseEncodingDirection": "j-", - "BandwidthPerPixelPhaseEncode": 20.178, - "RepetitionTime": 0.8, - "MultibandAccelerationFactor": 6, - "PhaseEncodingSteps": 84, - "MRAcquisitionType": "2D", - "SliceThickness": 2.4, - "DwellTime": 2.6e-06, - "TxRefAmp": 212.939, - "BodyPartExamined": "BRAIN", - "ReceiveCoilActiveElements": "HEA;HEP", - "DerivedVendorReportedEchoSpacing": 0.000589987, - "SAR": 0.100383, - "PulseSequenceDetails": "%CustomerSeq%_cmrr_mbep2d_bold", - "ScanningSequence": "EP", - "Manufacturer": "Siemens", - "ConversionSoftware": "dcm2niix", - "PercentPhaseFOV": 100, - "ReconMatrixPE": 84, - "FlipAngle": 31, - "ConversionSoftwareVersion": "v1.0.20171204 (OpenJPEG build) GCC4.8.4", - "SeriesDescription": "cmrr_PEER3", - "PartialFourier": 1, - "ShimSetting": [ - 181, - -10393, - -5557, - 553, - 76, - 11, - -136, - -38 - ], - "PatientPosition": "HFS", - "SequenceName": "epfid2d1_84", - "MagneticFieldStrength": 3, - "TaskName": "PEER", - "SpacingBetweenSlices": 2.4, - "ImageType": [ - "ORIGINAL", - "PRIMARY", - "M", - "MB", - "ND", - "MOSAIC" - ], - "ReceiveCoilName": "Head_32", - "EchoTime": 0.03, - "SequenceVariant": "SK_SS", - "SliceTiming": [ - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325, - 0, - 0.545, - 0.31, - 0.0775, - 0.6225, - 0.39, - 0.155, - 0.7, - 0.4675, - 0.2325 - ], - "PhaseResolution": 1, - "EchoTrainLength": 84, - "BaseResolution": 84, - "PixelBandwidth": 2290, - "ScanOptions": "FS_EXT", - "SoftwareVersions": "syngo_MR_E11", - "StationName": "MRTRIO3TX72", - "Modality": "MR" -} diff --git a/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz b/dev/circleci_data/test_data/sub-NDARAB348EWR/func/sub-NDARAB348EWR_task-peer_run-3_bold.nii.gz deleted file mode 100644 index e69de29bb2..0000000000 From 409e423f85292653db807fa71d6640860e4fce78 Mon Sep 17 00:00:00 2001 From: Jon Cluce Date: Fri, 17 Oct 2025 13:52:11 -0400 Subject: [PATCH 5/5] :necktie: Decode as ASCII instead of UTF-8 Co-authored-by: Florian Rupprecht <33600480+nx10@users.noreply.github.com> --- CPAC/utils/bids_utils.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CPAC/utils/bids_utils.py b/CPAC/utils/bids_utils.py index 3303ebb30a..f137e58306 100755 --- a/CPAC/utils/bids_utils.py +++ b/CPAC/utils/bids_utils.py @@ -324,10 +324,8 @@ def bids_retrieve_params(bids_config_dict, f_dict, dbg=False): for k, v in params.items(): if isinstance(v, str): - # Force all strings to be ASCII-compatible UTF-8 - params[k] = v.encode("ascii", errors="ignore").decode( - "utf-8", errors="ignore" - ) + # Force all strings to be ASCII-compatible UTF-8 (by removing all non-ASCII characters) + params[k] = v.encode("ascii", errors="ignore").decode("ascii") return params