From 0a25e6b3170f8ad326d1cc51ef85358ad163726f Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 23 Jun 2025 15:49:54 +1000 Subject: [PATCH 01/14] First new datasets for Inheritance Principle validation --- ip112e1bad/README.txt | 34 +++ ip112e1bad/dataset_description.json | 9 + ip112e1bad/sourcedata/ip_graph.json | 22 ++ .../ses-test/anat/sub-01_ses-test_T1w.nii.gz | 0 ...task-overtverbgeneration_run-1_bold.nii.gz | 0 ...task-overtverbgeneration_run-2_bold.nii.gz | 0 ...es-test_task-overtverbgeneration_bold.json | 3 + ...t_task-overtverbgeneration_run-2_bold.json | 3 + ip112e1good/README.txt | 44 ++++ ip112e1good/dataset_description.json | 9 + ip112e1good/sourcedata/ip_graph.json | 22 ++ .../ses-test/anat/sub-01_ses-test_T1w.nii.gz | 0 ...task-overtverbgeneration_run-1_bold.nii.gz | 0 ...t_task-overtverbgeneration_run-2_bold.json | 3 + ...task-overtverbgeneration_run-2_bold.nii.gz | 0 ...es-test_task-overtverbgeneration_bold.json | 3 + ip112e2v1/README.txt | 21 ++ ip112e2v1/dataset_description.json | 9 + ip112e2v1/sourcedata/ip_graph.json | 28 +++ .../func/sub-01_task-xyz_acq-test1_bold.json | 3 + ..._task-xyz_acq-test1_rec-recon1_bold.nii.gz | 0 ..._task-xyz_acq-test1_rec-recon2_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-1_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-2_bold.nii.gz | 0 ip112e2v2/README.txt | 41 ++++ ip112e2v2/dataset_description.json | 9 + ip112e2v2/sourcedata/ip_graph.json | 28 +++ ..._task-xyz_acq-test1_rec-recon1_bold.nii.gz | 0 ..._task-xyz_acq-test1_rec-recon2_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-1_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-2_bold.nii.gz | 0 ip112e2v2/task-xyz_acq-test1_bold.json | 3 + ip112e3v1/README.txt | 41 ++++ ip112e3v1/dataset_description.json | 9 + ip112e3v1/sourcedata/ip_graph.json | 22 ++ ..._task-xyz_acq-test1_rec-recon1_bold.nii.gz | 0 ..._task-xyz_acq-test1_rec-recon2_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-1_bold.nii.gz | 0 .../sub-01_task-xyz_acq-test1_bold.json | 3 + ip112e3v2/README.txt | 56 +++++ ip112e3v2/dataset_description.json | 9 + ip112e3v2/sourcedata/ip_graph.json | 26 +++ ..._task-xyz_acq-test1_rec-recon1_bold.nii.gz | 0 ..._task-xyz_acq-test1_rec-recon2_bold.nii.gz | 0 .../sub-01_task-xyz_acq-test1_run-1_bold.json | 4 + ...ub-01_task-xyz_acq-test1_run-1_bold.nii.gz | 0 .../sub-01_task-xyz_acq-test1_bold.json | 4 + ip170e1/README.txt | 23 ++ ip170e1/dataset_description.json | 9 + ip170e1/sourcedata/ip_graph.json | 20 ++ ip170e1/sourcedata/ip_metadata.json | 14 ++ .../sub-01_task-rest_acq-default_bold.nii.gz | 0 .../sub-01_task-rest_acq-longtr_bold.json | 3 + .../sub-01_task-rest_acq-longtr_bold.nii.gz | 0 ip170e1/task-rest_bold.json | 4 + ip170e2/README.txt | 26 +++ ip170e2/dataset_description.json | 9 + ip170e2/sourcedata/ip_graph.json | 22 ++ .../ses-test/anat/sub-01_ses-test_T1w.nii.gz | 0 ...es-test_task-overtverbgeneration_bold.json | 3 + ...task-overtverbgeneration_run-1_bold.nii.gz | 0 ...t_task-overtverbgeneration_run-2_bold.json | 3 + ...task-overtverbgeneration_run-2_bold.nii.gz | 0 ip170e3/README.txt | 14 ++ ip170e3/dataset_description.json | 9 + ip170e3/sourcedata/ip_graph.json | 22 ++ .../ses-test/anat/sub-01_ses-test_T1w.nii.gz | 0 ...task-overtverbgeneration_run-1_bold.nii.gz | 0 ...t_task-overtverbgeneration_run-2_bold.json | 3 + ...task-overtverbgeneration_run-2_bold.nii.gz | 0 ...es-test_task-overtverbgeneration_bold.json | 3 + ip170e4/README.txt | 11 + ip170e4/dataset_description.json | 9 + ip170e4/sourcedata/ip_graph.json | 17 ++ .../func/sub-01_task-xyz_acq-test1_bold.json | 3 + ...ub-01_task-xyz_acq-test1_run-1_bold.nii.gz | 0 ...ub-01_task-xyz_acq-test1_run-2_bold.nii.gz | 0 ipabsent/README.txt | 6 + ipabsent/dataset_description.json | 9 + ipabsent/sourcedata/ip_graph.json | 131 ++++++++++++ .../sub-01/ses-01/anat/sub-01_ses-01_T1w.json | 3 + .../ses-01/anat/sub-01_ses-01_T1w.nii.gz | 0 .../sub-01/ses-01/anat/sub-01_ses-01_T2w.json | 3 + .../ses-01/anat/sub-01_ses-01_T2w.nii.gz | 0 .../func/sub-01_ses-01_task-name_bold.json | 3 + .../func/sub-01_ses-01_task-name_bold.nii.gz | 0 .../func/sub-01_ses-01_task-rest_bold.json | 3 + .../func/sub-01_ses-01_task-rest_bold.nii.gz | 0 .../sub-01/ses-02/anat/sub-01_ses-02_T1w.json | 3 + .../ses-02/anat/sub-01_ses-02_T1w.nii.gz | 0 .../sub-01/ses-02/anat/sub-01_ses-02_T2w.json | 3 + .../ses-02/anat/sub-01_ses-02_T2w.nii.gz | 0 .../func/sub-01_ses-02_task-name_bold.json | 3 + .../func/sub-01_ses-02_task-name_bold.nii.gz | 0 .../func/sub-01_ses-02_task-rest_bold.json | 3 + .../func/sub-01_ses-02_task-rest_bold.nii.gz | 0 .../sub-02/ses-01/anat/sub-02_ses-01_T1w.json | 3 + .../ses-01/anat/sub-02_ses-01_T1w.nii.gz | 0 .../sub-02/ses-01/anat/sub-02_ses-01_T2w.json | 3 + .../ses-01/anat/sub-02_ses-01_T2w.nii.gz | 0 .../func/sub-02_ses-01_task-name_bold.json | 3 + .../func/sub-02_ses-01_task-name_bold.nii.gz | 0 .../func/sub-02_ses-01_task-rest_bold.json | 3 + .../func/sub-02_ses-01_task-rest_bold.nii.gz | 0 .../sub-02/ses-02/anat/sub-02_ses-02_T1w.json | 3 + .../ses-02/anat/sub-02_ses-02_T1w.nii.gz | 0 .../sub-02/ses-02/anat/sub-02_ses-02_T2w.json | 3 + .../ses-02/anat/sub-02_ses-02_T2w.nii.gz | 0 .../func/sub-02_ses-02_task-name_bold.json | 3 + .../func/sub-02_ses-02_task-name_bold.nii.gz | 0 .../func/sub-02_ses-02_task-rest_bold.json | 3 + .../func/sub-02_ses-02_task-rest_bold.nii.gz | 0 ipexclnonsc/README.txt | 13 ++ ipexclnonsc/dataset_description.json | 9 + ipexclnonsc/sourcedata/ip_graph.json | 11 + ipexclnonsc/sub-01/func/sub-01_bold.json | 3 + .../sub-01/func/sub-01_task-rest_bold.nii.gz | 0 ipi1195e1/README.txt | 197 ++++++++++++++++++ ipi1195e1/bold.json | 3 + ipi1195e1/dataset_description.json | 8 + ipi1195e1/sourcedata/ip_graph.json | 141 +++++++++++++ .../ses-01/func/sub-01_ses-01_bold.json | 3 + .../func/sub-01_ses-01_task-ovg_bold.json | 3 + .../sub-01_ses-01_task-ovg_run-1_bold.nii.gz | 0 .../sub-01_ses-01_task-ovg_run-2_bold.json | 3 + .../sub-01_ses-01_task-ovg_run-2_bold.nii.gz | 0 .../func/sub-01_ses-01_task-rest_bold.json | 3 + .../func/sub-01_ses-01_task-rest_bold.nii.gz | 0 .../func/sub-01_ses-02_task-ovg_bold.nii.gz | 0 .../func/sub-01_ses-02_task-rest_bold.nii.gz | 0 ipi1195e1/sub-01/sub-01_bold.json | 3 + .../func/sub-02_ses-01_res-high_bold.json | 3 + ...ub-02_ses-01_res-high_task-olr_bold.nii.gz | 0 ...b-02_ses-01_res-high_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_res-low_bold.json | 3 + ...sub-02_ses-01_res-low_task-olr_bold.nii.gz | 0 ...ub-02_ses-01_res-low_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_task-olr_bold.json | 3 + .../func/sub-02_ses-01_task-rest_bold.json | 3 + ipi1195e1/task-olr_bold.json | 3 + ipi1195e1/task-ovg_bold.json | 3 + ipi1195e1/task-rest_bold.json | 3 + iploosemeta/README.txt | 8 + iploosemeta/dataset_description.json | 9 + iploosemeta/sourcedata/ip_graph.json | 12 ++ iploosemeta/sub-01/anat/sub-01_T1w.json | 3 + iploosemeta/sub-01/anat/sub-01_T1w.nii.gz | 0 iploosemeta/sub-01/anat/sub-01_T2w.json | 3 + ippr1003ae1/README.txt | 138 ++++++++++++ ippr1003ae1/bold.json | 3 + ippr1003ae1/dataset_description.json | 8 + ippr1003ae1/sourcedata/ip_graph.json | 94 +++++++++ .../ses-01/func/sub-01_ses-01_bold.json | 3 + .../func/sub-01_ses-01_task-ovg_bold.json | 3 + .../sub-01_ses-01_task-ovg_run-1_bold.nii.gz | 0 .../sub-01_ses-01_task-ovg_run-2_bold.json | 3 + .../sub-01_ses-01_task-ovg_run-2_bold.nii.gz | 0 .../func/sub-01_ses-01_task-rest_bold.json | 3 + .../func/sub-01_ses-01_task-rest_bold.nii.gz | 0 .../func/sub-01_ses-02_task-ovg_bold.nii.gz | 0 .../func/sub-01_ses-02_task-rest_bold.nii.gz | 0 ippr1003ae1/sub-01/sub-01_bold.json | 3 + .../func/sub-02_ses-01_task-rest_bold.json | 3 + .../func/sub-02_ses-01_task-rest_bold.nii.gz | 0 ippr1003ae1/task-ovg_bold.json | 3 + ippr1003ae1/task-rest_bold.json | 3 + ippr1003ae2/README.txt | 42 ++++ ippr1003ae2/dataset_description.json | 8 + ippr1003ae2/sourcedata/ip_graph.json | 52 +++++ .../sub-01/func/sub-01_acq-highres_bold.json | 3 + .../sub-01/func/sub-01_acq-lowres_bold.json | 3 + ippr1003ae2/sub-01/func/sub-01_bold.json | 3 + .../sub-01_task-ovg_acq-highres_bold.nii.gz | 0 .../sub-01_task-ovg_acq-lowres_bold.nii.gz | 0 .../sub-01/func/sub-01_task-ovg_bold.json | 3 + .../sub-01_task-rest_acq-highres_bold.nii.gz | 0 .../sub-01_task-rest_acq-lowres_bold.nii.gz | 0 .../sub-01/func/sub-01_task-rest_bold.json | 3 + ippr1003e1v1/README.txt | 32 +++ ippr1003e1v1/dataset_description.json | 8 + ippr1003e1v1/sourcedata/ip_graph.json | 16 ++ ippr1003e1v1/sub-01/anat/sub-01_T2starw.json | 3 + .../anat/sub-01_part-imag_T2starw.nii.gz | 0 .../anat/sub-01_part-real_T2starw.nii.gz | 0 ippr1003e1v2/README.txt | 59 ++++++ ippr1003e1v2/dataset_description.json | 8 + ippr1003e1v2/sourcedata/ip_graph.json | 20 ++ ippr1003e1v2/sourcedata/ip_metadata.json | 13 ++ ippr1003e1v2/sub-01/anat/sub-01_T2starw.json | 4 + .../anat/sub-01_part-mag_T2starw.nii.gz | 0 .../anat/sub-01_part-phase_T2starw.json | 3 + .../anat/sub-01_part-phase_T2starw.nii.gz | 0 192 files changed, 1895 insertions(+) create mode 100644 ip112e1bad/README.txt create mode 100644 ip112e1bad/dataset_description.json create mode 100644 ip112e1bad/sourcedata/ip_graph.json create mode 100644 ip112e1bad/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz create mode 100644 ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz create mode 100644 ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz create mode 100644 ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json create mode 100644 ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json create mode 100644 ip112e1good/README.txt create mode 100644 ip112e1good/dataset_description.json create mode 100644 ip112e1good/sourcedata/ip_graph.json create mode 100644 ip112e1good/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz create mode 100644 ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz create mode 100644 ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json create mode 100644 ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz create mode 100644 ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json create mode 100644 ip112e2v1/README.txt create mode 100644 ip112e2v1/dataset_description.json create mode 100644 ip112e2v1/sourcedata/ip_graph.json create mode 100644 ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json create mode 100644 ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz create mode 100644 ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz create mode 100644 ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz create mode 100644 ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz create mode 100644 ip112e2v2/README.txt create mode 100644 ip112e2v2/dataset_description.json create mode 100644 ip112e2v2/sourcedata/ip_graph.json create mode 100644 ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz create mode 100644 ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz create mode 100644 ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz create mode 100644 ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz create mode 100644 ip112e2v2/task-xyz_acq-test1_bold.json create mode 100644 ip112e3v1/README.txt create mode 100644 ip112e3v1/dataset_description.json create mode 100644 ip112e3v1/sourcedata/ip_graph.json create mode 100644 ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz create mode 100644 ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz create mode 100644 ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz create mode 100644 ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json create mode 100644 ip112e3v2/README.txt create mode 100644 ip112e3v2/dataset_description.json create mode 100644 ip112e3v2/sourcedata/ip_graph.json create mode 100644 ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz create mode 100644 ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz create mode 100644 ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json create mode 100644 ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz create mode 100644 ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json create mode 100644 ip170e1/README.txt create mode 100644 ip170e1/dataset_description.json create mode 100644 ip170e1/sourcedata/ip_graph.json create mode 100644 ip170e1/sourcedata/ip_metadata.json create mode 100644 ip170e1/sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz create mode 100644 ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.json create mode 100644 ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz create mode 100644 ip170e1/task-rest_bold.json create mode 100644 ip170e2/README.txt create mode 100644 ip170e2/dataset_description.json create mode 100644 ip170e2/sourcedata/ip_graph.json create mode 100644 ip170e2/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz create mode 100644 ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json create mode 100644 ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz create mode 100644 ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json create mode 100644 ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz create mode 100644 ip170e3/README.txt create mode 100644 ip170e3/dataset_description.json create mode 100644 ip170e3/sourcedata/ip_graph.json create mode 100644 ip170e3/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz create mode 100644 ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz create mode 100644 ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json create mode 100644 ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz create mode 100644 ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json create mode 100644 ip170e4/README.txt create mode 100644 ip170e4/dataset_description.json create mode 100644 ip170e4/sourcedata/ip_graph.json create mode 100644 ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json create mode 100644 ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz create mode 100644 ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz create mode 100644 ipabsent/README.txt create mode 100644 ipabsent/dataset_description.json create mode 100644 ipabsent/sourcedata/ip_graph.json create mode 100644 ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json create mode 100644 ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz create mode 100644 ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json create mode 100644 ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz create mode 100644 ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json create mode 100644 ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz create mode 100644 ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json create mode 100644 ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz create mode 100644 ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json create mode 100644 ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz create mode 100644 ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json create mode 100644 ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz create mode 100644 ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json create mode 100644 ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz create mode 100644 ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json create mode 100644 ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz create mode 100644 ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json create mode 100644 ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz create mode 100644 ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json create mode 100644 ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz create mode 100644 ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json create mode 100644 ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz create mode 100644 ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json create mode 100644 ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz create mode 100644 ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json create mode 100644 ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz create mode 100644 ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json create mode 100644 ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz create mode 100644 ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json create mode 100644 ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz create mode 100644 ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json create mode 100644 ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz create mode 100644 ipexclnonsc/README.txt create mode 100644 ipexclnonsc/dataset_description.json create mode 100644 ipexclnonsc/sourcedata/ip_graph.json create mode 100644 ipexclnonsc/sub-01/func/sub-01_bold.json create mode 100644 ipexclnonsc/sub-01/func/sub-01_task-rest_bold.nii.gz create mode 100644 ipi1195e1/README.txt create mode 100644 ipi1195e1/bold.json create mode 100644 ipi1195e1/dataset_description.json create mode 100644 ipi1195e1/sourcedata/ip_graph.json create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json create mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz create mode 100644 ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz create mode 100644 ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz create mode 100644 ipi1195e1/sub-01/sub-01_bold.json create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json create mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json create mode 100644 ipi1195e1/task-olr_bold.json create mode 100644 ipi1195e1/task-ovg_bold.json create mode 100644 ipi1195e1/task-rest_bold.json create mode 100644 iploosemeta/README.txt create mode 100644 iploosemeta/dataset_description.json create mode 100644 iploosemeta/sourcedata/ip_graph.json create mode 100644 iploosemeta/sub-01/anat/sub-01_T1w.json create mode 100644 iploosemeta/sub-01/anat/sub-01_T1w.nii.gz create mode 100644 iploosemeta/sub-01/anat/sub-01_T2w.json create mode 100644 ippr1003ae1/README.txt create mode 100644 ippr1003ae1/bold.json create mode 100644 ippr1003ae1/dataset_description.json create mode 100644 ippr1003ae1/sourcedata/ip_graph.json create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json create mode 100644 ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz create mode 100644 ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz create mode 100644 ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz create mode 100644 ippr1003ae1/sub-01/sub-01_bold.json create mode 100644 ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json create mode 100644 ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz create mode 100644 ippr1003ae1/task-ovg_bold.json create mode 100644 ippr1003ae1/task-rest_bold.json create mode 100644 ippr1003ae2/README.txt create mode 100644 ippr1003ae2/dataset_description.json create mode 100644 ippr1003ae2/sourcedata/ip_graph.json create mode 100644 ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json create mode 100644 ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json create mode 100644 ippr1003ae2/sub-01/func/sub-01_bold.json create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz create mode 100644 ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json create mode 100644 ippr1003e1v1/README.txt create mode 100644 ippr1003e1v1/dataset_description.json create mode 100644 ippr1003e1v1/sourcedata/ip_graph.json create mode 100644 ippr1003e1v1/sub-01/anat/sub-01_T2starw.json create mode 100644 ippr1003e1v1/sub-01/anat/sub-01_part-imag_T2starw.nii.gz create mode 100644 ippr1003e1v1/sub-01/anat/sub-01_part-real_T2starw.nii.gz create mode 100644 ippr1003e1v2/README.txt create mode 100644 ippr1003e1v2/dataset_description.json create mode 100644 ippr1003e1v2/sourcedata/ip_graph.json create mode 100644 ippr1003e1v2/sourcedata/ip_metadata.json create mode 100644 ippr1003e1v2/sub-01/anat/sub-01_T2starw.json create mode 100644 ippr1003e1v2/sub-01/anat/sub-01_part-mag_T2starw.nii.gz create mode 100644 ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json create mode 100644 ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.nii.gz diff --git a/ip112e1bad/README.txt b/ip112e1bad/README.txt new file mode 100644 index 000000000..099183f37 --- /dev/null +++ b/ip112e1bad/README.txt @@ -0,0 +1,34 @@ +The following exerpt is duplicated from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 1: Two JSON files at same level that are applicable for NIfTI file. + + sub-01/ + ses-test/ + sub-test_task-overtverbgeneration_bold.json + sub-test_task-overtverbgeneration_run-2_bold.json + anat/ + sub-01_ses-test_T1w.nii.gz + func/ + sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz + sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz + + In the above example, two JSON files are listed under sub-01/ses-test/, which are each applicable to sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz, violating the constraint that no more than one file may be defined at a given level of the directory structure. Instead task-overtverbgeneration_run-2_bold.json should have been under sub-01/ses-test/func/. + +Notes: + +- There is an error in the filesystem structure shown. + Files "sub-test_task-overtverbgeneration_*bold.json" erroneously combine + entities "sub-01" and "ses-test" implied by the directory structure + into entity "ses-test" in these file names. + This error is rectified in the realised dataset, + as it is not the aspect of specification non-conformity that is of interest. + +- This dataset is *intended to be non-conformant*. + Its evaluation under the ruleset of the Inheritance Principle + corresponding to this version of the specification + should therefore fail. + +- The "Instead ... " proposal as to how this exemplar dataset + should be modified in order to become conformant + is realised in sister dataset "ip112e1good". diff --git a/ip112e1bad/dataset_description.json b/ip112e1bad/dataset_description.json new file mode 100644 index 000000000..107480ca4 --- /dev/null +++ b/ip112e1bad/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 1; non-compliant version" +} + diff --git a/ip112e1bad/sourcedata/ip_graph.json b/ip112e1bad/sourcedata/ip_graph.json new file mode 100644 index 000000000..252ec4980 --- /dev/null +++ b/ip112e1bad/sourcedata/ip_graph.json @@ -0,0 +1,22 @@ +{ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json", + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json" + ] + } +} diff --git a/ip112e1bad/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz b/ip112e1bad/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz b/ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz b/ip112e1bad/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e1good/README.txt b/ip112e1good/README.txt new file mode 100644 index 000000000..b06a012e6 --- /dev/null +++ b/ip112e1good/README.txt @@ -0,0 +1,44 @@ +From the relevant section of version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 1: Two JSON files at same level that are applicable for NIfTI file. + + sub-01/ + ses-test/ + sub-test_task-overtverbgeneration_bold.json + sub-test_task-overtverbgeneration_run-2_bold.json + anat/ + sub-01_ses-test_T1w.nii.gz + func/ + sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz + sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz + In the above example, two JSON files are listed under sub-01/ses-test/, which are each applicable to sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz, violating the constraint that no more than one file may be defined at a given level of the directory structure. Instead task-overtverbgeneration_run-2_bold.json should have been under sub-01/ses-test/func/. + +Notes: + +- The filesystem layout described in the specification is erroneous. + Files "sub-test_task-overtverbgeneration*_bold.json" erroneously combine entities + "sub-01" and "ses-test" implied by the directory structure + into entity "sub-test" in the file names. + This error is corrected in this realised dataset. + +- This dataset *incorporates* the suggestion made at the end of this section + of how to modify the filesystem layout in order to make the dataset conformant. + + The actual layout of this dataset is therefore: + + sub-01/ + ses-test/ + sub-01_ses-test_task-overtverbgeneration_bold.json + anat/ + sub-01_ses-test_T1w.nii.gz + func/ + sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz + sub-01_ses-test_task-overtverbgeneration_run-2_bold.json + sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz + + As such, this dataset is expected to be determined conformant. + +- The (fixed) dataset as originally described in the specification, + absent the rectification described above to conform specifically to the Inheritance Principle, + is realised in sister dataset "ip112e1bad". diff --git a/ip112e1good/dataset_description.json b/ip112e1good/dataset_description.json new file mode 100644 index 000000000..56f041772 --- /dev/null +++ b/ip112e1good/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 1; compliant version" +} + diff --git a/ip112e1good/sourcedata/ip_graph.json b/ip112e1good/sourcedata/ip_graph.json new file mode 100644 index 000000000..58e4254c7 --- /dev/null +++ b/ip112e1good/sourcedata/ip_graph.json @@ -0,0 +1,22 @@ +{ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json" + ] + } +} diff --git a/ip112e1good/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz b/ip112e1good/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz b/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz b/ip112e1good/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e2v1/README.txt b/ip112e2v1/README.txt new file mode 100644 index 000000000..7f3e24491 --- /dev/null +++ b/ip112e2v1/README.txt @@ -0,0 +1,21 @@ +The following text is copied verbatim from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 2: Multiple run and rec with same acquisition (acq) parameters acq-test1 + + sub-01/ + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_run-2_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + sub-01_task-xyz_acq-test1_bold.json + + For the above example, all NIfTI files are acquired with same scanning parameters (acq-test1). Hence a JSON file describing the acq parameters will apply to different runs and rec files. Also if the JSON file (task-xyz_acq-test1_bold.json) is defined at dataset top level directory, it will be applicable to all task runs with test1 acquisition parameter. + +Notes: + +- This particular dataset recapitulates the filesystem structure shown in the specification verbatim. + Sister dataset "ip112e2v2" realises the suggested modification + at the end of the text description. diff --git a/ip112e2v1/dataset_description.json b/ip112e2v1/dataset_description.json new file mode 100644 index 000000000..ca9d93bde --- /dev/null +++ b/ip112e2v1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 2; version 1" +} + diff --git a/ip112e2v1/sourcedata/ip_graph.json b/ip112e2v1/sourcedata/ip_graph.json new file mode 100644 index 000000000..d3ee829a5 --- /dev/null +++ b/ip112e2v1/sourcedata/ip_graph.json @@ -0,0 +1,28 @@ +{ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + } +} diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v2/README.txt b/ip112e2v2/README.txt new file mode 100644 index 000000000..a07fa10e6 --- /dev/null +++ b/ip112e2v2/README.txt @@ -0,0 +1,41 @@ +The following text is duplicated verbatim from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 2: Multiple run and rec with same acquisition (acq) parameters acq-test1 + + sub-01/ + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_run-2_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + sub-01_task-xyz_acq-test1_bold.json + + For the above example, all NIfTI files are acquired with same scanning parameters (acq-test1). Hence a JSON file describing the acq parameters will apply to different runs and rec files. Also if the JSON file (task-xyz_acq-test1_bold.json) is defined at dataset top level directory, it will be applicable to all task runs with test1 acquisition parameter. + +Notes: + +- The filesystem structure described in the specification above + is replicated verbatim in sister dataset "ip112e2v1". + +- This dataset is the realisation of the proposed alternative configuration + described at the end of the quoted text. + As such, the actual filesystem structure is: + + task-xyz_acq-test1_bold.json + sub-01/ + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_run-2_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + +- The quoted description regarding the proposed alternative filesystem layout is incomplete. + The text refers to "... the JSON file (task-xyz_acq-test1_bold.json)"; + however this file does not exist in the filesystem structure shown. + What was presumably intended by the author + was that file "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + could be *moved* to "task-xyz_acq-test1_bold.json" at the root of the dataset. + This is what is realised in this dataset. diff --git a/ip112e2v2/dataset_description.json b/ip112e2v2/dataset_description.json new file mode 100644 index 000000000..1f42abc76 --- /dev/null +++ b/ip112e2v2/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 2; version 2" +} + diff --git a/ip112e2v2/sourcedata/ip_graph.json b/ip112e2v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..493ebfc16 --- /dev/null +++ b/ip112e2v2/sourcedata/ip_graph.json @@ -0,0 +1,28 @@ +{ + "task-xyz_acq-test1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": [ + "task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "task-xyz_acq-test1_bold.json" + ] + } +} diff --git a/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz b/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz b/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz b/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz b/ip112e2v2/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e2v2/task-xyz_acq-test1_bold.json b/ip112e2v2/task-xyz_acq-test1_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip112e2v2/task-xyz_acq-test1_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip112e3v1/README.txt b/ip112e3v1/README.txt new file mode 100644 index 000000000..1db106e76 --- /dev/null +++ b/ip112e3v1/README.txt @@ -0,0 +1,41 @@ +The following text is reproduced versbation from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Case 2: Multiple json files at different levels for same task and acquisition parameters + + sub-01/ + sub-01_task-xyz_acq-test1_bold.json + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + + In the above example, the fields from task-xyz_acq-test1_bold.json file will apply to all bold runs. However, if there is a key with different value in sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json, the new value will be applicable for that particular run/task NIfTI file/s. + +Notes: + +- This version of the specification erroneously refers to this example as "Case 2", + incongruent with prior items "Example 1" and "Example 2". + This dataset has instead been named "ip112e3" and described as "the third example" + provided in this version of the specification. + +- The filesystem structure in this example was erroneously formatted. + everything below file "sub-01_task-xyz_acq-test1_bold.json" is erroneously indented + as though that item is a directory rather than a file. + Empty directory "sub-01/anat/" also should not have been shown. + +- Use of the "run" and "rec" entities was erroneous in this example. + The "run" entity should only be used in the presence of repeated acquisitions + from the same sequence where no acquisition parameters differ. + The "rec" entity should distinguish between different image reconstructions + from the same acquisition; + however here, because files "sub-01_task-xyz_acq-test1_rec-recon*_bold.nii.gz" + do *not* match file "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz" due to absence of the "run" entity, + the relationships between these data files is ambiguous. + These have nevertheless been overlooked in the production of this exemplar dataset, + where the purpose is only defining the behaviour of the Inheritance Principle. + +- The proposal modification at the end of the description text + is *not* realised in this example dataset; + that is instead realised in sister dataset "ip112e3v2". diff --git a/ip112e3v1/dataset_description.json b/ip112e3v1/dataset_description.json new file mode 100644 index 000000000..51b60f476 --- /dev/null +++ b/ip112e3v1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 3; version 1" +} + diff --git a/ip112e3v1/sourcedata/ip_graph.json b/ip112e3v1/sourcedata/ip_graph.json new file mode 100644 index 000000000..3c2c74817 --- /dev/null +++ b/ip112e3v1/sourcedata/ip_graph.json @@ -0,0 +1,22 @@ +{ + "sub-01/sub-01_task-xyz_acq-test1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json" + ] + } +} diff --git a/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz b/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz b/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz b/ip112e3v1/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json b/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json new file mode 100644 index 000000000..6ccac03f3 --- /dev/null +++ b/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json @@ -0,0 +1,3 @@ +{ + "Source": "sub" +} diff --git a/ip112e3v2/README.txt b/ip112e3v2/README.txt new file mode 100644 index 000000000..53b043982 --- /dev/null +++ b/ip112e3v2/README.txt @@ -0,0 +1,56 @@ +The following text is reproduced versbation from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Case 2: Multiple json files at different levels for same task and acquisition parameters + + sub-01/ + sub-01_task-xyz_acq-test1_bold.json + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + + In the above example, the fields from task-xyz_acq-test1_bold.json file will apply to all bold runs. However, if there is a key with different value in sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json, the new value will be applicable for that particular run/task NIfTI file/s. + +Notes: + +- This version of the specification erroneously refers to this example as "Case 2", + incongruent with prior items "Example 1" and "Example 2". + This dataset has instead been named "ip112e3v2" and described as "the third example" + provided in this version of the specification. + +- The filesystem structure in this example was erroneously formatted. + everything below file "sub-01_task-xyz_acq-test1_bold.json" is erroneously indented + as though that item is a directory rather than a file. + Empty directory "sub-01/anat/" also should not have been shown. + +- Use of the "run" and "rec" entities was erroneous in this example. + The "run" entity should only be used in the presence of repeated acquisitions + from the same sequence where no acquisition parameters differ. + The "rec" entity should distinguish between different image reconstructions + from the same acquisition; + however here, because files "sub-01_task-xyz_acq-test1_rec-recon*_bold.nii.gz" + do *not* match file "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz" due to absence of the "run" entity, + the relationships between these data files is ambiguous. + These have nevertheless been overlooked in the production of this exemplar dataset, + where the purpose is only defining the behaviour of the Inheritance Principle. + +- This exemplar dataset realises the proposed modification at the end of the description text. + The actual filesystem structure is therefore: + + sub-01/ + sub-01_task-xyz_acq-test1_bold.json + anat/ + func/ + sub-01_task-xyz_acq-test1_run-1_bold.json + sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz + sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz + + Further, files "sub-01/sub-01_task-xyz_acq-test1_bold.json" + and "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json" + are not empty, but contain metadata fields + intended to demonstrate the overloading of metadata fields. + Sister dataset "ip112e3v1" shows this same exemplar + without the integration of this proposed modification. diff --git a/ip112e3v2/dataset_description.json b/ip112e3v2/dataset_description.json new file mode 100644 index 000000000..5877bd1c5 --- /dev/null +++ b/ip112e3v2/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; example 3; version 2" +} + diff --git a/ip112e3v2/sourcedata/ip_graph.json b/ip112e3v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..d9ed0535b --- /dev/null +++ b/ip112e3v2/sourcedata/ip_graph.json @@ -0,0 +1,26 @@ +{ + "sub-01/sub-01_task-xyz_acq-test1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json", + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "sub-01/sub-01_task-xyz_acq-test1_bold.json" + ] + } +} diff --git a/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz b/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz b/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json b/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json new file mode 100644 index 000000000..d18a360c7 --- /dev/null +++ b/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.json @@ -0,0 +1,4 @@ +{ + "FuncOnly": true, + "OverloadSource": "func" +} diff --git a/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz b/ip112e3v2/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json b/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json new file mode 100644 index 000000000..8b36d88c6 --- /dev/null +++ b/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json @@ -0,0 +1,4 @@ +{ + "SubjectOnly": true, + "OverloadSource": "sub" +} diff --git a/ip170e1/README.txt b/ip170e1/README.txt new file mode 100644 index 000000000..16564d80a --- /dev/null +++ b/ip170e1/README.txt @@ -0,0 +1,23 @@ +The following text is reproduced verbatim from version 1.7.0 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 1: Demonstration of inheritance principle + + ├─ sub-01/ + │ └─ func/ + │ ├─ sub-01_task-rest_acq-default_bold.nii.gz + │ ├─ sub-01_task-rest_acq-longtr_bold.nii.gz + │ └─ sub-01_task-rest_acq-longtr_bold.json + └─ task-rest_bold.json + + Contents of file task-rest_bold.json: + { + "EchoTime": 0.040, + "RepetitionTime": 1.0 + } + Contents of file sub-01/func/sub-01_task-rest_acq-longtr_bold.json: + { + "RepetitionTime": 3.0 + } + When reading image sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz, only metadata file task-rest_bold.json is read; file sub-01/func/sub-01_task-rest_acq-longtr_bold.json is inapplicable as it contains entity "acq-longtr" that is absent from the image path (rule 2.c). + When reading image sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz, metadata file task-rest_bold.json at the top level is read first, followed by file sub-01/func/sub-01_task-rest_acq-longtr_bold.json at the bottom level (rule 5.b); the value for field "RepetitionTime" is therefore overridden to the value 3.0. The value for field "EchoTime" remains applicable to that image, and is not unset by its absence in the metadata file at the lower level (rule 5.b; corollary 3). diff --git a/ip170e1/dataset_description.json b/ip170e1/dataset_description.json new file mode 100644 index 000000000..d2776f65d --- /dev/null +++ b/ip170e1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.7.0", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.7.0; example 1" +} + diff --git a/ip170e1/sourcedata/ip_graph.json b/ip170e1/sourcedata/ip_graph.json new file mode 100644 index 000000000..da312c4b6 --- /dev/null +++ b/ip170e1/sourcedata/ip_graph.json @@ -0,0 +1,20 @@ +{ + "task-rest_bold.json": [ + "sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz" + ], + "sub-01/func/sub-01_task-rest_acq-longtr_bold.json": [ + "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz" + ], + "sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz": { + ".json": [ + "task-rest_bold.json" + ] + }, + "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz": { + ".json": [ + "task-rest_bold.json", + "sub-01/func/sub-01_task-rest_acq-longtr_bold.json" + ] + } +} diff --git a/ip170e1/sourcedata/ip_metadata.json b/ip170e1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..b5e6c3005 --- /dev/null +++ b/ip170e1/sourcedata/ip_metadata.json @@ -0,0 +1,14 @@ +{ + "sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz": { + ".json": { + "EchoTime": 0.040, + "RepetitionTime": 1.0 + } + }, + "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz": { + ".json": { + "EchoTime": 0.040, + "RepetitionTime": 3.0 + } + } +} diff --git a/ip170e1/sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz b/ip170e1/sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.json b/ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.json new file mode 100644 index 000000000..c7f5c27b5 --- /dev/null +++ b/ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.json @@ -0,0 +1,3 @@ +{ + "RepetitionTime": 3.0 +} diff --git a/ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz b/ip170e1/sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e1/task-rest_bold.json b/ip170e1/task-rest_bold.json new file mode 100644 index 000000000..b17cb947d --- /dev/null +++ b/ip170e1/task-rest_bold.json @@ -0,0 +1,4 @@ +{ + "EchoTime": 0.040, + "RepetitionTime": 1.0 +} diff --git a/ip170e2/README.txt b/ip170e2/README.txt new file mode 100644 index 000000000..073373881 --- /dev/null +++ b/ip170e2/README.txt @@ -0,0 +1,26 @@ +The following text is reproduced verbatim from version 1.7.0 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 2: Impermissible use of multiple metadata files at one directory level (rule 4) + + └─ sub-01/ + └─ ses-test/ + ├─ anat/ + │ └─ sub-01_ses-test_T1w.nii.gz + └─ func/ + ├─ sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz + ├─ sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz + ├─ sub-01_ses-test_task-overtverbgeneration_bold.json + └─ sub-01_ses-test_task-overtverbgeneration_run-2_bold.json + +Notes: + +- This example is intentionally in violation of the Inheritance Principle + for the version against which it was devised. + For data file "sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz", + both metadata JSON files in the dataset are considered applicable + based on the entities / suffix / location in the filesystem hierarchy. + This is however impermissible specifically because they are at the *same* + location in the filesystem hierarchy. + It is therefore expected that this dataset should fail tests performed + based on the ruleset of the Inheritance Principle for this specification version. diff --git a/ip170e2/dataset_description.json b/ip170e2/dataset_description.json new file mode 100644 index 000000000..6198b68da --- /dev/null +++ b/ip170e2/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.7.0", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.7.0; non-compliant example 2" +} + diff --git a/ip170e2/sourcedata/ip_graph.json b/ip170e2/sourcedata/ip_graph.json new file mode 100644 index 000000000..6681af0aa --- /dev/null +++ b/ip170e2/sourcedata/ip_graph.json @@ -0,0 +1,22 @@ +{ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json" + ] + } +} diff --git a/ip170e2/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz b/ip170e2/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e3/README.txt b/ip170e3/README.txt new file mode 100644 index 000000000..c0c07c3a9 --- /dev/null +++ b/ip170e3/README.txt @@ -0,0 +1,14 @@ +The following text is repeated verbatim from version 1.7.0 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 3: Modification of filesystem structure from Example 2 to satisfy inheritance principle requirements + + └─ sub-01/ + └─ ses-test/ + ├─ sub-01_ses-test_task-overtverbgeneration_bold.json + ├─ anat/ + │ └─ sub-01_ses-test_T1w.nii.gz + └─ func/ + ├─ sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz + ├─ sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz + └─ sub-01_ses-test_task-overtverbgeneration_run-2_bold.json diff --git a/ip170e3/dataset_description.json b/ip170e3/dataset_description.json new file mode 100644 index 000000000..36a027f3c --- /dev/null +++ b/ip170e3/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.7.0", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.7.0; example 3" +} + diff --git a/ip170e3/sourcedata/ip_graph.json b/ip170e3/sourcedata/ip_graph.json new file mode 100644 index 000000000..375997cb7 --- /dev/null +++ b/ip170e3/sourcedata/ip_graph.json @@ -0,0 +1,22 @@ +{ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json": [ + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz" + ], + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json", + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json" + ] + } +} diff --git a/ip170e3/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz b/ip170e3/sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip170e4/README.txt b/ip170e4/README.txt new file mode 100644 index 000000000..c788ca222 --- /dev/null +++ b/ip170e4/README.txt @@ -0,0 +1,11 @@ +The following text is reproduced verbatim from version 1.7.0 +of the Brain Imaging Data Structure (BIDS) specification: + + Example 4: Single metadata file applying to multiple data files (corollary 2) + + └─ sub-01/ + ├─ anat/ + └─ func/ + ├─ sub-01_task-xyz_acq-test1_run-1_bold.nii.gz + ├─ sub-01_task-xyz_acq-test1_run-2_bold.nii.gz + └─ sub-01_task-xyz_acq-test1_bold.json diff --git a/ip170e4/dataset_description.json b/ip170e4/dataset_description.json new file mode 100644 index 000000000..22a3320e4 --- /dev/null +++ b/ip170e4/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.7.0", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.7.0; example 4" +} + diff --git a/ip170e4/sourcedata/ip_graph.json b/ip170e4/sourcedata/ip_graph.json new file mode 100644 index 000000000..efa713976 --- /dev/null +++ b/ip170e4/sourcedata/ip_graph.json @@ -0,0 +1,17 @@ +{ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-xyz_acq-test1_bold.json" + ] + } +} + diff --git a/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/README.txt b/ipabsent/README.txt new file mode 100644 index 000000000..c7316829a --- /dev/null +++ b/ipabsent/README.txt @@ -0,0 +1,6 @@ +This dataset serves as an exemplar where there is some degree of complexity +to the filesystem structure, +but there is no use of the Inheritance Principle. +It is included as a test dataset +so that the "ruleset" wherein use of the Inheritance Principle is expressly forbidden +can be verified operational. diff --git a/ipabsent/dataset_description.json b/ipabsent/dataset_description.json new file mode 100644 index 000000000..a0d7efe37 --- /dev/null +++ b/ipabsent/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; no use of inheritance principle (ie. absent)" +} + diff --git a/ipabsent/sourcedata/ip_graph.json b/ipabsent/sourcedata/ip_graph.json new file mode 100644 index 000000000..34d6566af --- /dev/null +++ b/ipabsent/sourcedata/ip_graph.json @@ -0,0 +1,131 @@ +{ + "sub-01/ses-01/anat/sub-01_ses-01_T1w.json": [ + "sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz" + ], + "sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz": { + ".json": [ + "sub-01/ses-01/anat/sub-01_ses-01_T1w.json" + ] + }, + "sub-01/ses-01/anat/sub-01_ses-01_T2w.json": [ + "sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz" + ], + "sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz": { + ".json": [ + "sub-01/ses-01/anat/sub-01_ses-01_T2w.json" + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T1w.json": [ + "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz" + ], + "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { + ".json": [ + "sub-01/ses-02/anat/sub-01_ses-02_T1w.json" + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T2w.json": [ + "sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz" + ], + "sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz": { + ".json": [ + "sub-01/ses-02/anat/sub-01_ses-02_T2w.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz": { + ".json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json": [ + "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz" + ], + "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz": { + ".json": [ + "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json": [ + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz" + ], + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json" + ] + }, + "sub-02/ses-01/anat/sub-02_ses-01_T1w.json": [ + "sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz" + ], + "sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz": { + ".json": [ + "sub-02/ses-01/anat/sub-02_ses-01_T1w.json" + ] + }, + "sub-02/ses-01/anat/sub-02_ses-01_T2w.json": [ + "sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz" + ], + "sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz": { + ".json": [ + "sub-02/ses-01/anat/sub-02_ses-01_T2w.json" + ] + }, + "sub-02/ses-02/anat/sub-02_ses-02_T1w.json": [ + "sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz" + ], + "sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz": { + ".json": [ + "sub-02/ses-02/anat/sub-02_ses-02_T1w.json" + ] + }, + "sub-02/ses-02/anat/sub-02_ses-02_T2w.json": [ + "sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz" + ], + "sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz": { + ".json": [ + "sub-02/ses-02/anat/sub-02_ses-02_T2w.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz": { + ".json": [ + "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + }, + "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json": [ + "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz" + ], + "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz": { + ".json": [ + "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json" + ] + }, + "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json": [ + "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz" + ], + "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json" + ] + } +} + diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipexclnonsc/README.txt b/ipexclnonsc/README.txt new file mode 100644 index 000000000..f592ae141 --- /dev/null +++ b/ipexclnonsc/README.txt @@ -0,0 +1,13 @@ +This exemplar dataset has not at time of writing been contributed +or proposed to any version of the Brain Imaging Data Structure (BIDS) specification. +It was created to demonstrate a hypothetical dataset structure +that would be deemed valid given all current Inheritance Principle criteria, +but should perhaps be forbidden in future iterations. + +It shows the scenario where there is a data file +for which there is only one applicable JSON metadata file, +and that JSON metadata file is only applicable to that one data file. +One would intuitively expect that such data would be specified as a sidecar pair, +with their filesystem paths differing only by file extension. +However it is technically possible for this situation to arise +despite those two files not being a sidecar pair. diff --git a/ipexclnonsc/dataset_description.json b/ipexclnonsc/dataset_description.json new file mode 100644 index 000000000..b3ee26f50 --- /dev/null +++ b/ipexclnonsc/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; exclusive non-sidecar match" +} + diff --git a/ipexclnonsc/sourcedata/ip_graph.json b/ipexclnonsc/sourcedata/ip_graph.json new file mode 100644 index 000000000..08b9e4501 --- /dev/null +++ b/ipexclnonsc/sourcedata/ip_graph.json @@ -0,0 +1,11 @@ +{ + "sub-01/func/sub-01_bold.json": [ + "sub-01/func/sub-01_task-rest_bold.nii.gz" + ], + "sub-01/func/sub-01_task-rest_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_bold.json" + ] + } +} + diff --git a/ipexclnonsc/sub-01/func/sub-01_bold.json b/ipexclnonsc/sub-01/func/sub-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipexclnonsc/sub-01/func/sub-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.nii.gz b/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/README.txt b/ipi1195e1/README.txt new file mode 100644 index 000000000..64534e758 --- /dev/null +++ b/ipi1195e1/README.txt @@ -0,0 +1,197 @@ +The following content is duplicated from a fork +of the Brain Imaging Data Structure (BIDS) specification. +It is referenced in GitHub Issue #1195 +(https://github.com/bids-standard/bids-specification/issues/1195), +and the code is located at: +https://github.com/Lestropie/bids-specification/pull/5. + + { + "bold.json", + "sub-01": { + "ses-01": { + "func": { + "sub-01_ses-01_bold.json", + "sub-01_ses-01_task-ovg_bold.json", + "sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01_ses-01_task-ovg_run-2_bold.json", + "sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01_ses-01_task-rest_bold.json" + } + }, + "ses-02": { + "func": { + "sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01_ses-02_task-rest_bold.nii.gz", + } + }, + "sub-01_bold.json" + }, + "sub-02": { + "ses-01": { + "func": { + "sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02_ses-01_res-high_bold.json", + "sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02_ses-01_res-low_task-rest_bold.nii.gz", + "sub-02_ses-01_res-low_bold.json", + "sub-02_ses-01_task-olr_bold.json", + "sub-02_ses-01_task-rest_bold.json" + } + } + }, + "task-olr_bold.json", + "task-ovg_bold.json", + "task-rest_bold.json" + } + + Applicable data files per metadata file + For each metadata file, the set of data files to which its contents are applicable is as follows: + + - bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz + + - task-olr_bold.json: + + - sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz + + - task-ovg_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + + - task-rest_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + - sub-01/sub-01_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-ovg_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_res-high_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-high_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_res-low_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-low_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_task-olr_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-olr_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_task-rest_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-rest_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + Applicable metadata files per data file + For each data file, the order in which the set of applicable metadata files would be loaded is as follows: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json + + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json + + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-01/sub-01_bold.json + + - sub-02_ses-01_res-high_task-olr_bold.nii.gz: + + - bold.json + - task-olr_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json + (ambiguous order) + + - sub-02_ses-01_res-high_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json + (ambiguous order) + + - sub-02_ses-01_res-low_task-olr_bold.nii.gz: + + - bold.json + - task-olr_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json + (ambiguous order) + + - sub-02_ses-01_res-low_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json + (ambiguous order) + diff --git a/ipi1195e1/bold.json b/ipi1195e1/bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/dataset_description.json b/ipi1195e1/dataset_description.json new file mode 100644 index 000000000..08bf134c9 --- /dev/null +++ b/ipi1195e1/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Issue 1195", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Issue #1195; example 1" +} diff --git a/ipi1195e1/sourcedata/ip_graph.json b/ipi1195e1/sourcedata/ip_graph.json new file mode 100644 index 000000000..34668e2d3 --- /dev/null +++ b/ipi1195e1/sourcedata/ip_graph.json @@ -0,0 +1,141 @@ +{ + "bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + + ], + "task-olr_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz" + ], + "task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz" + ], + "task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-01/sub-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + ".json": [ + "bold.json", + "task-olr_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + ".json": [ + "bold.json", + "task-olr_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + } +} diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz b/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz b/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-01/sub-01_bold.json b/ipi1195e1/sub-01/sub-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-01/sub-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/task-olr_bold.json b/ipi1195e1/task-olr_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/task-olr_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/task-ovg_bold.json b/ipi1195e1/task-ovg_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/task-ovg_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ipi1195e1/task-rest_bold.json b/ipi1195e1/task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ipi1195e1/task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/iploosemeta/README.txt b/iploosemeta/README.txt new file mode 100644 index 000000000..08997aa25 --- /dev/null +++ b/iploosemeta/README.txt @@ -0,0 +1,8 @@ +This exemplar dataset has not at time of writing been contributed +or proposed to any version of the Brain Imaging Data Structure (BIDS) specification. +It was created to demonstrate that it is possible for a metadata file to be present +yet not applicable to any data file; +it is unclear at time of writing whether this violates BIDS more generally, +however the Inheritance Principle as currently written does not forbid it. +This exemplar dataset should however produce a warning regarding such: +file "sub-01/anat/sub-01_T2w.json" is not applicable to any data file. diff --git a/iploosemeta/dataset_description.json b/iploosemeta/dataset_description.json new file mode 100644 index 000000000..ba94657d3 --- /dev/null +++ b/iploosemeta/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; loose metadata file ie. no associated data file" +} + diff --git a/iploosemeta/sourcedata/ip_graph.json b/iploosemeta/sourcedata/ip_graph.json new file mode 100644 index 000000000..7eb1a7160 --- /dev/null +++ b/iploosemeta/sourcedata/ip_graph.json @@ -0,0 +1,12 @@ +{ + "sub-01/anat/sub-01_T1w.json": [ + "sub-01/anat/sub-01_T1w.nii.gz" + ], + "sub-01/anat/sub-01_T1w.nii.gz": { + ".json": [ + "sub-01/anat/sub-01_T1w.json" + ] + }, + "sub-01/anat/sub-01_T2w.json": [ + ] +} diff --git a/iploosemeta/sub-01/anat/sub-01_T1w.json b/iploosemeta/sub-01/anat/sub-01_T1w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/iploosemeta/sub-01/anat/sub-01_T1w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/iploosemeta/sub-01/anat/sub-01_T1w.nii.gz b/iploosemeta/sub-01/anat/sub-01_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/iploosemeta/sub-01/anat/sub-01_T2w.json b/iploosemeta/sub-01/anat/sub-01_T2w.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/iploosemeta/sub-01/anat/sub-01_T2w.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/README.txt b/ippr1003ae1/README.txt new file mode 100644 index 000000000..ccb0c6e48 --- /dev/null +++ b/ippr1003ae1/README.txt @@ -0,0 +1,138 @@ +The following text is reproduced from GitHub repository "bids-specification" +within organisation "bids-standard", +specifically Pull Request #1003, +which was rejected for merge +(more details at https://github.com/bids-standard/bids-specification/pull/1003/files): + + ### Example 1: Complex inheritance scenario + + { + "bold.json": "", + "sub-01": { + "ses-01": { + "func": { + "sub-01_ses-01_bold.json": "", + "sub-01_ses-01_task-ovg_bold.json": "", + "sub-01_ses-01_task-ovg_run-1_bold.nii.gz": "", + "sub-01_ses-01_task-ovg_run-2_bold.nii.gz": "", + "sub-01_ses-01_task-ovg_run-2_bold.json": "", + "sub-01_ses-01_task-rest_bold.nii.gz": "", + "sub-01_ses-01_task-rest_bold.json": "", + } + }, + "ses-02": { + "func": { + "sub-01_ses-02_task-ovg_bold.nii.gz": "", + "sub-01_ses-02_task-rest_bold.nii.gz": "", + } + }, + "sub-01_bold.json": "", + }, + "sub-02": { + "ses-01": { + "func": { + "sub-02_ses-01_task-rest_bold.nii.gz": "", + "sub-02_ses-01_task-rest_bold.json": "", + } + } + }, + "task-ovg_bold.json": "", + "task-rest_bold.json": "", + } + + ### Applicable data files per metadata file + + For each metadata file, the set of data files to which its contents are + applicable is as follows: + + - `bold.json`: + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + - `sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz` + - `sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz` + + - `task-ovg_bold.json`: + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz` + + - `task-rest_bold.json`: + - `sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz` + - `sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz` + + - `sub-01/sub-01_bold.json`: + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + - `sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz` + - `sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz` + + - `sub-01/ses-01/sub-01_ses-01_bold.json`: + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz` + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + - `sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz` + + - `sub-01/ses-01/sub-01_ses-01_task-ovg_bold.json`: + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz` + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.json`: + - `sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz` + + - `sub-01/ses-01/sub-01_ses-01_task-rest_bold.json`: + - `sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz` + + - `sub-02/ses-01/sub-02_ses-01_task-rest_bold.json`: + - `sub-02/ses-01/sub-02_ses-01_task-rest_bold.nii.gz` + + ### Applicable metadata files per data file + + For each data file, the order in which the set of applicable metadata + files would be loaded is as follows: + + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz`: + - `bold.json` + - `task-ovg_bold.json` + - `sub-01/sub-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json` + + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz`: + - `bold.json` + - `task-ovg_bold.json` + - `sub-01/sub-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json` + + - `sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz`: + - `bold.json` + - `task-rest_bold.json` + - `sub-01/sub-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_bold.json` + - `sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json` + + - `sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz`: + - `bold.json` + - `task-ovg_bold.json` + - `sub-01/sub-01_bold.json` + + - `sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz`: + - `bold.json` + - `task-rest_bold.json` + - `sub-01/sub-01_bold.json` + + - `sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz`: + - `bold.json` + - `task-rest_bold.json` + - `sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json` + +Notes: + +- There are errors in the metadata association information + in the quoted text; + mostly arising from omission of the "func/" parent. + These are rectified in file "sourcedata/ip_graph.json". diff --git a/ippr1003ae1/bold.json b/ippr1003ae1/bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/dataset_description.json b/ippr1003ae1/dataset_description.json new file mode 100644 index 000000000..8f44e83a0 --- /dev/null +++ b/ippr1003ae1/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Pull Request 1003", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Pull Request #1003; advanced example 1" +} diff --git a/ippr1003ae1/sourcedata/ip_graph.json b/ippr1003ae1/sourcedata/ip_graph.json new file mode 100644 index 000000000..43f6e560c --- /dev/null +++ b/ippr1003ae1/sourcedata/ip_graph.json @@ -0,0 +1,94 @@ +{ + "bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz" + ], + "task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz" + ], + "task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/sub-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + } +} diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz b/ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz b/ippr1003ae1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/sub-01/sub-01_bold.json b/ippr1003ae1/sub-01/sub-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-01/sub-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz b/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae1/task-ovg_bold.json b/ippr1003ae1/task-ovg_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/task-ovg_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae1/task-rest_bold.json b/ippr1003ae1/task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae1/task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae2/README.txt b/ippr1003ae2/README.txt new file mode 100644 index 000000000..f985f473e --- /dev/null +++ b/ippr1003ae2/README.txt @@ -0,0 +1,42 @@ +The following text is reproduced from GitHub repository "bids-specification" +within organisation "bids-standard", +specifically Pull Request #1003, +which was rejected for merge +(more details at https://github.com/bids-standard/bids-specification/pull/1003/files): + + ### Example 2: Violation due to order ambiguity + + { + "sub-01": { + "func": { + "sub-01_acq-highres_bold.json": "", + "sub-01_acq-lowres_bold.json": "", + "sub-01_bold.json": "", + "sub-01_task-ovg_bold.json": "", + "sub-01_task-ovg_acq-highres_bold.nii.gz": "", + "sub-01_task-ovg_acq-lowres_bold.nii.gz": "", + "sub-01_task-rest_bold.json": "", + "sub-01_task-rest_acq-highres_bold.nii.gz": "", + "sub-01_task-rest_acq-lowres_bold.nii.gz": "", + } + } + } + + Data file `sub-01_ses-01_task-ovg_acq-highres_bold.nii.gz` has three metadata + files deemed applicable according to rule 2, all residing within the same directory: ( + `sub-01_bold.json`, + `sub-01_task-ovg_bold.json`, + `sub-01_acq-highres_bold.json`). + It is however impossible to determine a unique ordering of these files that + satisfies rule 4.a. The metadata contents to be associated with this data file + would be ambiguous if files `sub-01_task-ovg_bold.json` and `sub-01_acq-highres_bold.json` + were to contain differing values for the same key, as the ambiguous order in which + they were loaded would determine those contents. + +Notes: + +- This example dataset was synthesized specifically to demonstrate + violation of the Inheritance Principle + *even after* integration of the proposed ruleset changes in Pull Request #1003. + It should therefore fail when validated against that ruleset. + This does not however mean that it should fail against *all* rulesets. diff --git a/ippr1003ae2/dataset_description.json b/ippr1003ae2/dataset_description.json new file mode 100644 index 000000000..9b6869808 --- /dev/null +++ b/ippr1003ae2/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Pull Request 1003", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Pull Request #1003; non-compliant advanced example 2" +} diff --git a/ippr1003ae2/sourcedata/ip_graph.json b/ippr1003ae2/sourcedata/ip_graph.json new file mode 100644 index 000000000..767d3e73a --- /dev/null +++ b/ippr1003ae2/sourcedata/ip_graph.json @@ -0,0 +1,52 @@ +{ + "sub-01/func/sub-01_bold.json": [ + "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz", + "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz" + ], + "sub-01/func/sub-01_acq-highres_bold.json": [ + "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz" + ], + "sub-01/func/sub-01_acq-lowres_bold.json": [ + "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz" + ], + "sub-01/func/sub-01_task-ovg_bold.json": [ + "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz", + "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz" + ], + "sub-01/func/sub-01_task-rest_bold.json": [ + "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz", + "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz" + ], + "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_bold.json", + "sub-01/func/sub-01_acq-highres_bold.json", + "sub-01/func/sub-01_task-ovg_bold.json" + ] + }, + "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_bold.json", + "sub-01/func/sub-01_acq-lowres_bold.json", + "sub-01/func/sub-01_task-ovg_bold.json" + ] + }, + "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_bold.json", + "sub-01/func/sub-01_acq-highres_bold.json", + "sub-01/func/sub-01_task-rest_bold.json" + ] + }, + "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_bold.json", + "sub-01/func/sub-01_acq-lowres_bold.json", + "sub-01/func/sub-01_task-rest_bold.json" + ] + } +} diff --git a/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json b/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae2/sub-01/func/sub-01_bold.json b/ippr1003ae2/sub-01/func/sub-01_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae2/sub-01/func/sub-01_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz b/ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz b/ippr1003ae2/sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003ae2/sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz b/ippr1003ae2/sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae2/sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz b/ippr1003ae2/sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003e1v1/README.txt b/ippr1003e1v1/README.txt new file mode 100644 index 000000000..887611581 --- /dev/null +++ b/ippr1003e1v1/README.txt @@ -0,0 +1,32 @@ +The following text is reproduced from GitHub repository "bids-specification" +within organisation "bids-standard", +specifically Pull Request #1003, +which was rejected for merge +(more details at https://github.com/bids-standard/bids-specification/pull/1003/files): + + Example 1: Single metadata file applicable to multiple data files + + { + "sub-01": { + "anat": { + "sub-01_part-real_T2starw.nii.gz", + "sub-01_part-imag_T2starw.nii.gz", + "sub-01_T2starw.json", + } + } + } + + For file `sub-01_T2starw.json`, there does not exist an immediately corresponding data file + with the same basename but different file extension; for instance `sub-01_T2starw.nii.gz`. + It is however applicable to both data files `sub-01_part-real_T2starw.nii.gz` and + `sub-01_part-imag_T2starw.nii.gz`, since it possesses the same suffix "`T2starw`" + and its entities are a subset of those present in the data filename in both cases. + This storage structure is appropriate for such data given that the real and imaginary + components of complex image data would be yielded by a single execution of an MRI sequence, + with a fixed common set of acquisition parameters. + +Notes: + +- This exemplar dataset reproduces the description verbatim. + A sister dataset "ippr1003e1v2" shows a related scenario omitted from this Pull Request, + where the complex data are stored as a magnitude-phase pair rather than a real-imaginary pair. diff --git a/ippr1003e1v1/dataset_description.json b/ippr1003e1v1/dataset_description.json new file mode 100644 index 000000000..bc08b052e --- /dev/null +++ b/ippr1003e1v1/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Pull Request 1003", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Pull Request #1003; example 1; version 1" +} diff --git a/ippr1003e1v1/sourcedata/ip_graph.json b/ippr1003e1v1/sourcedata/ip_graph.json new file mode 100644 index 000000000..1a29667bb --- /dev/null +++ b/ippr1003e1v1/sourcedata/ip_graph.json @@ -0,0 +1,16 @@ +{ + "sub-01/anat/sub-01_T2starw.json": [ + "sub-01/anat/sub-01_part-real_T2starw.nii.gz", + "sub-01/anat/sub-01_part-imag_T2starw.nii.gz" + ], + "sub-01/anat/sub-01_part-real_T2starw.nii.gz": { + ".json": [ + "sub-01/anat/sub-01_T2starw.json" + ] + }, + "sub-01/anat/sub-01_part-imag_T2starw.nii.gz": { + ".json": [ + "sub-01/anat/sub-01_T2starw.json" + ] + } +} diff --git a/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json b/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json new file mode 100644 index 000000000..bfd870e45 --- /dev/null +++ b/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json @@ -0,0 +1,3 @@ +{ +} + diff --git a/ippr1003e1v1/sub-01/anat/sub-01_part-imag_T2starw.nii.gz b/ippr1003e1v1/sub-01/anat/sub-01_part-imag_T2starw.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003e1v1/sub-01/anat/sub-01_part-real_T2starw.nii.gz b/ippr1003e1v1/sub-01/anat/sub-01_part-real_T2starw.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003e1v2/README.txt b/ippr1003e1v2/README.txt new file mode 100644 index 000000000..5f3ee965b --- /dev/null +++ b/ippr1003e1v2/README.txt @@ -0,0 +1,59 @@ +The following text is reproduced from GitHub repository "bids-specification" +within organisation "bids-standard", +specifically Pull Request #1003, +which was rejected for merge +(more details at https://github.com/bids-standard/bids-specification/pull/1003/files): + + Example 1: Single metadata file applicable to multiple data files + + { + "sub-01": { + "anat": { + "sub-01_part-real_T2starw.nii.gz", + "sub-01_part-imag_T2starw.nii.gz", + "sub-01_T2starw.json", + } + } + } + + For file `sub-01_T2starw.json`, there does not exist an immediately corresponding data file + with the same basename but different file extension; for instance `sub-01_T2starw.nii.gz`. + It is however applicable to both data files `sub-01_part-real_T2starw.nii.gz` and + `sub-01_part-imag_T2starw.nii.gz`, since it possesses the same suffix "`T2starw`" + and its entities are a subset of those present in the data filename in both cases. + This storage structure is appropriate for such data given that the real and imaginary + components of complex image data would be yielded by a single execution of an MRI sequence, + with a fixed common set of acquisition parameters. + +Notes: + +- This exemplar dataset presents an alternative scenario to the text description, + where the complex data are encoded as a magnitude-phase image pair + instead of the shown real-imaginary pair. + + The actual filesystem structure of this dataset is instead: + +{ + "sub-01": { + "anat": { + "sub-01_part-mag_T2starw.nii.gz", + "sub-01_part-phase_T2starw.json", + "sub-01_part-phase_T2starw.nii.gz", + "sub-01_T2starw.json", + } + } + } + +- This distinction has consequences with respect to the Inheritance Principle. + Under the initial definition of the Inheritance Principle, + this filesystem structure would be invalid: + data file "sub-01_part-phase_T2starw.nii.gz" + has two potentially applicable JSON metadata files, + but these two files reside at the same level in the filesystem hierarchy, + which is in violation of Rule 4. + Pull Request #1003 included modifications to the Inheritance Principle itself + that would make this structure permissible; + whether or not this dataset passes validation + will therefore depend on which ruleset is specified during the validation. + +- Sister dataset "ippr1003e1v1" shows the quoted example reproduced verbatim. diff --git a/ippr1003e1v2/dataset_description.json b/ippr1003e1v2/dataset_description.json new file mode 100644 index 000000000..69865e653 --- /dev/null +++ b/ippr1003e1v2/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Pull Request 1003", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Pull Request #1003; example 1; version 2" +} diff --git a/ippr1003e1v2/sourcedata/ip_graph.json b/ippr1003e1v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..c5056f9fa --- /dev/null +++ b/ippr1003e1v2/sourcedata/ip_graph.json @@ -0,0 +1,20 @@ +{ + "sub-01/anat/sub-01_T2starw.json": [ + "sub-01/anat/sub-01_part-mag_T2starw.nii.gz", + "sub-01/anat/sub-01_part-phase_T2starw.nii.gz" + ], + "sub-01/anat/sub-01_part-phase_T2starw.json": [ + "sub-01/anat/sub-01_part-phase_T2starw.nii.gz" + ], + "sub-01/anat/sub-01_part-mag_T2starw.nii.gz": { + ".json": [ + "sub-01/anat/sub-01_T2starw.json" + ] + }, + "sub-01/anat/sub-01_part-phase_T2starw.nii.gz": { + ".json": [ + "sub-01/anat/sub-01_T2starw.json", + "sub-01/anat/sub-01_part-phase_T2starw.json" + ] + } +} diff --git a/ippr1003e1v2/sourcedata/ip_metadata.json b/ippr1003e1v2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..8c66f34ef --- /dev/null +++ b/ippr1003e1v2/sourcedata/ip_metadata.json @@ -0,0 +1,13 @@ +{ + "sub-01/anat/sub-01_part-mag_T2starw.nii.gz": { + ".json": { + "SharedMetadataKey": "SharedMetadataValue" + } + }, + "sub-01/anat/sub-01_part-phase_T2starw.nii.gz": { + ".json": { + "SharedMetadataKey": "SharedMetadataValue", + "Units": "Radians" + } + } +} diff --git a/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json b/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json new file mode 100644 index 000000000..4604d5a86 --- /dev/null +++ b/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json @@ -0,0 +1,4 @@ +{ + "SharedMetadataKey": "SharedMetadataValue" +} + diff --git a/ippr1003e1v2/sub-01/anat/sub-01_part-mag_T2starw.nii.gz b/ippr1003e1v2/sub-01/anat/sub-01_part-mag_T2starw.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json b/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json new file mode 100644 index 000000000..9871c2888 --- /dev/null +++ b/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json @@ -0,0 +1,3 @@ +{ + "Units": "Radians" +} diff --git a/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.nii.gz b/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.nii.gz new file mode 100644 index 000000000..e69de29bb From f9043ee1f6476e58d70283482cfa1e0d862f8b49 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 23 Jun 2025 23:27:47 +1000 Subject: [PATCH 02/14] Add metadata override info to some Inheritance Principle datasets --- ip170e1/sourcedata/ip_overrides.json | 5 +++++ ipabsent/sourcedata/ip_overrides.json | 2 ++ ippr1003e1v1/sourcedata/ip_overrides.json | 2 ++ ippr1003e1v2/sourcedata/ip_overrides.json | 2 ++ 4 files changed, 11 insertions(+) create mode 100644 ip170e1/sourcedata/ip_overrides.json create mode 100644 ipabsent/sourcedata/ip_overrides.json create mode 100644 ippr1003e1v1/sourcedata/ip_overrides.json create mode 100644 ippr1003e1v2/sourcedata/ip_overrides.json diff --git a/ip170e1/sourcedata/ip_overrides.json b/ip170e1/sourcedata/ip_overrides.json new file mode 100644 index 000000000..a0a6609de --- /dev/null +++ b/ip170e1/sourcedata/ip_overrides.json @@ -0,0 +1,5 @@ +{ + "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz": [ + "RepetitionTime" + ] +} diff --git a/ipabsent/sourcedata/ip_overrides.json b/ipabsent/sourcedata/ip_overrides.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ipabsent/sourcedata/ip_overrides.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ippr1003e1v1/sourcedata/ip_overrides.json b/ippr1003e1v1/sourcedata/ip_overrides.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ippr1003e1v1/sourcedata/ip_overrides.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ippr1003e1v2/sourcedata/ip_overrides.json b/ippr1003e1v2/sourcedata/ip_overrides.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ippr1003e1v2/sourcedata/ip_overrides.json @@ -0,0 +1,2 @@ +{ +} From 2117e119da13dcaba3cf8494ad0c2b3bba08ec59 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 23 Jun 2025 23:28:48 +1000 Subject: [PATCH 03/14] New Inheritance Principle demosntration datasets Datasets relate to restrictions on the directories in which it is permissible to place metadata files depending on their applicability. --- ip112badmetapathe1/README.txt | 36 +++++++++++++++++++ ip112badmetapathe1/dataset_description.json | 9 +++++ ip112badmetapathe1/sourcedata/ip_graph.json | 18 ++++++++++ .../sub-01/anat/sub-01_run-1_T1w.nii.gz | 0 .../sub-01/anat/sub-01_run-2_T1w.nii.gz | 0 ip112badmetapathe1/sub-01_T1w.json | 2 ++ .../sub-02/anat/sub-02_T1w.nii.gz | 0 ip112badmetapathe2v1/README.txt | 23 ++++++++++++ ip112badmetapathe2v1/dataset_description.json | 9 +++++ ip112badmetapathe2v1/sourcedata/ip_graph.json | 18 ++++++++++ .../func/sub-01_task-sist_run-1_bold.nii.gz | 0 .../func/sub-01_task-sist_run-2_bold.nii.gz | 0 .../sub-01/task-sist_bold.json | 2 ++ .../sub-02/func/sub-02_task-sist_bold.nii.gz | 0 ip112badmetapathe2v2/README.txt | 24 +++++++++++++ ip112badmetapathe2v2/dataset_description.json | 9 +++++ ip112badmetapathe2v2/sourcedata/ip_graph.json | 16 +++++++++ .../func/sub-01_task-sist_run-1_bold.nii.gz | 0 .../func/sub-01_task-sist_run-2_bold.nii.gz | 0 .../sub-01/task-sist_bold.json | 2 ++ ip170badrelpath/README.txt | 33 +++++++++++++++++ ip170badrelpath/dataset_description.json | 9 +++++ ip170badrelpath/sourcedata/ip_graph.json | 18 ++++++++++ .../sub-01/ses-01/anat/sub-01_T1w.json | 2 ++ .../anat/sub-01_ses-01_run-1_T1w.nii.gz | 0 .../anat/sub-01_ses-01_run-2_T1w.nii.gz | 0 .../ses-02/anat/sub-01_ses-02_T1w.nii.gz | 0 27 files changed, 230 insertions(+) create mode 100644 ip112badmetapathe1/README.txt create mode 100644 ip112badmetapathe1/dataset_description.json create mode 100644 ip112badmetapathe1/sourcedata/ip_graph.json create mode 100644 ip112badmetapathe1/sub-01/anat/sub-01_run-1_T1w.nii.gz create mode 100644 ip112badmetapathe1/sub-01/anat/sub-01_run-2_T1w.nii.gz create mode 100644 ip112badmetapathe1/sub-01_T1w.json create mode 100644 ip112badmetapathe1/sub-02/anat/sub-02_T1w.nii.gz create mode 100644 ip112badmetapathe2v1/README.txt create mode 100644 ip112badmetapathe2v1/dataset_description.json create mode 100644 ip112badmetapathe2v1/sourcedata/ip_graph.json create mode 100644 ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz create mode 100644 ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz create mode 100644 ip112badmetapathe2v1/sub-01/task-sist_bold.json create mode 100644 ip112badmetapathe2v1/sub-02/func/sub-02_task-sist_bold.nii.gz create mode 100644 ip112badmetapathe2v2/README.txt create mode 100644 ip112badmetapathe2v2/dataset_description.json create mode 100644 ip112badmetapathe2v2/sourcedata/ip_graph.json create mode 100644 ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz create mode 100644 ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz create mode 100644 ip112badmetapathe2v2/sub-01/task-sist_bold.json create mode 100644 ip170badrelpath/README.txt create mode 100644 ip170badrelpath/dataset_description.json create mode 100644 ip170badrelpath/sourcedata/ip_graph.json create mode 100644 ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json create mode 100644 ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz create mode 100644 ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz create mode 100644 ip170badrelpath/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz diff --git a/ip112badmetapathe1/README.txt b/ip112badmetapathe1/README.txt new file mode 100644 index 000000000..4d0f92167 --- /dev/null +++ b/ip112badmetapathe1/README.txt @@ -0,0 +1,36 @@ +The following exerpt is duplicated from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Files for a particular participant can exist only at participant level directory, + i.e /dataset/sub-*[/ses-*]/sub-*_T1w.json. + Similarly, any file that is not specific to a participant is to be declared + only at top level of dataset + for eg: task-sist_bold.json must be placed under /dataset/task-sist_bold.json. + +Notes: + +- There are two potential issues with the issue as described: + + - The T1-weighted image is not placed inside the "anat/" modality directory + as would be conventionally expected / is most common, + and the file name fails to account for the potential presence of the "ses" entity. + The example path would more suitably have been: + /dataset/sub-*[/ses-*]/anat/sub-*[_ses-*]_T1w.json. + + - The description fails to clarify that such files can be placed + only within *one of* potentially *multiple* "participant-level directories". + As exemplified by other Inheritance Principle examples, + it is permissible for metadata files to exist at a filesystem location + other than the lowest level modality directory. + The description fails to convey the fact that the example filesystem path presented + is only one of multiple possible parent directories for such a file; + for instance, location /dataset/sub-*[/ses-*]/sub-*[_ses-*]_T1w.json + is technically permissible also. + +- This particular dataset exemplifies violation of the first criterion. + Violation of the second criterion is exemplified + in sister datasets "ip112badmetapathe2v1" and "ip112badmetapathe2v2". + +- There are intentionally two T1w runs for sub-01 + so that the dataset does not trigger a warning + regarding an exclusively-matched non-sidecar data-metadata file pair. diff --git a/ip112badmetapathe1/dataset_description.json b/ip112badmetapathe1/dataset_description.json new file mode 100644 index 000000000..d374104b1 --- /dev/null +++ b/ip112badmetapathe1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; specification version 1.1.2; bad metadata path; example 1" +} + diff --git a/ip112badmetapathe1/sourcedata/ip_graph.json b/ip112badmetapathe1/sourcedata/ip_graph.json new file mode 100644 index 000000000..75e867769 --- /dev/null +++ b/ip112badmetapathe1/sourcedata/ip_graph.json @@ -0,0 +1,18 @@ +{ + "sub-01_T1w.json": [ + "sub-01/anat/sub-01_run-1_T1w.nii.gz", + "sub-01/anat/sub-01_run-2_T1w.nii.gz" + ], + "sub-01/anat/sub-01_run-1_T1w.nii.gz": { + ".json": [ + "sub-01_T1w.json" + ] + }, + "sub-01/anat/sub-01_run-2_T1w.nii.gz": { + ".json": [ + "sub-01_T1w.json" + ] + }, + "sub-02/anat/sub-02_T1w.nii.gz": { + } +} diff --git a/ip112badmetapathe1/sub-01/anat/sub-01_run-1_T1w.nii.gz b/ip112badmetapathe1/sub-01/anat/sub-01_run-1_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe1/sub-01/anat/sub-01_run-2_T1w.nii.gz b/ip112badmetapathe1/sub-01/anat/sub-01_run-2_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe1/sub-01_T1w.json b/ip112badmetapathe1/sub-01_T1w.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ip112badmetapathe1/sub-01_T1w.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ip112badmetapathe1/sub-02/anat/sub-02_T1w.nii.gz b/ip112badmetapathe1/sub-02/anat/sub-02_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v1/README.txt b/ip112badmetapathe2v1/README.txt new file mode 100644 index 000000000..0f848f612 --- /dev/null +++ b/ip112badmetapathe2v1/README.txt @@ -0,0 +1,23 @@ +The following exerpt is duplicated from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Files for a particular participant can exist only at participant level directory, + i.e /dataset/sub-*[/ses-*]/sub-*_T1w.json. + Similarly, any file that is not specific to a participant is to be declared + only at top level of dataset + for eg: task-sist_bold.json must be placed under /dataset/task-sist_bold.json. + +Notes: + +- This particular dataset exemplifies violation of the second criterion. + Violation of the first criterion is exemplified in sister dataset "ip112badmetapathe1". + +- In this first version of the example, + the derivative Inheritance Principle criterion + defined in version 1.7.0 of the specification + *is* also violated, + as the erroneous placement of the participant-agnosticcally-named metadata file + is violated by the presence of another participant to which the metadata file name matches. + A modified version of this example, + where that corresponding 1.7.0 version criterion is *not* violated, + is presented in sister dataset "ip112badmetapathe1v2". diff --git a/ip112badmetapathe2v1/dataset_description.json b/ip112badmetapathe2v1/dataset_description.json new file mode 100644 index 000000000..d9be0e2e7 --- /dev/null +++ b/ip112badmetapathe2v1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; specification version 1.1.2; bad metadata path; example 1; version 1" +} + diff --git a/ip112badmetapathe2v1/sourcedata/ip_graph.json b/ip112badmetapathe2v1/sourcedata/ip_graph.json new file mode 100644 index 000000000..a595ee0db --- /dev/null +++ b/ip112badmetapathe2v1/sourcedata/ip_graph.json @@ -0,0 +1,18 @@ +{ + "sub-01/task-sist_bold.json": [ + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { + ".json": [ + "sub-01/task-sist_bold.json" + ] + }, + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { + ".json": [ + "sub-01/task-sist_bold.json" + ] + }, + "sub-02/func/sub-02_task-sist_bold.nii.gz": { + } +} diff --git a/ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz b/ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz b/ip112badmetapathe2v1/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v1/sub-01/task-sist_bold.json b/ip112badmetapathe2v1/sub-01/task-sist_bold.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ip112badmetapathe2v1/sub-01/task-sist_bold.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ip112badmetapathe2v1/sub-02/func/sub-02_task-sist_bold.nii.gz b/ip112badmetapathe2v1/sub-02/func/sub-02_task-sist_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v2/README.txt b/ip112badmetapathe2v2/README.txt new file mode 100644 index 000000000..5f32fea58 --- /dev/null +++ b/ip112badmetapathe2v2/README.txt @@ -0,0 +1,24 @@ +The following exerpt is duplicated from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Files for a particular participant can exist only at participant level directory, + i.e /dataset/sub-*[/ses-*]/sub-*_T1w.json. + Similarly, any file that is not specific to a participant is to be declared + only at top level of dataset + for eg: task-sist_bold.json must be placed under /dataset/task-sist_bold.json. + +Notes: + +- This particular dataset exemplifies violation of the second criterion. + Violation of the first criterion is exemplified in sister dataset "ip112badmetapathe1". + +- In this second version of the example, + the derivative Inheritance Principle criterion + defined in version 1.7.0 of the specification + *is not* violated: + the erroneous placement of the participant-agnosticcally-named metadata file + nevertheless does not actually cause any data - metadata associations + that violate the corresponding criterion as written. + Another version of this example, + where that corresponding 1.7.0 version criterion *is* violated, + is presented in sister dataset "ip112badmetapathe1v1". diff --git a/ip112badmetapathe2v2/dataset_description.json b/ip112badmetapathe2v2/dataset_description.json new file mode 100644 index 000000000..c8e5e1ece --- /dev/null +++ b/ip112badmetapathe2v2/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; specification version 1.1.2; bad metadata path; example 1; version 2" +} + diff --git a/ip112badmetapathe2v2/sourcedata/ip_graph.json b/ip112badmetapathe2v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..1bdd49b08 --- /dev/null +++ b/ip112badmetapathe2v2/sourcedata/ip_graph.json @@ -0,0 +1,16 @@ +{ + "sub-01/task-sist_bold.json": [ + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz", + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz" + ], + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { + ".json": [ + "sub-01/task-sist_bold.json" + ] + }, + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { + ".json": [ + "sub-01/task-sist_bold.json" + ] + } +} diff --git a/ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz b/ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz b/ip112badmetapathe2v2/sub-01/func/sub-01_task-sist_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip112badmetapathe2v2/sub-01/task-sist_bold.json b/ip112badmetapathe2v2/sub-01/task-sist_bold.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ip112badmetapathe2v2/sub-01/task-sist_bold.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ip170badrelpath/README.txt b/ip170badrelpath/README.txt new file mode 100644 index 000000000..10aa7632d --- /dev/null +++ b/ip170badrelpath/README.txt @@ -0,0 +1,33 @@ +The following exerpt is duplicated from version 1.1.2 +of the Brain Imaging Data Structure (BIDS) specification: + + Files for a particular participant can exist only at participant level directory, + i.e /dataset/sub-*[/ses-*]/sub-*_T1w.json. + Similarly, any file that is not specific to a participant is to be declared + only at top level of dataset + for eg: task-sist_bold.json must be placed under /dataset/task-sist_bold.json. + +The following exerpt is duplicated from version 1.7.0 +of the Brain Imaging Data Structure (BIDS) specification: + + 2. For a given data file, any metadata file is applicable to that data file if: + + a. It is stored at the same directory level or higher; + b. The metadata and the data filenames possess the same suffix; + c. The metadata filename does not include any entity absent from the data filename. + + 3. A metadata file MUST NOT have a filename that would be otherwise applicable to some data file based on rules 2.b and 2.c but is made inapplicable based on its location in the directory structure as per rule 2.a. + +Notes: + +- This particular example dataset has been engineered in such a way + that it would satisfy the criteria described in BIDS 1.1.2 + but fail the rule introduced in BIDS 1.7.0. + File "sub-01/ses-01/anat/sub-01_T1w.json" is "in a participant level directory", + and its entities match file "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz", + yet it can't be associated with that data file due to not being within one of its parent directories. + +- Similarly to dataset "ip112badmetapathe*", + there are intentionally two T1w runs included in this dataset + in order to prevent unwanted warnings relating to an + exclusively-matched non-sidecar data-metadata file pair. diff --git a/ip170badrelpath/dataset_description.json b/ip170badrelpath/dataset_description.json new file mode 100644 index 000000000..776580d33 --- /dev/null +++ b/ip170badrelpath/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.7.0", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; specification version 1.7.0; bad filesystem relative path between data and metadata files" +} + diff --git a/ip170badrelpath/sourcedata/ip_graph.json b/ip170badrelpath/sourcedata/ip_graph.json new file mode 100644 index 000000000..c09242470 --- /dev/null +++ b/ip170badrelpath/sourcedata/ip_graph.json @@ -0,0 +1,18 @@ +{ + "sub-01/ses-01/anat/sub-01_T1w.json": [ + "sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz", + "sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz" + ], + "sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz": { + ".json": [ + "sub-01/ses-01/anat/sub-01_T1w.json" + ] + }, + "sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz": { + ".json": [ + "sub-01/ses-01/anat/sub-01_T1w.json" + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { + } +} diff --git a/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json b/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json @@ -0,0 +1,2 @@ +{ +} diff --git a/ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz b/ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz b/ip170badrelpath/sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ip170badrelpath/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz b/ip170badrelpath/sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz new file mode 100644 index 000000000..e69de29bb From ad7c9c74107144a0af20cb61417748fcb9e463ea Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Tue, 24 Jun 2025 15:26:58 +1000 Subject: [PATCH 04/14] Addition of DWI Inheritance Principle test datasets --- ipdwi001/README.txt | 3 ++ ipdwi001/dataset_description.json | 9 ++++ ipdwi001/sourcedata/ip_graph.json | 26 ++++++++++ ipdwi001/sourcedata/ip_metadata.json | 34 +++++++++++++ ipdwi001/sub-01/dwi/sub-01_dwi.bval | 1 + ipdwi001/sub-01/dwi/sub-01_dwi.bvec | 4 ++ ipdwi001/sub-01/dwi/sub-01_run-1_dwi.nii.gz | 0 ipdwi001/sub-01/dwi/sub-01_run-2_dwi.nii.gz | 0 ipdwi002/README.txt | 22 ++++++++ ipdwi002/dataset_description.json | 9 ++++ ipdwi002/dwi.bval | 1 + ipdwi002/dwi.bvec | 3 ++ ipdwi002/sourcedata/ip_graph.json | 44 ++++++++++++++++ ipdwi002/sourcedata/ip_metadata.json | 50 +++++++++++++++++++ .../dwi/sub-01_acq-default_run-1_dwi.nii.gz | 0 .../dwi/sub-01_acq-default_run-2_dwi.nii.gz | 0 .../dwi/sub-01_acq-nonstandard_dwi.bval | 1 + .../dwi/sub-01_acq-nonstandard_dwi.bvec | 3 ++ .../dwi/sub-01_acq-nonstandard_dwi.nii.gz | 0 ipdwi003/README.txt | 25 ++++++++++ ipdwi003/dataset_description.json | 9 ++++ ipdwi003/sourcedata/ip_graph.json | 44 ++++++++++++++++ ipdwi003/sourcedata/ip_metadata.json | 50 +++++++++++++++++++ .../dwi/sub-01_acq-default_run-1_dwi.nii.gz | 0 .../dwi/sub-01_acq-default_run-2_dwi.nii.gz | 0 .../dwi/sub-01_acq-nonstandard_dwi.bval | 1 + .../dwi/sub-01_acq-nonstandard_dwi.bvec | 3 ++ .../dwi/sub-01_acq-nonstandard_dwi.nii.gz | 0 ipdwi003/sub-01/dwi/sub-01_dwi.bval | 1 + ipdwi003/sub-01/dwi/sub-01_dwi.bvec | 3 ++ 30 files changed, 346 insertions(+) create mode 100644 ipdwi001/README.txt create mode 100644 ipdwi001/dataset_description.json create mode 100644 ipdwi001/sourcedata/ip_graph.json create mode 100644 ipdwi001/sourcedata/ip_metadata.json create mode 100644 ipdwi001/sub-01/dwi/sub-01_dwi.bval create mode 100644 ipdwi001/sub-01/dwi/sub-01_dwi.bvec create mode 100644 ipdwi001/sub-01/dwi/sub-01_run-1_dwi.nii.gz create mode 100644 ipdwi001/sub-01/dwi/sub-01_run-2_dwi.nii.gz create mode 100644 ipdwi002/README.txt create mode 100644 ipdwi002/dataset_description.json create mode 100644 ipdwi002/dwi.bval create mode 100644 ipdwi002/dwi.bvec create mode 100644 ipdwi002/sourcedata/ip_graph.json create mode 100644 ipdwi002/sourcedata/ip_metadata.json create mode 100644 ipdwi002/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz create mode 100644 ipdwi002/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz create mode 100644 ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval create mode 100644 ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec create mode 100644 ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz create mode 100644 ipdwi003/README.txt create mode 100644 ipdwi003/dataset_description.json create mode 100644 ipdwi003/sourcedata/ip_graph.json create mode 100644 ipdwi003/sourcedata/ip_metadata.json create mode 100644 ipdwi003/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz create mode 100644 ipdwi003/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz create mode 100644 ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval create mode 100644 ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec create mode 100644 ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz create mode 100644 ipdwi003/sub-01/dwi/sub-01_dwi.bval create mode 100644 ipdwi003/sub-01/dwi/sub-01_dwi.bvec diff --git a/ipdwi001/README.txt b/ipdwi001/README.txt new file mode 100644 index 000000000..3d8cfecd7 --- /dev/null +++ b/ipdwi001/README.txt @@ -0,0 +1,3 @@ +This dataset exemplifies how a DWI gradient table, +encoded as an FSL .bvec / .bval file pair, +can be associated with multiple DWI data files. diff --git a/ipdwi001/dataset_description.json b/ipdwi001/dataset_description.json new file mode 100644 index 000000000..707527d89 --- /dev/null +++ b/ipdwi001/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; DWI metadata; example 1" +} + diff --git a/ipdwi001/sourcedata/ip_graph.json b/ipdwi001/sourcedata/ip_graph.json new file mode 100644 index 000000000..62a642167 --- /dev/null +++ b/ipdwi001/sourcedata/ip_graph.json @@ -0,0 +1,26 @@ +{ + "sub-01/dwi/sub-01_dwi.bval": [ + "sub-01/dwi/sub-01_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_run-2_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_dwi.bvec": [ + "sub-01/dwi/sub-01_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_run-2_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_run-1_dwi.nii.gz": { + ".bval": [ + "sub-01/dwi/sub-01_dwi.bval" + ], + ".bvec": [ + "sub-01/dwi/sub-01_dwi.bvec" + ] + }, + "sub-01/dwi/sub-01_run-2_dwi.nii.gz": { + ".bval": [ + "sub-01/dwi/sub-01_dwi.bval" + ], + ".bvec": [ + "sub-01/dwi/sub-01_dwi.bvec" + ] + } +} diff --git a/ipdwi001/sourcedata/ip_metadata.json b/ipdwi001/sourcedata/ip_metadata.json new file mode 100644 index 000000000..27f1bdc65 --- /dev/null +++ b/ipdwi001/sourcedata/ip_metadata.json @@ -0,0 +1,34 @@ +{ + "sub-01/dwi/sub-01_run-1_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + }, + "sub-01/dwi/sub-01_run-2_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + } +} diff --git a/ipdwi001/sub-01/dwi/sub-01_dwi.bval b/ipdwi001/sub-01/dwi/sub-01_dwi.bval new file mode 100644 index 000000000..a2e6d7823 --- /dev/null +++ b/ipdwi001/sub-01/dwi/sub-01_dwi.bval @@ -0,0 +1 @@ +0 1 2 3 4 5 6 diff --git a/ipdwi001/sub-01/dwi/sub-01_dwi.bvec b/ipdwi001/sub-01/dwi/sub-01_dwi.bvec new file mode 100644 index 000000000..da9766e8f --- /dev/null +++ b/ipdwi001/sub-01/dwi/sub-01_dwi.bvec @@ -0,0 +1,4 @@ +0.10 0.11 0.12 0.13 0.14 0.15 0.16 +0.20 0.21 0.22 0.23 0.24 0.25 0.26 +0.30 0.31 0.32 0.33 0.34 0.35 0.36 + diff --git a/ipdwi001/sub-01/dwi/sub-01_run-1_dwi.nii.gz b/ipdwi001/sub-01/dwi/sub-01_run-1_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi001/sub-01/dwi/sub-01_run-2_dwi.nii.gz b/ipdwi001/sub-01/dwi/sub-01_run-2_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi002/README.txt b/ipdwi002/README.txt new file mode 100644 index 000000000..d6920bc84 --- /dev/null +++ b/ipdwi002/README.txt @@ -0,0 +1,22 @@ +This example demonstrates the overloading of non-JSON metadata. +For images "sub-01/dwi/sub-01_acq-default_run-*_dwi.nii.gz", +the "default" DWI gradient table stored in "dwi.bvec" & "dwi.bval" is used. +For image "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz", +there are sidecar gradient table files; +the latter should be what is associated *exclusively* with that image. + +This example is crafted in such a way +that the dataset conforms to the Inheritance Principle as written in BIDS 1.x. +It does involve the overriding of metadata, +only in the form of DWI gradient table data rather than key-value metadata. +But because the diffusion gradient table files are at different levels +within the filesystem hierarchy, +the suitable files to use can be determined based on that specification. +Sister dataset "ipdwi003" shows a very similar scenario +that vioates the 1.x specification +but can be deemed acceptable by proposed augmentations to the Principle. + +There are two runs of the "acq-default" image included intentionally: +if only one such run were specified, +then the dataset would raise a warning unrelated to the purpose of the dataset, +due to an exclusive non-sidecar data-metadata pairing. diff --git a/ipdwi002/dataset_description.json b/ipdwi002/dataset_description.json new file mode 100644 index 000000000..15763c0c3 --- /dev/null +++ b/ipdwi002/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; DWI metadata; example 2" +} + diff --git a/ipdwi002/dwi.bval b/ipdwi002/dwi.bval new file mode 100644 index 000000000..a2e6d7823 --- /dev/null +++ b/ipdwi002/dwi.bval @@ -0,0 +1 @@ +0 1 2 3 4 5 6 diff --git a/ipdwi002/dwi.bvec b/ipdwi002/dwi.bvec new file mode 100644 index 000000000..10d0603e2 --- /dev/null +++ b/ipdwi002/dwi.bvec @@ -0,0 +1,3 @@ +0.10 0.11 0.12 0.13 0.14 0.15 0.16 +0.20 0.21 0.22 0.23 0.24 0.25 0.26 +0.30 0.31 0.32 0.33 0.34 0.35 0.36 diff --git a/ipdwi002/sourcedata/ip_graph.json b/ipdwi002/sourcedata/ip_graph.json new file mode 100644 index 000000000..4fd65def1 --- /dev/null +++ b/ipdwi002/sourcedata/ip_graph.json @@ -0,0 +1,44 @@ +{ + "dwi.bval": [ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "dwi.bvec": [ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval": [ + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec": [ + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { + ".bval": [ + "dwi.bval" + ], + ".bvec": [ + "dwi.bvec" + ] + }, + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { + ".bval": [ + "dwi.bval" + ], + ".bvec": [ + "dwi.bvec" + ] + }, + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { + ".bval": [ + "dwi.bval", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval" + ], + ".bvec": [ + "dwi.bvec", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" + ] + } +} diff --git a/ipdwi002/sourcedata/ip_metadata.json b/ipdwi002/sourcedata/ip_metadata.json new file mode 100644 index 000000000..d124de6c7 --- /dev/null +++ b/ipdwi002/sourcedata/ip_metadata.json @@ -0,0 +1,50 @@ +{ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + }, + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + }, + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39 + ] + ] + } +} diff --git a/ipdwi002/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz b/ipdwi002/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi002/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz b/ipdwi002/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval b/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval new file mode 100644 index 000000000..42640be81 --- /dev/null +++ b/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval @@ -0,0 +1 @@ +0 1 2 3 4 5 6 7 8 9 diff --git a/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec b/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec new file mode 100644 index 000000000..b0fda1354 --- /dev/null +++ b/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec @@ -0,0 +1,3 @@ +0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 +0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 +0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 diff --git a/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz b/ipdwi002/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi003/README.txt b/ipdwi003/README.txt new file mode 100644 index 000000000..68969c2c1 --- /dev/null +++ b/ipdwi003/README.txt @@ -0,0 +1,25 @@ +This example demonstrates tehe overloading of non-JSON metadata +where there are multiple applicable metadata files for a data file +within a single level of the filesystem hierarchy. +Because of this, +the dataset is not valid under any tagged version of the BIDS specification +at time of writing; +it may however be considered permissible +under proposed future augmentations of the Inheritance Principle +(see for example Pull Request #1003 and Issue #1195: +https://github.com/bids-standard/bids-specification/pull/1003 +https://github.com/bids-standard/bids-specification/issues/1195 + +This dataset is very similar to sister dataset "ipdwi002". +The difference is that in "ipdwi002", +the multiple applicable diffusion gradient table files +are placed at different levels of the filesystem hierarchy, +whereas here in "ipdwi003" they are at the same level. +The precedence of these files must therefore be made +by a speculative Inheritance Principle ruleset +based not exclusively by directory, but also by file name. + +There are two runs of the "acq-default" image included intentionally: +if only one such run were specified, +then the dataset would raise a warning unrelated to the purpose of the dataset, +due to an exclusive non-sidecar data-metadata pairing. diff --git a/ipdwi003/dataset_description.json b/ipdwi003/dataset_description.json new file mode 100644 index 000000000..4ba285862 --- /dev/null +++ b/ipdwi003/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "dev", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS proposal Pull Request #1003; DWI metadata; example 3" +} + diff --git a/ipdwi003/sourcedata/ip_graph.json b/ipdwi003/sourcedata/ip_graph.json new file mode 100644 index 000000000..31b44a1ad --- /dev/null +++ b/ipdwi003/sourcedata/ip_graph.json @@ -0,0 +1,44 @@ +{ + "sub-01/dwi/sub-01_dwi.bval": [ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_dwi.bvec": [ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval": [ + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec": [ + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + ], + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { + ".bval": [ + "sub-01/dwi/sub-01_dwi.bval" + ], + ".bvec": [ + "sub-01/dwi/sub-01_dwi.bvec" + ] + }, + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { + ".bval": [ + "sub-01/dwi/sub-01_dwi.bval" + ], + ".bvec": [ + "sub-01/dwi/sub-01_dwi.bvec" + ] + }, + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { + ".bval": [ + "sub-01/dwi/sub-01_dwi.bval", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval" + ], + ".bvec": [ + "sub-01/dwi/sub-01_dwi.bvec", + "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" + ] + } +} diff --git a/ipdwi003/sourcedata/ip_metadata.json b/ipdwi003/sourcedata/ip_metadata.json new file mode 100644 index 000000000..d124de6c7 --- /dev/null +++ b/ipdwi003/sourcedata/ip_metadata.json @@ -0,0 +1,50 @@ +{ + "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + }, + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36 + ] + ] + }, + "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { + ".bval": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 + ], + ".bvec": [ + [ + 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19 + ], + [ + 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29 + ], + [ + 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39 + ] + ] + } +} diff --git a/ipdwi003/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz b/ipdwi003/sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi003/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz b/ipdwi003/sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval b/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval new file mode 100644 index 000000000..42640be81 --- /dev/null +++ b/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bval @@ -0,0 +1 @@ +0 1 2 3 4 5 6 7 8 9 diff --git a/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec b/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec new file mode 100644 index 000000000..b0fda1354 --- /dev/null +++ b/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec @@ -0,0 +1,3 @@ +0.10 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 +0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 +0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 diff --git a/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz b/ipdwi003/sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipdwi003/sub-01/dwi/sub-01_dwi.bval b/ipdwi003/sub-01/dwi/sub-01_dwi.bval new file mode 100644 index 000000000..a2e6d7823 --- /dev/null +++ b/ipdwi003/sub-01/dwi/sub-01_dwi.bval @@ -0,0 +1 @@ +0 1 2 3 4 5 6 diff --git a/ipdwi003/sub-01/dwi/sub-01_dwi.bvec b/ipdwi003/sub-01/dwi/sub-01_dwi.bvec new file mode 100644 index 000000000..10d0603e2 --- /dev/null +++ b/ipdwi003/sub-01/dwi/sub-01_dwi.bvec @@ -0,0 +1,3 @@ +0.10 0.11 0.12 0.13 0.14 0.15 0.16 +0.20 0.21 0.22 0.23 0.24 0.25 0.26 +0.30 0.31 0.32 0.33 0.34 0.35 0.36 From d9dddc437bba0849fff0a769177f4814e5e5afc1 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Tue, 24 Jun 2025 17:13:44 +1000 Subject: [PATCH 05/14] ipdwi00*: Update IP graphs to reflect pruning --- ipdwi001/sourcedata/ip_graph.json | 16 ++++------------ ipdwi002/sourcedata/ip_graph.json | 32 ++++++++----------------------- ipdwi003/sourcedata/ip_graph.json | 32 ++++++++----------------------- 3 files changed, 20 insertions(+), 60 deletions(-) diff --git a/ipdwi001/sourcedata/ip_graph.json b/ipdwi001/sourcedata/ip_graph.json index 62a642167..bcf3d238c 100644 --- a/ipdwi001/sourcedata/ip_graph.json +++ b/ipdwi001/sourcedata/ip_graph.json @@ -8,19 +8,11 @@ "sub-01/dwi/sub-01_run-2_dwi.nii.gz" ], "sub-01/dwi/sub-01_run-1_dwi.nii.gz": { - ".bval": [ - "sub-01/dwi/sub-01_dwi.bval" - ], - ".bvec": [ - "sub-01/dwi/sub-01_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_dwi.bvec" }, "sub-01/dwi/sub-01_run-2_dwi.nii.gz": { - ".bval": [ - "sub-01/dwi/sub-01_dwi.bval" - ], - ".bvec": [ - "sub-01/dwi/sub-01_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_dwi.bvec" } } diff --git a/ipdwi002/sourcedata/ip_graph.json b/ipdwi002/sourcedata/ip_graph.json index 4fd65def1..d3a466f61 100644 --- a/ipdwi002/sourcedata/ip_graph.json +++ b/ipdwi002/sourcedata/ip_graph.json @@ -1,13 +1,11 @@ { "dwi.bval": [ "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz" ], "dwi.bvec": [ "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz" ], "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval": [ "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" @@ -16,29 +14,15 @@ "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" ], "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { - ".bval": [ - "dwi.bval" - ], - ".bvec": [ - "dwi.bvec" - ] + ".bval": "dwi.bval", + ".bvec": "dwi.bvec" }, "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { - ".bval": [ - "dwi.bval" - ], - ".bvec": [ - "dwi.bvec" - ] + ".bval": "dwi.bval", + ".bvec": "dwi.bvec" }, "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { - ".bval": [ - "dwi.bval", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval" - ], - ".bvec": [ - "dwi.bvec", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" } } diff --git a/ipdwi003/sourcedata/ip_graph.json b/ipdwi003/sourcedata/ip_graph.json index 31b44a1ad..b863afa4b 100644 --- a/ipdwi003/sourcedata/ip_graph.json +++ b/ipdwi003/sourcedata/ip_graph.json @@ -1,13 +1,11 @@ { "sub-01/dwi/sub-01_dwi.bval": [ "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz" ], "sub-01/dwi/sub-01_dwi.bvec": [ "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" + "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz" ], "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval": [ "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" @@ -16,29 +14,15 @@ "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz" ], "sub-01/dwi/sub-01_acq-default_run-1_dwi.nii.gz": { - ".bval": [ - "sub-01/dwi/sub-01_dwi.bval" - ], - ".bvec": [ - "sub-01/dwi/sub-01_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_dwi.bvec" }, "sub-01/dwi/sub-01_acq-default_run-2_dwi.nii.gz": { - ".bval": [ - "sub-01/dwi/sub-01_dwi.bval" - ], - ".bvec": [ - "sub-01/dwi/sub-01_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_dwi.bvec" }, "sub-01/dwi/sub-01_acq-nonstandard_dwi.nii.gz": { - ".bval": [ - "sub-01/dwi/sub-01_dwi.bval", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval" - ], - ".bvec": [ - "sub-01/dwi/sub-01_dwi.bvec", - "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" - ] + ".bval": "sub-01/dwi/sub-01_acq-nonstandard_dwi.bval", + ".bvec": "sub-01/dwi/sub-01_acq-nonstandard_dwi.bvec" } } From 66a620713cc9c03e23956e3af9a46bda9ecbd051 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Fri, 27 Jun 2025 11:29:58 +1000 Subject: [PATCH 06/14] New datasets "ipmultielfc1v*" These datasets exemplify what happens when there are entity-linked file collections intersecting across multiple entities. --- ipmultielfce1v1/README.md | 7 ++ ipmultielfce1v1/dataset_description.json | 9 ++ ipmultielfce1v1/sourcedata/ip_graph.json | 50 ++++++++++ ...ub-01_task-movie_echo-1_part-mag_bold.json | 18 ++++ ...-01_task-movie_echo-1_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-1_part-phase_bold.json | 19 ++++ ...1_task-movie_echo-1_part-phase_bold.nii.gz | 0 ...ub-01_task-movie_echo-2_part-mag_bold.json | 18 ++++ ...-01_task-movie_echo-2_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-2_part-phase_bold.json | 19 ++++ ...1_task-movie_echo-2_part-phase_bold.nii.gz | 0 ...ub-01_task-movie_echo-3_part-mag_bold.json | 18 ++++ ...-01_task-movie_echo-3_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-3_part-phase_bold.json | 19 ++++ ...1_task-movie_echo-3_part-phase_bold.nii.gz | 0 ipmultielfce1v2/README.md | 20 ++++ ipmultielfce1v2/dataset_description.json | 9 ++ ipmultielfce1v2/sourcedata/ip_graph.json | 98 +++++++++++++++++++ .../sub-01/func/sub-01_task-movie_bold.json | 5 + .../func/sub-01_task-movie_echo-1_bold.json | 4 + ...ub-01_task-movie_echo-1_part-mag_bold.json | 12 +++ ...-01_task-movie_echo-1_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-1_part-phase_bold.json | 12 +++ ...1_task-movie_echo-1_part-phase_bold.nii.gz | 0 .../func/sub-01_task-movie_echo-2_bold.json | 4 + ...ub-01_task-movie_echo-2_part-mag_bold.json | 12 +++ ...-01_task-movie_echo-2_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-2_part-phase_bold.json | 12 +++ ...1_task-movie_echo-2_part-phase_bold.nii.gz | 0 .../func/sub-01_task-movie_echo-3_bold.json | 4 + ...ub-01_task-movie_echo-3_part-mag_bold.json | 12 +++ ...-01_task-movie_echo-3_part-mag_bold.nii.gz | 0 ...-01_task-movie_echo-3_part-phase_bold.json | 12 +++ ...1_task-movie_echo-3_part-phase_bold.nii.gz | 0 .../func/sub-01_task-movie_part-mag_bold.json | 3 + .../sub-01_task-movie_part-phase_bold.json | 4 + 36 files changed, 400 insertions(+) create mode 100644 ipmultielfce1v1/README.md create mode 100644 ipmultielfce1v1/dataset_description.json create mode 100644 ipmultielfce1v1/sourcedata/ip_graph.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json create mode 100644 ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v2/README.md create mode 100644 ipmultielfce1v2/dataset_description.json create mode 100644 ipmultielfce1v2/sourcedata/ip_graph.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-mag_bold.json create mode 100644 ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-phase_bold.json diff --git a/ipmultielfce1v1/README.md b/ipmultielfce1v1/README.md new file mode 100644 index 000000000..09c4d76cd --- /dev/null +++ b/ipmultielfce1v1/README.md @@ -0,0 +1,7 @@ +This dataset exemplifies an issue whereby the 1.x version of the specification +has difficulty in capturing data wherein there are multiple intersecting +Entity-Lined File Collections. + +In this version 1 of the dataset, every data file has associated with it a sidecar JSON. +In sister dataset "ipmultielfce1v2", an alternative encoding of this example is shown, +which is predicated on a more flexible ruleset for the Inheritance Principle. diff --git a/ipmultielfce1v1/dataset_description.json b/ipmultielfce1v1/dataset_description.json new file mode 100644 index 000000000..b8f55c12b --- /dev/null +++ b/ipmultielfce1v1/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; multiple Entity-Linked File Collections; example 1; version 1" +} + diff --git a/ipmultielfce1v1/sourcedata/ip_graph.json b/ipmultielfce1v1/sourcedata/ip_graph.json new file mode 100644 index 000000000..1c57854c4 --- /dev/null +++ b/ipmultielfce1v1/sourcedata/ip_graph.json @@ -0,0 +1,50 @@ +{ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json" + ] + } +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json new file mode 100644 index 000000000..0cefe1c67 --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json @@ -0,0 +1,18 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE1", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 1, + "EchoTime": 0.015 +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json new file mode 100644 index 000000000..466e5ef5f --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json @@ -0,0 +1,19 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE1", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 1, + "EchoTime": 0.015, + "Units": "arbitrary" +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json new file mode 100644 index 000000000..02389b06c --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json @@ -0,0 +1,18 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE2", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 2, + "EchoTime": 0.035 +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json new file mode 100644 index 000000000..2b6bc5e2e --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json @@ -0,0 +1,19 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE2", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 2, + "EchoTime": 0.035, + "Units": "arbitrary" +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json new file mode 100644 index 000000000..390e73ea0 --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json @@ -0,0 +1,18 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE3", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 3, + "EchoTime": 0.055 +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json new file mode 100644 index 000000000..04e531b67 --- /dev/null +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json @@ -0,0 +1,19 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE3", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 3, + "EchoTime": 0.055, + "Units": "arbitrary" +} diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/README.md b/ipmultielfce1v2/README.md new file mode 100644 index 000000000..c340de065 --- /dev/null +++ b/ipmultielfce1v2/README.md @@ -0,0 +1,20 @@ +This dataset exemplifies an issue whereby the 1.x version of the specification +has difficulty in capturing data wherein there are multiple intersecting +Entity-Linked File Collections. + +An Entity-Linked File Collection is a set of files containing at least two data files, +wherein the entities within their file names differ only by the value for one specific entity. +Examples include complex data that are split into eg. "_part-mag" and "_part-phase", +and multi-echo data that are split into "_echo-#". +This formalism however fails to consider the fact that there may be sets of files +that intersect along multiple such entities. +THis dataset shows the example of a multi-echo fMRI acquisition where complex data are saved. +While there is no issue in deriving file names for these images, +under version 1.x of the BIDS specification it becomes impossible to appropriately exploit this structure +to store redundant metadata in higher-level JSON files to be applicable via the Inheritance Principle, +as a data file cannot inherit from multiple such files at a single level in the filesystem hierarchy. + +This dataset show how such data could plausibly be stored in a future BIDS specification. +It should be deemed invalid if evaluated under the 1.x version of the Inheritance Principle. +Sister dataset "ipmultielfce1v1" shows these same data without any exploitation of the Inheritance Principle, +which should be deemed valid under BIDS 1.x. diff --git a/ipmultielfce1v2/dataset_description.json b/ipmultielfce1v2/dataset_description.json new file mode 100644 index 000000000..b8f55c12b --- /dev/null +++ b/ipmultielfce1v2/dataset_description.json @@ -0,0 +1,9 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "1.1.2", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; BIDS version 1.1.2; multiple Entity-Linked File Collections; example 1; version 1" +} + diff --git a/ipmultielfce1v2/sourcedata/ip_graph.json b/ipmultielfce1v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..06ee7f009 --- /dev/null +++ b/ipmultielfce1v2/sourcedata/ip_graph.json @@ -0,0 +1,98 @@ +{ + "sub-01/func/sub-01_task-movie_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-2_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-3_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz", + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json": [ + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz" + ], + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-1_bold.json", + "sub-01/func/sub-01_task-movie_part-mag_bold.json", + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-1_bold.json", + "sub-01/func/sub-01_task-movie_part-phase_bold.json", + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-2_bold.json", + "sub-01/func/sub-01_task-movie_part-mag_bold.json", + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-2_bold.json", + "sub-01/func/sub-01_task-movie_part-phase_bold.json", + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-3_bold.json", + "sub-01/func/sub-01_task-movie_part-mag_bold.json", + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json" + ] + }, + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz": { + ".json": [ + "sub-01/func/sub-01_task-movie_bold.json", + "sub-01/func/sub-01_task-movie_echo-3_bold.json", + "sub-01/func/sub-01_task-movie_part-phase_bold.json", + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json" + ] + } +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json new file mode 100644 index 000000000..7fd1acbda --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json @@ -0,0 +1,5 @@ +{ + "Modality": "MR", + "ScanningSequence": "EP", + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+" +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_bold.json new file mode 100644 index 000000000..b793db7aa --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_bold.json @@ -0,0 +1,4 @@ +{ + "EchoNumber": 1, + "EchoTime": 0.015 +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json new file mode 100644 index 000000000..7a6f37297 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE1", + "ND", + "NORM", + "MOSAIC" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json new file mode 100644 index 000000000..c3a5606c0 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE1", + "ND", + "MOSAIC", + "PHASE" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_bold.json new file mode 100644 index 000000000..8262ba12d --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_bold.json @@ -0,0 +1,4 @@ +{ + "EchoNumber": 2, + "EchoTime": 0.035 +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json new file mode 100644 index 000000000..7ba6935d7 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE2", + "ND", + "NORM", + "MOSAIC" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json new file mode 100644 index 000000000..2d2482900 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE2", + "ND", + "MOSAIC", + "PHASE" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_bold.json new file mode 100644 index 000000000..031ef265e --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_bold.json @@ -0,0 +1,4 @@ +{ + "EchoNumber": 3, + "EchoTime": 0.045 +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json new file mode 100644 index 000000000..79b0aa8c5 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE3", + "ND", + "NORM", + "MOSAIC" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json new file mode 100644 index 000000000..5a7a94ff6 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json @@ -0,0 +1,12 @@ +{ + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE3", + "ND", + "MOSAIC", + "PHASE" + ] +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-mag_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-mag_bold.json new file mode 100644 index 000000000..79c3552ce --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-mag_bold.json @@ -0,0 +1,3 @@ +{ + "SeriesNumber": 53 +} diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-phase_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-phase_bold.json new file mode 100644 index 000000000..45db8a842 --- /dev/null +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_part-phase_bold.json @@ -0,0 +1,4 @@ +{ + "SeriesNumber": 54, + "Units": "arbitrary" +} From 23073001632ec462f469eead22df7dba9325e0ed Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Sun, 29 Jun 2025 19:48:45 +1000 Subject: [PATCH 07/14] Inheritance Principle datasets: Add some compulsory metadata --- ip112badmetapathe2v1/sub-01/task-sist_bold.json | 2 ++ ip112badmetapathe2v2/sub-01/task-sist_bold.json | 2 ++ .../sub-01_ses-test_task-overtverbgeneration_bold.json | 2 ++ .../sub-01_ses-test_task-overtverbgeneration_bold.json | 2 ++ ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json | 2 ++ ip112e2v2/task-xyz_acq-test1_bold.json | 2 ++ ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json | 4 +++- ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json | 4 +++- ip170e1/sourcedata/ip_metadata.json | 6 ++++-- ip170e1/task-rest_bold.json | 3 ++- .../func/sub-01_ses-test_task-overtverbgeneration_bold.json | 2 ++ .../sub-01_ses-test_task-overtverbgeneration_bold.json | 2 ++ ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json | 2 ++ .../sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json | 2 ++ .../sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json | 2 ++ .../sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json | 2 ++ .../sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json | 2 ++ .../sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json | 2 ++ .../sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json | 2 ++ .../sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json | 2 ++ .../sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json | 2 ++ ipexclnonsc/sub-01/func/sub-01_bold.json | 1 + ipi1195e1/task-olr_bold.json | 2 ++ ipi1195e1/task-ovg_bold.json | 2 ++ ipi1195e1/task-rest_bold.json | 2 ++ .../sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json | 4 +++- .../func/sub-01_task-movie_echo-1_part-phase_bold.json | 4 +++- .../sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json | 4 +++- .../func/sub-01_task-movie_echo-2_part-phase_bold.json | 4 +++- .../sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json | 4 +++- .../func/sub-01_task-movie_echo-3_part-phase_bold.json | 4 +++- ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json | 4 +++- ippr1003ae1/task-ovg_bold.json | 2 ++ ippr1003ae1/task-rest_bold.json | 2 ++ ippr1003ae2/sub-01/func/sub-01_bold.json | 1 + ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json | 1 + ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json | 1 + 37 files changed, 81 insertions(+), 12 deletions(-) diff --git a/ip112badmetapathe2v1/sub-01/task-sist_bold.json b/ip112badmetapathe2v1/sub-01/task-sist_bold.json index 2c63c0851..8754948f7 100644 --- a/ip112badmetapathe2v1/sub-01/task-sist_bold.json +++ b/ip112badmetapathe2v1/sub-01/task-sist_bold.json @@ -1,2 +1,4 @@ { + "RepetitionTime": 1.0, + "TaskName": "SIST" } diff --git a/ip112badmetapathe2v2/sub-01/task-sist_bold.json b/ip112badmetapathe2v2/sub-01/task-sist_bold.json index 2c63c0851..8754948f7 100644 --- a/ip112badmetapathe2v2/sub-01/task-sist_bold.json +++ b/ip112badmetapathe2v2/sub-01/task-sist_bold.json @@ -1,2 +1,4 @@ { + "RepetitionTime": 1.0, + "TaskName": "SIST" } diff --git a/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json index bfd870e45..14016c2aa 100644 --- a/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip112e1bad/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json index bfd870e45..14016c2aa 100644 --- a/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip112e1good/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json index bfd870e45..fbb45a200 100644 --- a/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json +++ b/ip112e2v1/sub-01/func/sub-01_task-xyz_acq-test1_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "XYZ" } diff --git a/ip112e2v2/task-xyz_acq-test1_bold.json b/ip112e2v2/task-xyz_acq-test1_bold.json index bfd870e45..fbb45a200 100644 --- a/ip112e2v2/task-xyz_acq-test1_bold.json +++ b/ip112e2v2/task-xyz_acq-test1_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "XYZ" } diff --git a/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json b/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json index 6ccac03f3..11be4cc2c 100644 --- a/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json +++ b/ip112e3v1/sub-01/sub-01_task-xyz_acq-test1_bold.json @@ -1,3 +1,5 @@ { - "Source": "sub" + "RepetitionTime": 1.0, + "Source": "sub", + "TaskName": "XYZ" } diff --git a/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json b/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json index 8b36d88c6..25813ffff 100644 --- a/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json +++ b/ip112e3v2/sub-01/sub-01_task-xyz_acq-test1_bold.json @@ -1,4 +1,6 @@ { + "RepetitionTime": 1.0, "SubjectOnly": true, - "OverloadSource": "sub" + "OverloadSource": "sub", + "TaskName": "XYZ" } diff --git a/ip170e1/sourcedata/ip_metadata.json b/ip170e1/sourcedata/ip_metadata.json index b5e6c3005..916ed4a4b 100644 --- a/ip170e1/sourcedata/ip_metadata.json +++ b/ip170e1/sourcedata/ip_metadata.json @@ -2,13 +2,15 @@ "sub-01/func/sub-01_task-rest_acq-default_bold.nii.gz": { ".json": { "EchoTime": 0.040, - "RepetitionTime": 1.0 + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, "sub-01/func/sub-01_task-rest_acq-longtr_bold.nii.gz": { ".json": { "EchoTime": 0.040, - "RepetitionTime": 3.0 + "RepetitionTime": 3.0, + "TaskName": "Resting-state" } } } diff --git a/ip170e1/task-rest_bold.json b/ip170e1/task-rest_bold.json index b17cb947d..7d546dd71 100644 --- a/ip170e1/task-rest_bold.json +++ b/ip170e1/task-rest_bold.json @@ -1,4 +1,5 @@ { "EchoTime": 0.040, - "RepetitionTime": 1.0 + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json index bfd870e45..14016c2aa 100644 --- a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json index bfd870e45..14016c2aa 100644 --- a/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json index bfd870e45..fbb45a200 100644 --- a/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json +++ b/ip170e4/sub-01/func/sub-01_task-xyz_acq-test1_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "XYZ" } diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json index bfd870e45..3dfcd7397 100644 --- a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "TaskName" } diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json index bfd870e45..3dfcd7397 100644 --- a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "TaskName" } diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json index bfd870e45..3dfcd7397 100644 --- a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "TaskName" } diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json index bfd870e45..3dfcd7397 100644 --- a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "TaskName" } diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ipexclnonsc/sub-01/func/sub-01_bold.json b/ipexclnonsc/sub-01/func/sub-01_bold.json index bfd870e45..a084f706b 100644 --- a/ipexclnonsc/sub-01/func/sub-01_bold.json +++ b/ipexclnonsc/sub-01/func/sub-01_bold.json @@ -1,3 +1,4 @@ { + "RepetitionTime": 1.0 } diff --git a/ipi1195e1/task-olr_bold.json b/ipi1195e1/task-olr_bold.json index bfd870e45..01fb506c6 100644 --- a/ipi1195e1/task-olr_bold.json +++ b/ipi1195e1/task-olr_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval" } diff --git a/ipi1195e1/task-ovg_bold.json b/ipi1195e1/task-ovg_bold.json index bfd870e45..14016c2aa 100644 --- a/ipi1195e1/task-ovg_bold.json +++ b/ipi1195e1/task-ovg_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ipi1195e1/task-rest_bold.json b/ipi1195e1/task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ipi1195e1/task-rest_bold.json +++ b/ipi1195e1/task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json index 0cefe1c67..3df7ef3a6 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.json @@ -14,5 +14,7 @@ "SeriesNumber": 53, "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 1, - "EchoTime": 0.015 + "EchoTime": 0.015, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json index 466e5ef5f..e2c71d912 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.json @@ -15,5 +15,7 @@ "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 1, "EchoTime": 0.015, - "Units": "arbitrary" + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json index 02389b06c..d56dc3ef4 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.json @@ -14,5 +14,7 @@ "SeriesNumber": 53, "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 2, - "EchoTime": 0.035 + "EchoTime": 0.035, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json index 2b6bc5e2e..87bf9be34 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.json @@ -15,5 +15,7 @@ "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 2, "EchoTime": 0.035, - "Units": "arbitrary" + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json index 390e73ea0..cc1ac45b0 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.json @@ -14,5 +14,7 @@ "SeriesNumber": 53, "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 3, - "EchoTime": 0.055 + "EchoTime": 0.055, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json index 04e531b67..433e63c89 100644 --- a/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json +++ b/ipmultielfce1v1/sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.json @@ -15,5 +15,7 @@ "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", "EchoNumber": 3, "EchoTime": 0.055, - "Units": "arbitrary" + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json index 7fd1acbda..83cdf5b22 100644 --- a/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json +++ b/ipmultielfce1v2/sub-01/func/sub-01_task-movie_bold.json @@ -1,5 +1,7 @@ { "Modality": "MR", "ScanningSequence": "EP", - "ImageComments": "Unaliased MB4/PE4/LB SENSE1+" + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" } diff --git a/ippr1003ae1/task-ovg_bold.json b/ippr1003ae1/task-ovg_bold.json index bfd870e45..14016c2aa 100644 --- a/ippr1003ae1/task-ovg_bold.json +++ b/ippr1003ae1/task-ovg_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } diff --git a/ippr1003ae1/task-rest_bold.json b/ippr1003ae1/task-rest_bold.json index bfd870e45..1aedfae8a 100644 --- a/ippr1003ae1/task-rest_bold.json +++ b/ippr1003ae1/task-rest_bold.json @@ -1,3 +1,5 @@ { + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } diff --git a/ippr1003ae2/sub-01/func/sub-01_bold.json b/ippr1003ae2/sub-01/func/sub-01_bold.json index bfd870e45..a084f706b 100644 --- a/ippr1003ae2/sub-01/func/sub-01_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_bold.json @@ -1,3 +1,4 @@ { + "RepetitionTime": 1.0 } diff --git a/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json index bfd870e45..db22a3570 100644 --- a/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json @@ -1,3 +1,4 @@ { + "TaskName": "OvertVerbGeneration" } diff --git a/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json index bfd870e45..f40efd569 100644 --- a/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json @@ -1,3 +1,4 @@ { + "TaskName": "Resting-state" } From 7d8fbc4a44a579786ea990f6ce1634e964cee502 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Sun, 29 Jun 2025 20:21:02 +1000 Subject: [PATCH 08/14] ipexclnonsc: Don't fail validation for other reasons --- ipexclnonsc/sourcedata/ip_graph.json | 8 ++++---- .../func/{sub-01_bold.json => sub-01_task-rest_bold.json} | 0 ...est_bold.nii.gz => sub-01_task-rest_run-1_bold.nii.gz} | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename ipexclnonsc/sub-01/func/{sub-01_bold.json => sub-01_task-rest_bold.json} (100%) rename ipexclnonsc/sub-01/func/{sub-01_task-rest_bold.nii.gz => sub-01_task-rest_run-1_bold.nii.gz} (100%) diff --git a/ipexclnonsc/sourcedata/ip_graph.json b/ipexclnonsc/sourcedata/ip_graph.json index 08b9e4501..cf85c6fb5 100644 --- a/ipexclnonsc/sourcedata/ip_graph.json +++ b/ipexclnonsc/sourcedata/ip_graph.json @@ -1,10 +1,10 @@ { - "sub-01/func/sub-01_bold.json": [ - "sub-01/func/sub-01_task-rest_bold.nii.gz" + "sub-01/func/sub-01_task-rest_bold.json": [ + "sub-01/func/sub-01_task-rest_run-1_bold.nii.gz" ], - "sub-01/func/sub-01_task-rest_bold.nii.gz": { + "sub-01/func/sub-01_task-rest_run-1_bold.nii.gz": { ".json": [ - "sub-01/func/sub-01_bold.json" + "sub-01/func/sub-01_task-rest_bold.json" ] } } diff --git a/ipexclnonsc/sub-01/func/sub-01_bold.json b/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json similarity index 100% rename from ipexclnonsc/sub-01/func/sub-01_bold.json rename to ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json diff --git a/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.nii.gz b/ipexclnonsc/sub-01/func/sub-01_task-rest_run-1_bold.nii.gz similarity index 100% rename from ipexclnonsc/sub-01/func/sub-01_task-rest_bold.nii.gz rename to ipexclnonsc/sub-01/func/sub-01_task-rest_run-1_bold.nii.gz From 52f266f9f8a01f67f777c139480d74c76cc8da87 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 7 Jul 2025 14:23:51 +1000 Subject: [PATCH 09/14] Inheritance Principle datasets: More metadata Utilise tailored metadata key-values to highlight not only which metadata files are inherited from for any given data file, but also the value that should be inherited when multiple applicable key-value metadata files contain different values for the same key. Also add dataset "ipi1195v2", which has the filesystem structure of the example shown in Issue #1195, but includes key-value metadata that highlights the ambiguity that arises if trying to permit metadata overloading when there is full flexibility in applicable metadata files at a single filesystem hierarchy level. --- .../sourcedata/ip_metadata.json | 7 + ip112badmetapathe1/sub-01_T1w.json | 1 + .../sourcedata/ip_metadata.json | 14 ++ .../sourcedata/ip_metadata.json | 12 + ip112e1bad/sourcedata/ip_metadata.json | 16 ++ ip112e1good/sourcedata/ip_metadata.json | 16 ++ ip112e3v1/sourcedata/ip_metadata.json | 23 ++ ip112e3v2/sourcedata/ip_metadata.json | 27 +++ ip170badrelpath/sourcedata/ip_metadata.json | 14 ++ .../sub-01/ses-01/anat/sub-01_T1w.json | 1 + ip170e2/sourcedata/ip_metadata.json | 21 ++ ...es-test_task-overtverbgeneration_bold.json | 2 + ...t_task-overtverbgeneration_run-2_bold.json | 2 + ip170e3/sourcedata/ip_metadata.json | 22 ++ ...t_task-overtverbgeneration_run-2_bold.json | 2 + ...es-test_task-overtverbgeneration_bold.json | 3 +- ip170e4/sourcedata/ip_metadata.json | 14 ++ ipabsent/sourcedata/ip_metadata.json | 83 +++++++ .../sub-01/ses-01/anat/sub-01_ses-01_T1w.json | 1 + .../sub-01/ses-01/anat/sub-01_ses-01_T2w.json | 1 + .../func/sub-01_ses-01_task-name_bold.json | 1 + .../func/sub-01_ses-01_task-rest_bold.json | 1 + .../sub-01/ses-02/anat/sub-01_ses-02_T1w.json | 1 + .../sub-01/ses-02/anat/sub-01_ses-02_T2w.json | 1 + .../func/sub-01_ses-02_task-name_bold.json | 1 + .../func/sub-01_ses-02_task-rest_bold.json | 1 + .../sub-02/ses-01/anat/sub-02_ses-01_T1w.json | 1 + .../sub-02/ses-01/anat/sub-02_ses-01_T2w.json | 1 + .../func/sub-02_ses-01_task-name_bold.json | 1 + .../func/sub-02_ses-01_task-rest_bold.json | 1 + .../sub-02/ses-02/anat/sub-02_ses-02_T1w.json | 1 + .../sub-02/ses-02/anat/sub-02_ses-02_T2w.json | 1 + .../func/sub-02_ses-02_task-name_bold.json | 1 + .../func/sub-02_ses-02_task-rest_bold.json | 1 + ipexclnonsc/sourcedata/ip_metadata.json | 7 + ipi1195e1/bold.json | 3 - .../ses-01/func/sub-01_ses-01_bold.json | 3 - .../func/sub-01_ses-01_task-ovg_bold.json | 3 - .../sub-01_ses-01_task-ovg_run-2_bold.json | 3 - .../func/sub-01_ses-01_task-rest_bold.json | 3 - ipi1195e1/sub-01/sub-01_bold.json | 3 - .../func/sub-02_ses-01_res-high_bold.json | 3 - .../func/sub-02_ses-01_res-low_bold.json | 3 - .../func/sub-02_ses-01_task-olr_bold.json | 3 - .../func/sub-02_ses-01_task-rest_bold.json | 3 - ipi1195e1/task-olr_bold.json | 5 - ipi1195e1/task-ovg_bold.json | 5 - ipi1195e1/task-rest_bold.json | 5 - {ipi1195e1 => ipi1195v1}/README.txt | 8 + ipi1195v1/bold.json | 4 + .../dataset_description.json | 2 +- .../sourcedata/ip_graph.json | 0 ipi1195v1/sourcedata/ip_metadata.json | 76 +++++++ .../ses-01/func/sub-01_ses-01_bold.json | 4 + .../func/sub-01_ses-01_task-ovg_bold.json | 4 + .../sub-01_ses-01_task-ovg_run-1_bold.nii.gz | 0 .../sub-01_ses-01_task-ovg_run-2_bold.json | 4 + .../sub-01_ses-01_task-ovg_run-2_bold.nii.gz | 0 .../func/sub-01_ses-01_task-rest_bold.json | 4 + .../func/sub-01_ses-01_task-rest_bold.nii.gz | 0 .../func/sub-01_ses-02_task-ovg_bold.nii.gz | 0 .../func/sub-01_ses-02_task-rest_bold.nii.gz | 0 ipi1195v1/sub-01/sub-01_bold.json | 4 + .../func/sub-02_ses-01_res-high_bold.json | 4 + ...ub-02_ses-01_res-high_task-olr_bold.nii.gz | 0 ...b-02_ses-01_res-high_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_res-low_bold.json | 4 + ...sub-02_ses-01_res-low_task-olr_bold.nii.gz | 0 ...ub-02_ses-01_res-low_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_task-olr_bold.json | 4 + .../func/sub-02_ses-01_task-rest_bold.json | 4 + ipi1195v1/task-olr_bold.json | 6 + ipi1195v1/task-ovg_bold.json | 6 + ipi1195v1/task-rest_bold.json | 6 + ipi1195v2/README.txt | 213 ++++++++++++++++++ ipi1195v2/bold.json | 5 + ipi1195v2/dataset_description.json | 8 + ipi1195v2/sourcedata/ip_graph.json | 141 ++++++++++++ ipi1195v2/sourcedata/ip_metadata.json | 103 +++++++++ .../ses-01/func/sub-01_ses-01_bold.json | 6 + .../func/sub-01_ses-01_task-ovg_bold.json | 7 + .../sub-01_ses-01_task-ovg_run-1_bold.nii.gz | 0 .../sub-01_ses-01_task-ovg_run-2_bold.json | 7 + .../sub-01_ses-01_task-ovg_run-2_bold.nii.gz | 0 .../func/sub-01_ses-01_task-rest_bold.json | 7 + .../func/sub-01_ses-01_task-rest_bold.nii.gz | 0 .../func/sub-01_ses-02_task-ovg_bold.nii.gz | 0 .../func/sub-01_ses-02_task-rest_bold.nii.gz | 0 ipi1195v2/sub-01/sub-01_bold.json | 6 + .../func/sub-02_ses-01_res-high_bold.json | 7 + ...ub-02_ses-01_res-high_task-olr_bold.nii.gz | 0 ...b-02_ses-01_res-high_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_res-low_bold.json | 7 + ...sub-02_ses-01_res-low_task-olr_bold.nii.gz | 0 ...ub-02_ses-01_res-low_task-rest_bold.nii.gz | 0 .../func/sub-02_ses-01_task-olr_bold.json | 7 + .../func/sub-02_ses-01_task-rest_bold.json | 7 + ipi1195v2/task-olr_bold.json | 8 + ipi1195v2/task-ovg_bold.json | 8 + ipi1195v2/task-rest_bold.json | 8 + iploosemeta/sourcedata/ip_metadata.json | 7 + iploosemeta/sub-01/anat/sub-01_T1w.json | 1 + iploosemeta/sub-01/anat/sub-01_T2w.json | 1 + ippr1003ae1/bold.json | 2 + ippr1003ae1/sourcedata/ip_metadata.json | 58 +++++ .../ses-01/func/sub-01_ses-01_bold.json | 4 + .../func/sub-01_ses-01_task-ovg_bold.json | 4 + .../sub-01_ses-01_task-ovg_run-2_bold.json | 5 + .../func/sub-01_ses-01_task-rest_bold.json | 5 + ippr1003ae1/sub-01/sub-01_bold.json | 3 + .../func/sub-02_ses-01_task-rest_bold.json | 3 + ippr1003ae1/task-ovg_bold.json | 3 + ippr1003ae1/task-rest_bold.json | 3 + ippr1003ae2/sourcedata/ip_metadata.json | 30 +++ .../sub-01/func/sub-01_acq-highres_bold.json | 1 + .../sub-01/func/sub-01_acq-lowres_bold.json | 1 + ippr1003ae2/sub-01/func/sub-01_bold.json | 3 +- .../sub-01/func/sub-01_task-ovg_bold.json | 1 + .../sub-01/func/sub-01_task-rest_bold.json | 1 + ippr1003e1v1/sourcedata/ip_metadata.json | 12 + ippr1003e1v1/sub-01/anat/sub-01_T2starw.json | 1 + ippr1003e1v2/sourcedata/ip_metadata.json | 5 +- ippr1003e1v2/sub-01/anat/sub-01_T2starw.json | 2 +- .../anat/sub-01_part-phase_T2starw.json | 1 + 124 files changed, 1153 insertions(+), 51 deletions(-) create mode 100644 ip112badmetapathe1/sourcedata/ip_metadata.json create mode 100644 ip112badmetapathe2v1/sourcedata/ip_metadata.json create mode 100644 ip112badmetapathe2v2/sourcedata/ip_metadata.json create mode 100644 ip112e1bad/sourcedata/ip_metadata.json create mode 100644 ip112e1good/sourcedata/ip_metadata.json create mode 100644 ip112e3v1/sourcedata/ip_metadata.json create mode 100644 ip112e3v2/sourcedata/ip_metadata.json create mode 100644 ip170badrelpath/sourcedata/ip_metadata.json create mode 100644 ip170e2/sourcedata/ip_metadata.json create mode 100644 ip170e3/sourcedata/ip_metadata.json create mode 100644 ip170e4/sourcedata/ip_metadata.json create mode 100644 ipabsent/sourcedata/ip_metadata.json create mode 100644 ipexclnonsc/sourcedata/ip_metadata.json delete mode 100644 ipi1195e1/bold.json delete mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json delete mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json delete mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json delete mode 100644 ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json delete mode 100644 ipi1195e1/sub-01/sub-01_bold.json delete mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json delete mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json delete mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json delete mode 100644 ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json delete mode 100644 ipi1195e1/task-olr_bold.json delete mode 100644 ipi1195e1/task-ovg_bold.json delete mode 100644 ipi1195e1/task-rest_bold.json rename {ipi1195e1 => ipi1195v1}/README.txt (94%) create mode 100644 ipi1195v1/bold.json rename {ipi1195e1 => ipi1195v1}/dataset_description.json (66%) rename {ipi1195e1 => ipi1195v1}/sourcedata/ip_graph.json (100%) create mode 100644 ipi1195v1/sourcedata/ip_metadata.json create mode 100644 ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_bold.json create mode 100644 ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json rename {ipi1195e1 => ipi1195v1}/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz (100%) create mode 100644 ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json rename {ipi1195e1 => ipi1195v1}/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz (100%) create mode 100644 ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json rename {ipi1195e1 => ipi1195v1}/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz (100%) rename {ipi1195e1 => ipi1195v1}/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz (100%) rename {ipi1195e1 => ipi1195v1}/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz (100%) create mode 100644 ipi1195v1/sub-01/sub-01_bold.json create mode 100644 ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json rename {ipi1195e1 => ipi1195v1}/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz (100%) rename {ipi1195e1 => ipi1195v1}/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz (100%) create mode 100644 ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json rename {ipi1195e1 => ipi1195v1}/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz (100%) rename {ipi1195e1 => ipi1195v1}/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz (100%) create mode 100644 ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json create mode 100644 ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json create mode 100644 ipi1195v1/task-olr_bold.json create mode 100644 ipi1195v1/task-ovg_bold.json create mode 100644 ipi1195v1/task-rest_bold.json create mode 100644 ipi1195v2/README.txt create mode 100644 ipi1195v2/bold.json create mode 100644 ipi1195v2/dataset_description.json create mode 100644 ipi1195v2/sourcedata/ip_graph.json create mode 100644 ipi1195v2/sourcedata/ip_metadata.json create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_bold.json create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json create mode 100644 ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz create mode 100644 ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz create mode 100644 ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz create mode 100644 ipi1195v2/sub-01/sub-01_bold.json create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json create mode 100644 ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json create mode 100644 ipi1195v2/task-olr_bold.json create mode 100644 ipi1195v2/task-ovg_bold.json create mode 100644 ipi1195v2/task-rest_bold.json create mode 100644 iploosemeta/sourcedata/ip_metadata.json create mode 100644 ippr1003ae1/sourcedata/ip_metadata.json create mode 100644 ippr1003ae2/sourcedata/ip_metadata.json create mode 100644 ippr1003e1v1/sourcedata/ip_metadata.json diff --git a/ip112badmetapathe1/sourcedata/ip_metadata.json b/ip112badmetapathe1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..f48b2c15c --- /dev/null +++ b/ip112badmetapathe1/sourcedata/ip_metadata.json @@ -0,0 +1,7 @@ +{ + "sub-01/anat/sub-01_run-1_T1w.nii.gz": { + ".json": [ + "sub-01_T1w.json" + ] + } +} diff --git a/ip112badmetapathe1/sub-01_T1w.json b/ip112badmetapathe1/sub-01_T1w.json index 2c63c0851..3772e223d 100644 --- a/ip112badmetapathe1/sub-01_T1w.json +++ b/ip112badmetapathe1/sub-01_T1w.json @@ -1,2 +1,3 @@ { + "Sub01T1w": True } diff --git a/ip112badmetapathe2v1/sourcedata/ip_metadata.json b/ip112badmetapathe2v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..f1a6fafe5 --- /dev/null +++ b/ip112badmetapathe2v1/sourcedata/ip_metadata.json @@ -0,0 +1,14 @@ +{ + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { + ".json": [ + "task-sist_bold.json" + ] + }, + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { + ".json": [ + "task-sist_bold.json" + ] + }, + "sub-02/func/sub-02_task-sist_bold.nii.gz": { + } +} diff --git a/ip112badmetapathe2v2/sourcedata/ip_metadata.json b/ip112badmetapathe2v2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..406711d9d --- /dev/null +++ b/ip112badmetapathe2v2/sourcedata/ip_metadata.json @@ -0,0 +1,12 @@ +{ + "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { + ".json": [ + "task-sist_bold.json" + ] + }, + "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { + ".json": [ + "task-sist_bold.json" + ] + } +} diff --git a/ip112e1bad/sourcedata/ip_metadata.json b/ip112e1bad/sourcedata/ip_metadata.json new file mode 100644 index 000000000..5c2c993fe --- /dev/null +++ b/ip112e1bad/sourcedata/ip_metadata.json @@ -0,0 +1,16 @@ +{ + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" + ] + } +} diff --git a/ip112e1good/sourcedata/ip_metadata.json b/ip112e1good/sourcedata/ip_metadata.json new file mode 100644 index 000000000..5c2c993fe --- /dev/null +++ b/ip112e1good/sourcedata/ip_metadata.json @@ -0,0 +1,16 @@ +{ + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" + ] + } +} diff --git a/ip112e3v1/sourcedata/ip_metadata.json b/ip112e3v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..7672392cb --- /dev/null +++ b/ip112e3v1/sourcedata/ip_metadata.json @@ -0,0 +1,23 @@ +{ + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "Source": "sub", + "TaskName": "XYZ" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "Source": "sub", + "TaskName": "XYZ" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "Source": "sub", + "TaskName": "XYZ" + ] + } +} diff --git a/ip112e3v2/sourcedata/ip_metadata.json b/ip112e3v2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..646350877 --- /dev/null +++ b/ip112e3v2/sourcedata/ip_metadata.json @@ -0,0 +1,27 @@ +{ + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "SubjectOnly": true, + "OverloadSource": "sub", + "TaskName": "XYZ" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "SubjectOnly": true, + "OverloadSource": "sub", + "TaskName": "XYZ" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "FuncOnly": true, + "RepetitionTime": 1.0, + "SubjectOnly": true, + "OverloadSource": "func", + "TaskName": "XYZ" + ] + }, +} diff --git a/ip170badrelpath/sourcedata/ip_metadata.json b/ip170badrelpath/sourcedata/ip_metadata.json new file mode 100644 index 000000000..b2ebf247b --- /dev/null +++ b/ip170badrelpath/sourcedata/ip_metadata.json @@ -0,0 +1,14 @@ +{ + "sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz": { + ".json": [ + "Sub01Ses01AnatT1w": true + ] + }, + "sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz": { + ".json": [ + "Sub01Ses01AnatT1w": true + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { + } +} diff --git a/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json b/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json index 2c63c0851..4f699fd32 100644 --- a/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json +++ b/ip170badrelpath/sub-01/ses-01/anat/sub-01_T1w.json @@ -1,2 +1,3 @@ { + "Sub01Ses01AnatT1w": true } diff --git a/ip170e2/sourcedata/ip_metadata.json b/ip170e2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..4811189a9 --- /dev/null +++ b/ip170e2/sourcedata/ip_metadata.json @@ -0,0 +1,21 @@ +{ + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "Lowest": "Sub01SesTestTaskOVGBOLD", + "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, + "TaskName": "OvertVerbGeneration" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "Lowest": "Sub01SesTestTaskOVGRun2BOLD", + "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, + "Sub01SesTestTaskOVGRun2BOLD": true, + "TaskName": "OvertVerbGeneration" + ] + } +} diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json index 14016c2aa..ec38e2d3c 100644 --- a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,5 +1,7 @@ { + "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" } diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json index bfd870e45..0ff2acd87 100644 --- a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -1,3 +1,5 @@ { + "Lowest": "Sub01SesTestTaskOVGRun2BOLD", + "Sub01SesTestTaskOVGRun2BOLD": true } diff --git a/ip170e3/sourcedata/ip_metadata.json b/ip170e3/sourcedata/ip_metadata.json new file mode 100644 index 000000000..0c111eabe --- /dev/null +++ b/ip170e3/sourcedata/ip_metadata.json @@ -0,0 +1,22 @@ +{ + "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { + ".json": [ + "Lowest": "Sub01SesTestTaskOVGBOLD", + "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, + "TaskName": "OvertVerbGeneration" + ] + }, + "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { + ".json": [ + "Lowest": "Sub01SesTestTaskOVGRun2BOLD", + "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, + "Sub01SesTestTaskOVGRun2BOLD": true, + "TaskName": "OvertVerbGeneration" + ] + } +} + diff --git a/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json index bfd870e45..0ff2acd87 100644 --- a/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json +++ b/ip170e3/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -1,3 +1,5 @@ { + "Lowest": "Sub01SesTestTaskOVGRun2BOLD", + "Sub01SesTestTaskOVGRun2BOLD": true } diff --git a/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json index 14016c2aa..84b7175bc 100644 --- a/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip170e3/sub-01/ses-test/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,5 +1,6 @@ { + "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, + "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" } - diff --git a/ip170e4/sourcedata/ip_metadata.json b/ip170e4/sourcedata/ip_metadata.json new file mode 100644 index 000000000..14ff45aef --- /dev/null +++ b/ip170e4/sourcedata/ip_metadata.json @@ -0,0 +1,14 @@ +{ + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "XYZ" + ] + }, + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0, + "TaskName": "XYZ" + ] + } +} diff --git a/ipabsent/sourcedata/ip_metadata.json b/ipabsent/sourcedata/ip_metadata.json new file mode 100644 index 000000000..ead5a0c4a --- /dev/null +++ b/ipabsent/sourcedata/ip_metadata.json @@ -0,0 +1,83 @@ +{ + "sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz": { + ".json": [ + "Sub01Ses01T1w": true + ] + }, + "sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz": { + ".json": [ + "Sub01Ses01T2w": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz": { + ".json": [ + "Sub01Ses01TaskNameBOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "Sub01Ses01TaskRestBOLD": true + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { + ".json": [ + "Sub01Ses02T1w": true + ] + }, + "sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz": { + ".json": [ + "Sub01Ses02T2w": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz": { + ".json": [ + "Sub01Ses02TaskNameBOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "Sub01Ses02TaskRestBOLD": true + ] + }, + + "sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz": { + ".json": [ + "Sub02Ses01T1w": true + ] + }, + "sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz": { + ".json": [ + "Sub02Ses01T2w": true + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz": { + ".json": [ + "Sub02Ses01TaskNameBOLD": true + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "Sub02Ses01TaskRestBOLD": true + ] + }, + "sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz": { + ".json": [ + "Sub02Ses02T1w": true + ] + }, + "sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz": { + ".json": [ + "Sub02Ses02T2w": true + ] + }, + "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz": { + ".json": [ + "Sub02Ses02TaskNameBOLD": true + ] + }, + "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "Sub02Ses02TaskRestBOLD": true + ] + } +} diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json index bfd870e45..fb415e1d6 100644 --- a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json +++ b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T1w.json @@ -1,3 +1,4 @@ { + "Sub01Ses01T1w": true } diff --git a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json index bfd870e45..6250b50b4 100644 --- a/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json +++ b/ipabsent/sub-01/ses-01/anat/sub-01_ses-01_T2w.json @@ -1,3 +1,4 @@ { + "Sub01Ses01T2w": true } diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json index 3dfcd7397..c69ac8fbe 100644 --- a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-name_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub01Ses01TaskNameBOLD": true, "TaskName": "TaskName" } diff --git a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json index 1aedfae8a..0c433cd92 100644 --- a/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json +++ b/ipabsent/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub01Ses01TaskRestBOLD": true, "TaskName": "Resting-state" } diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json index bfd870e45..82127585a 100644 --- a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json +++ b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T1w.json @@ -1,3 +1,4 @@ { + "Sub01Ses02T1w": true } diff --git a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json index bfd870e45..e77982cc7 100644 --- a/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json +++ b/ipabsent/sub-01/ses-02/anat/sub-01_ses-02_T2w.json @@ -1,3 +1,4 @@ { + "Sub01Ses02T2w": true } diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json index 3dfcd7397..85fbe682b 100644 --- a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-name_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub01Ses02TaskNameBOLD": true, "TaskName": "TaskName" } diff --git a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json index 1aedfae8a..38e8c7ea2 100644 --- a/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json +++ b/ipabsent/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub01Ses02TaskRestBOLD": true, "TaskName": "Resting-state" } diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json index bfd870e45..8e3bba04a 100644 --- a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json +++ b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T1w.json @@ -1,3 +1,4 @@ { + "Sub02Ses01T1w": true } diff --git a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json index bfd870e45..3e1a99d28 100644 --- a/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json +++ b/ipabsent/sub-02/ses-01/anat/sub-02_ses-01_T2w.json @@ -1,3 +1,4 @@ { + "Sub02Ses01T2w": true } diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json index 3dfcd7397..d12de4220 100644 --- a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-name_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub02Ses01TaskNameBOLD": true, "TaskName": "TaskName" } diff --git a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json index 1aedfae8a..b09e98d34 100644 --- a/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json +++ b/ipabsent/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub02Ses01TaskRestBOLD": true, "TaskName": "Resting-state" } diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json index bfd870e45..70325f861 100644 --- a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json +++ b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T1w.json @@ -1,3 +1,4 @@ { + "Sub02Ses02T1w": true } diff --git a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json index bfd870e45..e0bdf8358 100644 --- a/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json +++ b/ipabsent/sub-02/ses-02/anat/sub-02_ses-02_T2w.json @@ -1,3 +1,4 @@ { + "Sub02Ses02T2w": true } diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json index 3dfcd7397..0d7ead6f1 100644 --- a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-name_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub02Ses02TaskNameBOLD": true, "TaskName": "TaskName" } diff --git a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json index 1aedfae8a..512b166f0 100644 --- a/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json +++ b/ipabsent/sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.json @@ -1,5 +1,6 @@ { "RepetitionTime": 1.0, + "Sub02Ses02TaskRestBOLD": true, "TaskName": "Resting-state" } diff --git a/ipexclnonsc/sourcedata/ip_metadata.json b/ipexclnonsc/sourcedata/ip_metadata.json new file mode 100644 index 000000000..0373c9b45 --- /dev/null +++ b/ipexclnonsc/sourcedata/ip_metadata.json @@ -0,0 +1,7 @@ +{ + "sub-01/func/sub-01_task-rest_run-1_bold.nii.gz": { + ".json": [ + "RepetitionTime": 1.0 + ] + } +} diff --git a/ipi1195e1/bold.json b/ipi1195e1/bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-01/sub-01_bold.json b/ipi1195e1/sub-01/sub-01_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-01/sub-01_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json deleted file mode 100644 index bfd870e45..000000000 --- a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -} - diff --git a/ipi1195e1/task-olr_bold.json b/ipi1195e1/task-olr_bold.json deleted file mode 100644 index 01fb506c6..000000000 --- a/ipi1195e1/task-olr_bold.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "RepetitionTime": 1.0, - "TaskName": "OrthographicLexicalRetrieval" -} - diff --git a/ipi1195e1/task-ovg_bold.json b/ipi1195e1/task-ovg_bold.json deleted file mode 100644 index 14016c2aa..000000000 --- a/ipi1195e1/task-ovg_bold.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "RepetitionTime": 1.0, - "TaskName": "OvertVerbGeneration" -} - diff --git a/ipi1195e1/task-rest_bold.json b/ipi1195e1/task-rest_bold.json deleted file mode 100644 index 1aedfae8a..000000000 --- a/ipi1195e1/task-rest_bold.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "RepetitionTime": 1.0, - "TaskName": "Resting-state" -} - diff --git a/ipi1195e1/README.txt b/ipi1195v1/README.txt similarity index 94% rename from ipi1195e1/README.txt rename to ipi1195v1/README.txt index 64534e758..c27bd1694 100644 --- a/ipi1195e1/README.txt +++ b/ipi1195v1/README.txt @@ -195,3 +195,11 @@ https://github.com/Lestropie/bids-specification/pull/5. and sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json (ambiguous order) +Notes: + +- In this version of the dataset, + key-value metadata has been added to show which files are inherited from. + There are no metadata key-value overrides; + as such the dataset should pass validation under this Inheritance Principle ruleset. + Sister dataset "ipi1195v2" shows the same filesystem structure, + but involves inherently ambiguous metadata key-value overrides. diff --git a/ipi1195v1/bold.json b/ipi1195v1/bold.json new file mode 100644 index 000000000..086928f90 --- /dev/null +++ b/ipi1195v1/bold.json @@ -0,0 +1,4 @@ +{ + "BOLD": true +} + diff --git a/ipi1195e1/dataset_description.json b/ipi1195v1/dataset_description.json similarity index 66% rename from ipi1195e1/dataset_description.json rename to ipi1195v1/dataset_description.json index 08bf134c9..fa173080a 100644 --- a/ipi1195e1/dataset_description.json +++ b/ipi1195v1/dataset_description.json @@ -4,5 +4,5 @@ ], "BIDSVersion": "Issue 1195", "DatasetType": "raw", - "Name": "Inheritance Principle validation; Issue #1195; example 1" + "Name": "Inheritance Principle validation; Issue #1195; version 1" } diff --git a/ipi1195e1/sourcedata/ip_graph.json b/ipi1195v1/sourcedata/ip_graph.json similarity index 100% rename from ipi1195e1/sourcedata/ip_graph.json rename to ipi1195v1/sourcedata/ip_graph.json diff --git a/ipi1195v1/sourcedata/ip_metadata.json b/ipi1195v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..10dbbcf26 --- /dev/null +++ b/ipi1195v1/sourcedata/ip_metadata.json @@ -0,0 +1,76 @@ +{ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true, + "Sub01Ses01TaskOVGRun2BOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskRestBOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskOLRBOLD": true, + "Sub02Ses01ResHighBOLD": true, + "Sub02Ses01TaskOLRBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskRestBOLD": true, + "Sub02Ses01ResHighBOLD": true, + "Sub02Ses01TaskRestBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskOLRBOLD": true, + "Sub02Ses01ResLowBOLD": true, + "Sub02Ses01TaskOLRBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + ".json": [ + "BOLD": true, + "TaskRestBOLD": true, + "Sub02Ses01ResLowBOLD": true, + "Sub02Ses01TaskRestBOLD": true + ] + } +} diff --git a/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_bold.json new file mode 100644 index 000000000..a0665f6f6 --- /dev/null +++ b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_bold.json @@ -0,0 +1,4 @@ +{ + "Sub01Ses01BOLD": true +} + diff --git a/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json new file mode 100644 index 000000000..f6daaac0e --- /dev/null +++ b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -0,0 +1,4 @@ +{ + "Sub01Ses01TaskOVGBOLD": true +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz rename to ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz diff --git a/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json new file mode 100644 index 000000000..1a8d7a6ca --- /dev/null +++ b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json @@ -0,0 +1,4 @@ +{ + "Sub01Ses01TaskOVGRun2BOLD": true +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz rename to ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz diff --git a/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json new file mode 100644 index 000000000..2d86ef0fe --- /dev/null +++ b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -0,0 +1,4 @@ +{ + "Sub01Ses01TaskRestBOLD": true +} + diff --git a/ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz b/ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz rename to ipi1195v1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz diff --git a/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz b/ipi1195v1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz rename to ipi1195v1/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz diff --git a/ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz b/ipi1195v1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz rename to ipi1195v1/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz diff --git a/ipi1195v1/sub-01/sub-01_bold.json b/ipi1195v1/sub-01/sub-01_bold.json new file mode 100644 index 000000000..8a006e83f --- /dev/null +++ b/ipi1195v1/sub-01/sub-01_bold.json @@ -0,0 +1,4 @@ +{ + "Sub01BOLD": true +} + diff --git a/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json new file mode 100644 index 000000000..51c139d0b --- /dev/null +++ b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json @@ -0,0 +1,4 @@ +{ + "Sub02Ses01ResHighBOLD": true +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz rename to ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz rename to ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz diff --git a/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json new file mode 100644 index 000000000..16a40e257 --- /dev/null +++ b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json @@ -0,0 +1,4 @@ +{ + "Sub02Ses01ResLowBOLD": true +} + diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz rename to ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz diff --git a/ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz similarity index 100% rename from ipi1195e1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz rename to ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz diff --git a/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json new file mode 100644 index 000000000..8b5fb1c7d --- /dev/null +++ b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json @@ -0,0 +1,4 @@ +{ + "Sub02Ses01TaskOLRBOLD": true +} + diff --git a/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json new file mode 100644 index 000000000..a3f5da401 --- /dev/null +++ b/ipi1195v1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -0,0 +1,4 @@ +{ + "Sub02Ses01TaskRestBOLD": true +} + diff --git a/ipi1195v1/task-olr_bold.json b/ipi1195v1/task-olr_bold.json new file mode 100644 index 000000000..7cd1d0f50 --- /dev/null +++ b/ipi1195v1/task-olr_bold.json @@ -0,0 +1,6 @@ +{ + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval", + "TaskOLRBOLD": true +} + diff --git a/ipi1195v1/task-ovg_bold.json b/ipi1195v1/task-ovg_bold.json new file mode 100644 index 000000000..a0d91328e --- /dev/null +++ b/ipi1195v1/task-ovg_bold.json @@ -0,0 +1,6 @@ +{ + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration", + "TaskOVGBOLD": true +} + diff --git a/ipi1195v1/task-rest_bold.json b/ipi1195v1/task-rest_bold.json new file mode 100644 index 000000000..b07d66c96 --- /dev/null +++ b/ipi1195v1/task-rest_bold.json @@ -0,0 +1,6 @@ +{ + "RepetitionTime": 1.0, + "TaskName": "Resting-state", + "TaskRestBOLD": true +} + diff --git a/ipi1195v2/README.txt b/ipi1195v2/README.txt new file mode 100644 index 000000000..07ae04a9f --- /dev/null +++ b/ipi1195v2/README.txt @@ -0,0 +1,213 @@ +The following content is duplicated from a fork +of the Brain Imaging Data Structure (BIDS) specification. +It is referenced in GitHub Issue #1195 +(https://github.com/bids-standard/bids-specification/issues/1195), +and the code is located at: +https://github.com/Lestropie/bids-specification/pull/5. + + { + "bold.json", + "sub-01": { + "ses-01": { + "func": { + "sub-01_ses-01_bold.json", + "sub-01_ses-01_task-ovg_bold.json", + "sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01_ses-01_task-ovg_run-2_bold.json", + "sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01_ses-01_task-rest_bold.json" + } + }, + "ses-02": { + "func": { + "sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01_ses-02_task-rest_bold.nii.gz", + } + }, + "sub-01_bold.json" + }, + "sub-02": { + "ses-01": { + "func": { + "sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02_ses-01_res-high_bold.json", + "sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02_ses-01_res-low_task-rest_bold.nii.gz", + "sub-02_ses-01_res-low_bold.json", + "sub-02_ses-01_task-olr_bold.json", + "sub-02_ses-01_task-rest_bold.json" + } + } + }, + "task-olr_bold.json", + "task-ovg_bold.json", + "task-rest_bold.json" + } + + Applicable data files per metadata file + For each metadata file, the set of data files to which its contents are applicable is as follows: + + - bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz + + - task-olr_bold.json: + + - sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz + + - task-ovg_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + + - task-rest_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz + - sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + - sub-01/sub-01_bold.json: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-ovg_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-1_bold.nii.gz + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-ovg_run-2_bold.nii.gz + + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.json: + + - sub-01/ses-01/sub-01_ses-01_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_res-high_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-high_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_res-low_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-low_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_task-olr_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-olr_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-olr_bold.nii.gz + + - sub-02/ses-01/sub-02_ses-01_task-rest_bold.json: + + - sub-02/ses-01/sub-02_ses-01_res-high_task-rest_bold.nii.gz + - sub-02/ses-01/sub-02_ses-01_res-low_task-rest_bold.nii.gz + + Applicable metadata files per data file + For each data file, the order in which the set of applicable metadata files would be loaded is as follows: + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json + + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json + + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-01/sub-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_bold.json + - sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json + + - sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz: + + - bold.json + - task-ovg_bold.json + - sub-01/sub-01_bold.json + + - sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-01/sub-01_bold.json + + - sub-02_ses-01_res-high_task-olr_bold.nii.gz: + + - bold.json + - task-olr_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json + (ambiguous order) + + - sub-02_ses-01_res-high_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json + (ambiguous order) + + - sub-02_ses-01_res-low_task-olr_bold.nii.gz: + + - bold.json + - task-olr_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json + (ambiguous order) + + - sub-02_ses-01_res-low_task-rest_bold.nii.gz: + + - bold.json + - task-rest_bold.json + - sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json + and sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json + (ambiguous order) + +Notes: + +- This is an alternative to the dataset shown above, + designed to highlight how preserving the ability + to overwrite metadata key-values at lower levels of the hierarchy + results in ambiguities, + and therefore such overloading would need to be precluded in the specification. + There are multiple key-value metadata fields used to demonstrate this, + all beginning with the string "Lowest*". + In some circumstances there is fundamental ambiguity in the order + in which key-value metadata files should be read; + see eg. ""LowestBOLD": null" in file sourcedata/ip_metadata.json. + This example dataset should therefore fail validation + due to the presence of overloads. + Sister dataset "ipi1195v1" shows the original dataset without any overloading, + which should pass validation under that ruleset without issue. diff --git a/ipi1195v2/bold.json b/ipi1195v2/bold.json new file mode 100644 index 000000000..c3344cd6e --- /dev/null +++ b/ipi1195v2/bold.json @@ -0,0 +1,5 @@ +{ + "LowestBOLD": "BOLD", + "BOLD": true +} + diff --git a/ipi1195v2/dataset_description.json b/ipi1195v2/dataset_description.json new file mode 100644 index 000000000..f1d54bdfc --- /dev/null +++ b/ipi1195v2/dataset_description.json @@ -0,0 +1,8 @@ +{ + "Authors": [ + "Robert E. Smith " + ], + "BIDSVersion": "Issue 1195", + "DatasetType": "raw", + "Name": "Inheritance Principle validation; Issue #1195; version 2" +} diff --git a/ipi1195v2/sourcedata/ip_graph.json b/ipi1195v2/sourcedata/ip_graph.json new file mode 100644 index 000000000..34668e2d3 --- /dev/null +++ b/ipi1195v2/sourcedata/ip_graph.json @@ -0,0 +1,141 @@ +{ + "bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + + ], + "task-olr_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz" + ], + "task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz" + ], + "task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-01/sub-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz", + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json": [ + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz" + ], + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json": [ + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" + ], + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json" + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_bold.json", + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "bold.json", + "task-ovg_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-01/sub-01_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + ".json": [ + "bold.json", + "task-olr_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + ".json": [ + "bold.json", + "task-olr_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json" + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + ".json": [ + "bold.json", + "task-rest_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json", + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json" + ] + } +} diff --git a/ipi1195v2/sourcedata/ip_metadata.json b/ipi1195v2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..613d5226f --- /dev/null +++ b/ipi1195v2/sourcedata/ip_metadata.json @@ -0,0 +1,103 @@ +{ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01Ses01TaskOVGBOLD", + "LowestSub01": "Sub01Ses01TaskOVGBOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestTaskOVG": "Sub01Ses01TeaskOVGRun2BOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true, + "Sub01Ses01TaskOVGRun2BOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01Ses01BOLD", + "LowestSub01": "Sub01Ses01BOLD", + "LowestTaskRest": "TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskRestBOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "LowestTaskOVG": "TaskOVGBOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "LowestTaskRest": "TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + ".json": [ + "LowestBOLD": null, + "LowestResHigh": "Sub02Ses01ResHighBOLD", + "LowestTaskOLR": "Sub02Ses01TaskOLRBOLD", + "BOLD": true, + "TaskOLRBOLD": true, + "Sub02Ses01ResHighBOLD": true, + "Sub02Ses01TaskOLRBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": null, + "LowestResHigh": "Sub02Ses01ResHighBOLD", + "LowestTaskRest": "Sub02Ses01TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub02Ses01ResHighBOLD": true, + "Sub02Ses01TaskRestBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + ".json": [ + "LowestBOLD": null, + "LowestResLow": "Sub02Ses01ResLowBOLD", + "LowestTaskOLR": "Sub02Ses01TasklOLRBOLD", + "BOLD": true, + "TaskOLRBOLD": true, + "Sub02Ses01ResLowBOLD": true, + "Sub02Ses01TaskOLRBOLD": true + ] + }, + "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": null, + "LowestResLow": "Sub02Ses01ResLowBOLD", + "LowestTaskRest": "Sub02Ses01TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub02Ses01ResLowBOLD": true, + "Sub02Ses01TaskRestBOLD": true + ] + } +} diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_bold.json new file mode 100644 index 000000000..01a40661f --- /dev/null +++ b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_bold.json @@ -0,0 +1,6 @@ +{ + "LowestBOLD": "Sub01Ses01BOLD", + "LowestSub01": "Sub01Ses01BOLD", + "Sub01Ses01BOLD": true +} + diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json new file mode 100644 index 000000000..a6808a84d --- /dev/null +++ b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub01Ses01TaskOVGBOLD", + "LowestSub01": "Sub01Ses01TaskOVGBOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", + "Sub01Ses01TaskOVGBOLD": true +} + diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json new file mode 100644 index 000000000..2fcc97fe7 --- /dev/null +++ b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGRun2BOLD", + "Sub01Ses01TaskOVGRun2BOLD": true +} + diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json new file mode 100644 index 000000000..a447ee249 --- /dev/null +++ b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub01Ses01TaskRestBOLD", + "LowestSub01": "Sub01Ses01TaskRestBOLD", + "LowestTaskRest": "Sub01Ses01TaskRestBOLD", + "Sub01Ses01TaskRestBOLD": true +} + diff --git a/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz b/ipi1195v2/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz b/ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz b/ipi1195v2/sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-01/sub-01_bold.json b/ipi1195v2/sub-01/sub-01_bold.json new file mode 100644 index 000000000..1f4bd86a8 --- /dev/null +++ b/ipi1195v2/sub-01/sub-01_bold.json @@ -0,0 +1,6 @@ +{ + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "Sub01BOLD": true +} + diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json new file mode 100644 index 000000000..ddc3ac707 --- /dev/null +++ b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub02Ses01ResHighBOLD", + "LowestSub02": "Sub02Ses01ResHighBOLD", + "LowestResHigh": "Sub02Ses01ResHighBOLD", + "Sub02Ses01ResHighBOLD": true +} + diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json new file mode 100644 index 000000000..a17c552a1 --- /dev/null +++ b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub02Ses01ResLowBOLD", + "LowestSub02": "Sub02Ses01ResLowBOLD", + "LowestResLow": "Sub02Ses01ResLowBOLD", + "Sub02Ses01ResLowBOLD": true +} + diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz new file mode 100644 index 000000000..e69de29bb diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json new file mode 100644 index 000000000..c197beedf --- /dev/null +++ b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-olr_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub02Ses01TaskOLRBOLD", + "LowestSub02": "Sub02Ses01TaskOLRBOLD", + "LowestTaskOLR": "Sub02Ses01TaskOLRBOLD", + "Sub02Ses01TaskOLRBOLD": true +} + diff --git a/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json new file mode 100644 index 000000000..c8299499a --- /dev/null +++ b/ipi1195v2/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -0,0 +1,7 @@ +{ + "LowestBOLD": "Sub02Ses01TaskRestBOLD", + "LowestSub02": "Sub02Ses01TaskRestBOLD", + "LowestTaskRest": "Sub02Ses01TaskRestBOLD", + "Sub02Ses01TaskRestBOLD": true +} + diff --git a/ipi1195v2/task-olr_bold.json b/ipi1195v2/task-olr_bold.json new file mode 100644 index 000000000..0bd09100f --- /dev/null +++ b/ipi1195v2/task-olr_bold.json @@ -0,0 +1,8 @@ +{ + "LowestBOLD": "TaskOLRBOLD", + "LowestTaskOLR": "TaskOLRBOLD", + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval", + "TaskOLRBOLD": true +} + diff --git a/ipi1195v2/task-ovg_bold.json b/ipi1195v2/task-ovg_bold.json new file mode 100644 index 000000000..945bfda42 --- /dev/null +++ b/ipi1195v2/task-ovg_bold.json @@ -0,0 +1,8 @@ +{ + "LowestBOLD": "TaskOVGBOLD", + "LowestTaskOVG": "TaskOVGBOLD", + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration", + "TaskOVGBOLD": true +} + diff --git a/ipi1195v2/task-rest_bold.json b/ipi1195v2/task-rest_bold.json new file mode 100644 index 000000000..ede5c717e --- /dev/null +++ b/ipi1195v2/task-rest_bold.json @@ -0,0 +1,8 @@ +{ + "LowestBOLD": "TaskRestBOLD", + "LowestTaskRest": "TaskRestBOLD", + "RepetitionTime": 1.0, + "TaskName": "Resting-state", + "TaskRestBOLD": true +} + diff --git a/iploosemeta/sourcedata/ip_metadata.json b/iploosemeta/sourcedata/ip_metadata.json new file mode 100644 index 000000000..25d65d8de --- /dev/null +++ b/iploosemeta/sourcedata/ip_metadata.json @@ -0,0 +1,7 @@ +{ + "sub-01/anat/sub-01_T1w.nii.gz": { + ".json": [ + "Sub01T1w": true + ] + } +} diff --git a/iploosemeta/sub-01/anat/sub-01_T1w.json b/iploosemeta/sub-01/anat/sub-01_T1w.json index bfd870e45..625e7aca5 100644 --- a/iploosemeta/sub-01/anat/sub-01_T1w.json +++ b/iploosemeta/sub-01/anat/sub-01_T1w.json @@ -1,3 +1,4 @@ { + "Sub01T1w": true } diff --git a/iploosemeta/sub-01/anat/sub-01_T2w.json b/iploosemeta/sub-01/anat/sub-01_T2w.json index bfd870e45..6603bfafb 100644 --- a/iploosemeta/sub-01/anat/sub-01_T2w.json +++ b/iploosemeta/sub-01/anat/sub-01_T2w.json @@ -1,3 +1,4 @@ { + "Sub02T2w": true } diff --git a/ippr1003ae1/bold.json b/ippr1003ae1/bold.json index bfd870e45..c3344cd6e 100644 --- a/ippr1003ae1/bold.json +++ b/ippr1003ae1/bold.json @@ -1,3 +1,5 @@ { + "LowestBOLD": "BOLD", + "BOLD": true } diff --git a/ippr1003ae1/sourcedata/ip_metadata.json b/ippr1003ae1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..bce13011b --- /dev/null +++ b/ippr1003ae1/sourcedata/ip_metadata.json @@ -0,0 +1,58 @@ +{ + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01Ses01TaskOVGBOLD", + "LowestSub01": "Sub01Ses01TaskOVGBOLD", + "LowestSes01": "Sub01Ses01TaskOVGBOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true + ] + }, + "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSes01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGRun2BOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskOVGBOLD": true, + "Sub01Ses01TaskOVGRun2BOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "LowestTaskOVG": "TaskOVGBOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "LowestTaskRest": "TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true + ] + }, + "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { + ".json": [ + "LowestBOLD": "TaskRestBOLD", + "LowestTaskRest": "TaskRestBOLD", + "BOLD": true, + "TaskOVGBOLD": true, + "Sub01BOLD": true + ] + } +} diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json index bfd870e45..6931100e9 100644 --- a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_bold.json @@ -1,3 +1,7 @@ { + "LowestBOLD": "Sub01Ses01BOLD", + "LowestSub01": "Sub01Ses01BOLD", + "LowestSes01": "Sub01Ses01BOLD", + "Sub01Ses01BOLD": true } diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json index bfd870e45..a6808a84d 100644 --- a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -1,3 +1,7 @@ { + "LowestBOLD": "Sub01Ses01TaskOVGBOLD", + "LowestSub01": "Sub01Ses01TaskOVGBOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", + "Sub01Ses01TaskOVGBOLD": true } diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json index bfd870e45..7715bdc99 100644 --- a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.json @@ -1,3 +1,8 @@ { + "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestSes01": "Sub01Ses01TaskOVGRun2BOLD", + "LowestTaskOVG": "Sub01Ses01TaskOVGRun2BOLD", + "Sub01Ses01TaskOVGRun2BOLD": true } diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json index bfd870e45..20eebf4aa 100644 --- a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.json @@ -1,3 +1,8 @@ { + "LowestBOLD": "Sub01Ses01TaskRestBOLD", + "LowestSub01": "Sub01Ses01TaskRestBOLD", + "LowestSes01": "Sub01Ses01TaskRestBOLD", + "LowestTaskRest": "Sub01Ses01TaskRestBOLD", + "Sub01Ses01TaskRestBOLD": true } diff --git a/ippr1003ae1/sub-01/sub-01_bold.json b/ippr1003ae1/sub-01/sub-01_bold.json index bfd870e45..1f4bd86a8 100644 --- a/ippr1003ae1/sub-01/sub-01_bold.json +++ b/ippr1003ae1/sub-01/sub-01_bold.json @@ -1,3 +1,6 @@ { + "LowestBOLD": "Sub01BOLD", + "LowestSub01": "Sub01BOLD", + "Sub01BOLD": true } diff --git a/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json b/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json index bfd870e45..6970b60cb 100644 --- a/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json +++ b/ippr1003ae1/sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.json @@ -1,3 +1,6 @@ { + "LowestBOLD": "Sub02Ses01TaskRestBOLD", + "LowestTaskRest": "Sub02Ses01TaskRestBOLD", + "Sub02Ses01TaskRestBOLD": true } diff --git a/ippr1003ae1/task-ovg_bold.json b/ippr1003ae1/task-ovg_bold.json index 14016c2aa..f8ff66b51 100644 --- a/ippr1003ae1/task-ovg_bold.json +++ b/ippr1003ae1/task-ovg_bold.json @@ -1,5 +1,8 @@ { + "LowestBOLD": "TaskOVGBOLD", + "LowestTaskOVG": "TaskOVGBOLD", "RepetitionTime": 1.0, "TaskName": "OvertVerbGeneration" + "TaskOVGBOLD": true } diff --git a/ippr1003ae1/task-rest_bold.json b/ippr1003ae1/task-rest_bold.json index 1aedfae8a..65bce8c73 100644 --- a/ippr1003ae1/task-rest_bold.json +++ b/ippr1003ae1/task-rest_bold.json @@ -1,5 +1,8 @@ { + "LowestBOLD": "TaskRestBOLD", + "LowestTaskRest": "TaskRestBOLD", "RepetitionTime": 1.0, "TaskName": "Resting-state" + "TaskRestBOLD": true } diff --git a/ippr1003ae2/sourcedata/ip_metadata.json b/ippr1003ae2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..67e3bb1be --- /dev/null +++ b/ippr1003ae2/sourcedata/ip_metadata.json @@ -0,0 +1,30 @@ +{ + "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz": { + ".json": [ + "Sub01BOLD": true, + "Sub01TaskOVGBOLD": true, + "Sub01AcqHighresBOLD": true + ] + }, + "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz": { + ".json": [ + "Sub01BOLD": true, + "Sub01TaskOVGBOLD": true, + "Sub01AcqLowresBOLD": true + ] + }, + "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz": { + ".json": [ + "Sub01BOLD": true, + "Sub01TaskRestBOLD": true, + "Sub01AcqHighresBOLD": true + ] + }, + "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz": { + ".json": [ + "Sub01BOLD": true, + "Sub01TaskRestBOLD": true, + "Sub01AcqLowresBOLD": true + ] + } +} diff --git a/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json index bfd870e45..0de79d08c 100644 --- a/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json @@ -1,3 +1,4 @@ { + "Sub01AcqHiresBOLD": true } diff --git a/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json b/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json index bfd870e45..a5525ad9f 100644 --- a/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_acq-lowres_bold.json @@ -1,3 +1,4 @@ { + "Sub01AcqLowresBOLD": true } diff --git a/ippr1003ae2/sub-01/func/sub-01_bold.json b/ippr1003ae2/sub-01/func/sub-01_bold.json index a084f706b..f6b583e54 100644 --- a/ippr1003ae2/sub-01/func/sub-01_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_bold.json @@ -1,4 +1,5 @@ { - "RepetitionTime": 1.0 + "RepetitionTime": 1.0, + "Sub01BOLD": true } diff --git a/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json index db22a3570..f199f3353 100644 --- a/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_task-ovg_bold.json @@ -1,4 +1,5 @@ { + "Sub01TaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" } diff --git a/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json index f40efd569..89950b094 100644 --- a/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_task-rest_bold.json @@ -1,4 +1,5 @@ { + "Sub01TaskRestBOLD": true, "TaskName": "Resting-state" } diff --git a/ippr1003e1v1/sourcedata/ip_metadata.json b/ippr1003e1v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..2d96a2b1b --- /dev/null +++ b/ippr1003e1v1/sourcedata/ip_metadata.json @@ -0,0 +1,12 @@ +{ + "sub-01/anat/sub-01_part-imag_T2starw.nii.gz": { + ".json": [ + "Sub01T2starw": true + ] + }, + "sub-01/anat/sub-01_part-real_T2starw.nii.gz": { + ".json": [ + "Sub01T2starw": true + ] + } +} diff --git a/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json b/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json index bfd870e45..c63aa3d88 100644 --- a/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json +++ b/ippr1003e1v1/sub-01/anat/sub-01_T2starw.json @@ -1,3 +1,4 @@ { + "Sub01T2starw": true } diff --git a/ippr1003e1v2/sourcedata/ip_metadata.json b/ippr1003e1v2/sourcedata/ip_metadata.json index 8c66f34ef..725939ff4 100644 --- a/ippr1003e1v2/sourcedata/ip_metadata.json +++ b/ippr1003e1v2/sourcedata/ip_metadata.json @@ -1,12 +1,13 @@ { "sub-01/anat/sub-01_part-mag_T2starw.nii.gz": { ".json": { - "SharedMetadataKey": "SharedMetadataValue" + "Sub01T2starw": true } }, "sub-01/anat/sub-01_part-phase_T2starw.nii.gz": { ".json": { - "SharedMetadataKey": "SharedMetadataValue", + "Sub01T2starw": true, + "Sub01PartPhaseT2starw": true, "Units": "Radians" } } diff --git a/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json b/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json index 4604d5a86..c63aa3d88 100644 --- a/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json +++ b/ippr1003e1v2/sub-01/anat/sub-01_T2starw.json @@ -1,4 +1,4 @@ { - "SharedMetadataKey": "SharedMetadataValue" + "Sub01T2starw": true } diff --git a/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json b/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json index 9871c2888..692f50f93 100644 --- a/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json +++ b/ippr1003e1v2/sub-01/anat/sub-01_part-phase_T2starw.json @@ -1,3 +1,4 @@ { + "Sub01PartPhaseT2starw": true, "Units": "Radians" } From 30bbdf98123a369ccd3f75e9553aad1ad1a9f088 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 7 Jul 2025 15:25:33 +1000 Subject: [PATCH 10/14] Inheritance Principle datasets: Fix corrupt manual JSONs --- .../sourcedata/ip_metadata.json | 13 +++- ip112badmetapathe1/sub-01_T1w.json | 2 +- .../sourcedata/ip_metadata.json | 14 ++-- .../sourcedata/ip_metadata.json | 14 ++-- ip112e1bad/sourcedata/ip_metadata.json | 8 +-- ip112e1good/sourcedata/ip_metadata.json | 8 +-- ip112e3v1/sourcedata/ip_metadata.json | 12 ++-- ip112e3v2/sourcedata/ip_metadata.json | 14 ++-- ip170badrelpath/sourcedata/ip_metadata.json | 8 +-- ip170e2/sourcedata/ip_metadata.json | 8 +-- ip170e3/sourcedata/ip_metadata.json | 8 +-- ip170e4/sourcedata/ip_metadata.json | 8 +-- ipabsent/sourcedata/ip_metadata.json | 65 +++++++++---------- ipexclnonsc/sourcedata/ip_metadata.json | 4 +- ipi1195v1/sourcedata/ip_metadata.json | 36 +++++----- ipi1195v2/sourcedata/ip_metadata.json | 36 +++++----- iploosemeta/sourcedata/ip_metadata.json | 4 +- ippr1003ae1/sourcedata/ip_metadata.json | 20 +++--- ippr1003ae1/task-ovg_bold.json | 2 +- ippr1003ae1/task-rest_bold.json | 2 +- ippr1003ae2/sourcedata/ip_metadata.json | 16 ++--- ippr1003e1v1/sourcedata/ip_metadata.json | 8 +-- 22 files changed, 160 insertions(+), 150 deletions(-) diff --git a/ip112badmetapathe1/sourcedata/ip_metadata.json b/ip112badmetapathe1/sourcedata/ip_metadata.json index f48b2c15c..f368eb255 100644 --- a/ip112badmetapathe1/sourcedata/ip_metadata.json +++ b/ip112badmetapathe1/sourcedata/ip_metadata.json @@ -1,7 +1,14 @@ { "sub-01/anat/sub-01_run-1_T1w.nii.gz": { - ".json": [ - "sub-01_T1w.json" - ] + ".json": { + "sub01T1w": true + } + }, + "sub-01/anat/sub-01_run-2_T1w.nii.gz": { + ".json": { + "sub01T1w": true + } + }, + "sub-02/anat/sub-02_T1w.nii.gz": { } } diff --git a/ip112badmetapathe1/sub-01_T1w.json b/ip112badmetapathe1/sub-01_T1w.json index 3772e223d..75133cdc0 100644 --- a/ip112badmetapathe1/sub-01_T1w.json +++ b/ip112badmetapathe1/sub-01_T1w.json @@ -1,3 +1,3 @@ { - "Sub01T1w": True + "Sub01T1w": true } diff --git a/ip112badmetapathe2v1/sourcedata/ip_metadata.json b/ip112badmetapathe2v1/sourcedata/ip_metadata.json index f1a6fafe5..8a1bad673 100644 --- a/ip112badmetapathe2v1/sourcedata/ip_metadata.json +++ b/ip112badmetapathe2v1/sourcedata/ip_metadata.json @@ -1,13 +1,15 @@ { "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { - ".json": [ - "task-sist_bold.json" - ] + ".json": { + "RepetitionTime": 1.0, + "TaskName": "SIST" + } }, "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { - ".json": [ - "task-sist_bold.json" - ] + ".json": { + "RepetitionTime": 1.0, + "TaskName": "SIST" + } }, "sub-02/func/sub-02_task-sist_bold.nii.gz": { } diff --git a/ip112badmetapathe2v2/sourcedata/ip_metadata.json b/ip112badmetapathe2v2/sourcedata/ip_metadata.json index 406711d9d..eb40a94f3 100644 --- a/ip112badmetapathe2v2/sourcedata/ip_metadata.json +++ b/ip112badmetapathe2v2/sourcedata/ip_metadata.json @@ -1,12 +1,14 @@ { "sub-01/func/sub-01_task-sist_run-1_bold.nii.gz": { - ".json": [ - "task-sist_bold.json" - ] + ".json": { + "RepetitionTime": 1.0, + "TaskName": "SIST" + } }, "sub-01/func/sub-01_task-sist_run-2_bold.nii.gz": { - ".json": [ - "task-sist_bold.json" - ] + ".json": { + "RepetitionTime": 1.0, + "TaskName": "SIST" + } } } diff --git a/ip112e1bad/sourcedata/ip_metadata.json b/ip112e1bad/sourcedata/ip_metadata.json index 5c2c993fe..a2ae63d5c 100644 --- a/ip112e1bad/sourcedata/ip_metadata.json +++ b/ip112e1bad/sourcedata/ip_metadata.json @@ -2,15 +2,15 @@ "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "OvertVerbGeneration" - ] + } }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "OvertVerbGeneration" - ] + } } } diff --git a/ip112e1good/sourcedata/ip_metadata.json b/ip112e1good/sourcedata/ip_metadata.json index 5c2c993fe..a2ae63d5c 100644 --- a/ip112e1good/sourcedata/ip_metadata.json +++ b/ip112e1good/sourcedata/ip_metadata.json @@ -2,15 +2,15 @@ "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "OvertVerbGeneration" - ] + } }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "OvertVerbGeneration" - ] + } } } diff --git a/ip112e3v1/sourcedata/ip_metadata.json b/ip112e3v1/sourcedata/ip_metadata.json index 7672392cb..1bd583367 100644 --- a/ip112e3v1/sourcedata/ip_metadata.json +++ b/ip112e3v1/sourcedata/ip_metadata.json @@ -1,23 +1,23 @@ { "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "Source": "sub", "TaskName": "XYZ" - ] + } }, "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "Source": "sub", "TaskName": "XYZ" - ] + } }, "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "Source": "sub", "TaskName": "XYZ" - ] + } } } diff --git a/ip112e3v2/sourcedata/ip_metadata.json b/ip112e3v2/sourcedata/ip_metadata.json index 646350877..cccdfabae 100644 --- a/ip112e3v2/sourcedata/ip_metadata.json +++ b/ip112e3v2/sourcedata/ip_metadata.json @@ -1,27 +1,27 @@ { "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "SubjectOnly": true, "OverloadSource": "sub", "TaskName": "XYZ" - ] + } }, "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "SubjectOnly": true, "OverloadSource": "sub", "TaskName": "XYZ" - ] + } }, "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { - ".json": [ + ".json": { "FuncOnly": true, "RepetitionTime": 1.0, "SubjectOnly": true, "OverloadSource": "func", "TaskName": "XYZ" - ] - }, + } + } } diff --git a/ip170badrelpath/sourcedata/ip_metadata.json b/ip170badrelpath/sourcedata/ip_metadata.json index b2ebf247b..0fefce4a2 100644 --- a/ip170badrelpath/sourcedata/ip_metadata.json +++ b/ip170badrelpath/sourcedata/ip_metadata.json @@ -1,13 +1,13 @@ { "sub-01/ses-01/anat/sub-01_ses-01_run-1_T1w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01AnatT1w": true - ] + } }, "sub-01/ses-01/anat/sub-01_ses-01_run-2_T1w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01AnatT1w": true - ] + } }, "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { } diff --git a/ip170e2/sourcedata/ip_metadata.json b/ip170e2/sourcedata/ip_metadata.json index 4811189a9..4569aa5fd 100644 --- a/ip170e2/sourcedata/ip_metadata.json +++ b/ip170e2/sourcedata/ip_metadata.json @@ -2,20 +2,20 @@ "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { - ".json": [ + ".json": { "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" - ] + } }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { - ".json": [ + ".json": { "Lowest": "Sub01SesTestTaskOVGRun2BOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "Sub01SesTestTaskOVGRun2BOLD": true, "TaskName": "OvertVerbGeneration" - ] + } } } diff --git a/ip170e3/sourcedata/ip_metadata.json b/ip170e3/sourcedata/ip_metadata.json index 0c111eabe..9e40cb34c 100644 --- a/ip170e3/sourcedata/ip_metadata.json +++ b/ip170e3/sourcedata/ip_metadata.json @@ -2,21 +2,21 @@ "sub-01/ses-test/anat/sub-01_ses-test_T1w.nii.gz": { }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { - ".json": [ + ".json": { "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" - ] + } }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { - ".json": [ + ".json": { "Lowest": "Sub01SesTestTaskOVGRun2BOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "Sub01SesTestTaskOVGRun2BOLD": true, "TaskName": "OvertVerbGeneration" - ] + } } } diff --git a/ip170e4/sourcedata/ip_metadata.json b/ip170e4/sourcedata/ip_metadata.json index 14ff45aef..7a5bbfe71 100644 --- a/ip170e4/sourcedata/ip_metadata.json +++ b/ip170e4/sourcedata/ip_metadata.json @@ -1,14 +1,14 @@ { "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" - ] + } }, "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" - ] + } } } diff --git a/ipabsent/sourcedata/ip_metadata.json b/ipabsent/sourcedata/ip_metadata.json index ead5a0c4a..20cd31cfd 100644 --- a/ipabsent/sourcedata/ip_metadata.json +++ b/ipabsent/sourcedata/ip_metadata.json @@ -1,83 +1,82 @@ { "sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01T1w": true - ] + } }, "sub-01/ses-01/anat/sub-01_ses-01_T2w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01T2w": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01TaskNameBOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "Sub01Ses01TaskRestBOLD": true - ] + } }, "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses02T1w": true - ] + } }, "sub-01/ses-02/anat/sub-01_ses-02_T2w.nii.gz": { - ".json": [ + ".json": { "Sub01Ses02T2w": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz": { - ".json": [ + ".json": { "Sub01Ses02TaskNameBOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "Sub01Ses02TaskRestBOLD": true - ] + } }, - "sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz": { - ".json": [ + ".json": { "Sub02Ses01T1w": true - ] + } }, "sub-02/ses-01/anat/sub-02_ses-01_T2w.nii.gz": { - ".json": [ + ".json": { "Sub02Ses01T2w": true - ] + } }, "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz": { - ".json": [ + ".json": { "Sub02Ses01TaskNameBOLD": true - ] + } }, "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "Sub02Ses01TaskRestBOLD": true - ] + } }, "sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz": { - ".json": [ + ".json": { "Sub02Ses02T1w": true - ] + } }, "sub-02/ses-02/anat/sub-02_ses-02_T2w.nii.gz": { - ".json": [ + ".json": { "Sub02Ses02T2w": true - ] + } }, "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz": { - ".json": [ + ".json": { "Sub02Ses02TaskNameBOLD": true - ] + } }, "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "Sub02Ses02TaskRestBOLD": true - ] + } } } diff --git a/ipexclnonsc/sourcedata/ip_metadata.json b/ipexclnonsc/sourcedata/ip_metadata.json index 0373c9b45..8a663adae 100644 --- a/ipexclnonsc/sourcedata/ip_metadata.json +++ b/ipexclnonsc/sourcedata/ip_metadata.json @@ -1,7 +1,7 @@ { "sub-01/func/sub-01_task-rest_run-1_bold.nii.gz": { - ".json": [ + ".json": { "RepetitionTime": 1.0 - ] + } } } diff --git a/ipi1195v1/sourcedata/ip_metadata.json b/ipi1195v1/sourcedata/ip_metadata.json index 10dbbcf26..b882469bf 100644 --- a/ipi1195v1/sourcedata/ip_metadata.json +++ b/ipi1195v1/sourcedata/ip_metadata.json @@ -1,76 +1,76 @@ { "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true, "Sub01Ses01TaskOVGRun2BOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskRestBOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub01BOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResHighBOLD": true, "Sub02Ses01TaskOLRBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResHighBOLD": true, "Sub02Ses01TaskRestBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResLowBOLD": true, "Sub02Ses01TaskOLRBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResLowBOLD": true, "Sub02Ses01TaskRestBOLD": true - ] + } } } diff --git a/ipi1195v2/sourcedata/ip_metadata.json b/ipi1195v2/sourcedata/ip_metadata.json index 613d5226f..9c1d5bad5 100644 --- a/ipi1195v2/sourcedata/ip_metadata.json +++ b/ipi1195v2/sourcedata/ip_metadata.json @@ -1,6 +1,6 @@ { "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01Ses01TaskOVGBOLD", "LowestSub01": "Sub01Ses01TaskOVGBOLD", "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", @@ -9,10 +9,10 @@ "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", "LowestTaskOVG": "Sub01Ses01TeaskOVGRun2BOLD", @@ -22,10 +22,10 @@ "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true, "Sub01Ses01TaskOVGRun2BOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01Ses01BOLD", "LowestSub01": "Sub01Ses01BOLD", "LowestTaskRest": "TaskRestBOLD", @@ -34,30 +34,30 @@ "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskRestBOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01BOLD", "LowestSub01": "Sub01BOLD", "LowestTaskOVG": "TaskOVGBOLD", "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01BOLD", "LowestSub01": "Sub01BOLD", "LowestTaskRest": "TaskRestBOLD", "BOLD": true, "TaskRestBOLD": true, "Sub01BOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": null, "LowestResHigh": "Sub02Ses01ResHighBOLD", "LowestTaskOLR": "Sub02Ses01TaskOLRBOLD", @@ -65,10 +65,10 @@ "TaskOLRBOLD": true, "Sub02Ses01ResHighBOLD": true, "Sub02Ses01TaskOLRBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": null, "LowestResHigh": "Sub02Ses01ResHighBOLD", "LowestTaskRest": "Sub02Ses01TaskRestBOLD", @@ -76,10 +76,10 @@ "TaskRestBOLD": true, "Sub02Ses01ResHighBOLD": true, "Sub02Ses01TaskRestBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": null, "LowestResLow": "Sub02Ses01ResLowBOLD", "LowestTaskOLR": "Sub02Ses01TasklOLRBOLD", @@ -87,10 +87,10 @@ "TaskOLRBOLD": true, "Sub02Ses01ResLowBOLD": true, "Sub02Ses01TaskOLRBOLD": true - ] + } }, "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": null, "LowestResLow": "Sub02Ses01ResLowBOLD", "LowestTaskRest": "Sub02Ses01TaskRestBOLD", @@ -98,6 +98,6 @@ "TaskRestBOLD": true, "Sub02Ses01ResLowBOLD": true, "Sub02Ses01TaskRestBOLD": true - ] + } } } diff --git a/iploosemeta/sourcedata/ip_metadata.json b/iploosemeta/sourcedata/ip_metadata.json index 25d65d8de..c32f82bf1 100644 --- a/iploosemeta/sourcedata/ip_metadata.json +++ b/iploosemeta/sourcedata/ip_metadata.json @@ -1,7 +1,7 @@ { "sub-01/anat/sub-01_T1w.nii.gz": { - ".json": [ + ".json": { "Sub01T1w": true - ] + } } } diff --git a/ippr1003ae1/sourcedata/ip_metadata.json b/ippr1003ae1/sourcedata/ip_metadata.json index bce13011b..b7fa2a352 100644 --- a/ippr1003ae1/sourcedata/ip_metadata.json +++ b/ippr1003ae1/sourcedata/ip_metadata.json @@ -1,6 +1,6 @@ { "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-1_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01Ses01TaskOVGBOLD", "LowestSub01": "Sub01Ses01TaskOVGBOLD", "LowestSes01": "Sub01Ses01TaskOVGBOLD", @@ -10,10 +10,10 @@ "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true - ] + } }, "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01Ses01TaskOVGRun2BOLD", "LowestSub01": "Sub01Ses01TaskOVGRun2BOLD", "LowestSes01": "Sub01Ses01TaskOVGRun2BOLD", @@ -24,35 +24,35 @@ "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true, "Sub01Ses01TaskOVGRun2BOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01BOLD", "LowestSub01": "Sub01BOLD", "LowestTaskOVG": "TaskOVGBOLD", "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true - ] + } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "Sub01BOLD", "LowestSub01": "Sub01BOLD", "LowestTaskRest": "TaskRestBOLD", "BOLD": true, "TaskRestBOLD": true, "Sub01BOLD": true - ] + } }, "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { - ".json": [ + ".json": { "LowestBOLD": "TaskRestBOLD", "LowestTaskRest": "TaskRestBOLD", "BOLD": true, "TaskOVGBOLD": true, "Sub01BOLD": true - ] + } } } diff --git a/ippr1003ae1/task-ovg_bold.json b/ippr1003ae1/task-ovg_bold.json index f8ff66b51..945bfda42 100644 --- a/ippr1003ae1/task-ovg_bold.json +++ b/ippr1003ae1/task-ovg_bold.json @@ -2,7 +2,7 @@ "LowestBOLD": "TaskOVGBOLD", "LowestTaskOVG": "TaskOVGBOLD", "RepetitionTime": 1.0, - "TaskName": "OvertVerbGeneration" + "TaskName": "OvertVerbGeneration", "TaskOVGBOLD": true } diff --git a/ippr1003ae1/task-rest_bold.json b/ippr1003ae1/task-rest_bold.json index 65bce8c73..ede5c717e 100644 --- a/ippr1003ae1/task-rest_bold.json +++ b/ippr1003ae1/task-rest_bold.json @@ -2,7 +2,7 @@ "LowestBOLD": "TaskRestBOLD", "LowestTaskRest": "TaskRestBOLD", "RepetitionTime": 1.0, - "TaskName": "Resting-state" + "TaskName": "Resting-state", "TaskRestBOLD": true } diff --git a/ippr1003ae2/sourcedata/ip_metadata.json b/ippr1003ae2/sourcedata/ip_metadata.json index 67e3bb1be..1b55ce623 100644 --- a/ippr1003ae2/sourcedata/ip_metadata.json +++ b/ippr1003ae2/sourcedata/ip_metadata.json @@ -1,30 +1,30 @@ { "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz": { - ".json": [ + ".json": { "Sub01BOLD": true, "Sub01TaskOVGBOLD": true, "Sub01AcqHighresBOLD": true - ] + } }, "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz": { - ".json": [ + ".json": { "Sub01BOLD": true, "Sub01TaskOVGBOLD": true, "Sub01AcqLowresBOLD": true - ] + } }, "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz": { - ".json": [ + ".json": { "Sub01BOLD": true, "Sub01TaskRestBOLD": true, "Sub01AcqHighresBOLD": true - ] + } }, "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz": { - ".json": [ + ".json": { "Sub01BOLD": true, "Sub01TaskRestBOLD": true, "Sub01AcqLowresBOLD": true - ] + } } } diff --git a/ippr1003e1v1/sourcedata/ip_metadata.json b/ippr1003e1v1/sourcedata/ip_metadata.json index 2d96a2b1b..01359d947 100644 --- a/ippr1003e1v1/sourcedata/ip_metadata.json +++ b/ippr1003e1v1/sourcedata/ip_metadata.json @@ -1,12 +1,12 @@ { "sub-01/anat/sub-01_part-imag_T2starw.nii.gz": { - ".json": [ + ".json": { "Sub01T2starw": true - ] + } }, "sub-01/anat/sub-01_part-real_T2starw.nii.gz": { - ".json": [ + ".json": { "Sub01T2starw": true - ] + } } } From b378661e9fdb4985f45bd74d5931c7423a5263c3 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 7 Jul 2025 20:42:58 +1000 Subject: [PATCH 11/14] Inheritance Principle datasets: Fixes to metadata tests --- .../sourcedata/ip_metadata.json | 4 +- ip170e2/sourcedata/ip_metadata.json | 2 - ...es-test_task-overtverbgeneration_bold.json | 1 - ...t_task-overtverbgeneration_run-2_bold.json | 1 - ipabsent/sourcedata/ip_metadata.json | 32 ++++++++++---- ipi1195v1/sourcedata/ip_graph.json | 1 - ipi1195v1/sourcedata/ip_metadata.json | 44 +++++++++++++------ ipi1195v2/sourcedata/ip_metadata.json | 24 ++++++---- ippr1003ae1/sourcedata/ip_metadata.json | 41 +++++++++++++---- .../func/sub-01_ses-01_task-ovg_bold.json | 1 + ippr1003ae2/sourcedata/ip_metadata.json | 8 ++++ .../sub-01/func/sub-01_acq-highres_bold.json | 2 +- 12 files changed, 116 insertions(+), 45 deletions(-) diff --git a/ip112badmetapathe1/sourcedata/ip_metadata.json b/ip112badmetapathe1/sourcedata/ip_metadata.json index f368eb255..8a9fa17f4 100644 --- a/ip112badmetapathe1/sourcedata/ip_metadata.json +++ b/ip112badmetapathe1/sourcedata/ip_metadata.json @@ -1,12 +1,12 @@ { "sub-01/anat/sub-01_run-1_T1w.nii.gz": { ".json": { - "sub01T1w": true + "Sub01T1w": true } }, "sub-01/anat/sub-01_run-2_T1w.nii.gz": { ".json": { - "sub01T1w": true + "Sub01T1w": true } }, "sub-02/anat/sub-02_T1w.nii.gz": { diff --git a/ip170e2/sourcedata/ip_metadata.json b/ip170e2/sourcedata/ip_metadata.json index 4569aa5fd..843e24db2 100644 --- a/ip170e2/sourcedata/ip_metadata.json +++ b/ip170e2/sourcedata/ip_metadata.json @@ -3,7 +3,6 @@ }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-1_bold.nii.gz": { ".json": { - "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" @@ -11,7 +10,6 @@ }, "sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.nii.gz": { ".json": { - "Lowest": "Sub01SesTestTaskOVGRun2BOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "Sub01SesTestTaskOVGRun2BOLD": true, diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json index ec38e2d3c..f1f34643a 100644 --- a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_bold.json @@ -1,5 +1,4 @@ { - "Lowest": "Sub01SesTestTaskOVGBOLD", "RepetitionTime": 1.0, "Sub01SesTestTaskOVGBOLD": true, "TaskName": "OvertVerbGeneration" diff --git a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json index 0ff2acd87..8d96106e9 100644 --- a/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json +++ b/ip170e2/sub-01/ses-test/func/sub-01_ses-test_task-overtverbgeneration_run-2_bold.json @@ -1,5 +1,4 @@ { - "Lowest": "Sub01SesTestTaskOVGRun2BOLD", "Sub01SesTestTaskOVGRun2BOLD": true } diff --git a/ipabsent/sourcedata/ip_metadata.json b/ipabsent/sourcedata/ip_metadata.json index 20cd31cfd..b89f24312 100644 --- a/ipabsent/sourcedata/ip_metadata.json +++ b/ipabsent/sourcedata/ip_metadata.json @@ -11,12 +11,16 @@ }, "sub-01/ses-01/func/sub-01_ses-01_task-name_bold.nii.gz": { ".json": { - "Sub01Ses01TaskNameBOLD": true + "RepetitionTime": 1.0, + "Sub01Ses01TaskNameBOLD": true, + "TaskName": "TaskName" } }, "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { ".json": { - "Sub01Ses01TaskRestBOLD": true + "RepetitionTime": 1.0, + "Sub01Ses01TaskRestBOLD": true, + "TaskName": "Resting-state" } }, "sub-01/ses-02/anat/sub-01_ses-02_T1w.nii.gz": { @@ -31,12 +35,16 @@ }, "sub-01/ses-02/func/sub-01_ses-02_task-name_bold.nii.gz": { ".json": { - "Sub01Ses02TaskNameBOLD": true + "RepetitionTime": 1.0, + "Sub01Ses02TaskNameBOLD": true, + "TaskName": "TaskName" } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { ".json": { - "Sub01Ses02TaskRestBOLD": true + "RepetitionTime": 1.0, + "Sub01Ses02TaskRestBOLD": true, + "TaskName": "Resting-state" } }, "sub-02/ses-01/anat/sub-02_ses-01_T1w.nii.gz": { @@ -51,12 +59,16 @@ }, "sub-02/ses-01/func/sub-02_ses-01_task-name_bold.nii.gz": { ".json": { - "Sub02Ses01TaskNameBOLD": true + "RepetitionTime": 1.0, + "Sub02Ses01TaskNameBOLD": true, + "TaskName": "TaskName" } }, "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { ".json": { - "Sub02Ses01TaskRestBOLD": true + "RepetitionTime": 1.0, + "Sub02Ses01TaskRestBOLD": true, + "TaskName": "Resting-state" } }, "sub-02/ses-02/anat/sub-02_ses-02_T1w.nii.gz": { @@ -71,12 +83,16 @@ }, "sub-02/ses-02/func/sub-02_ses-02_task-name_bold.nii.gz": { ".json": { - "Sub02Ses02TaskNameBOLD": true + "RepetitionTime": 1.0, + "Sub02Ses02TaskNameBOLD": true, + "TaskName": "TaskName" } }, "sub-02/ses-02/func/sub-02_ses-02_task-rest_bold.nii.gz": { ".json": { - "Sub02Ses02TaskRestBOLD": true + "RepetitionTime": 1.0, + "Sub02Ses02TaskRestBOLD": true, + "TaskName": "Resting-state" } } } diff --git a/ipi1195v1/sourcedata/ip_graph.json b/ipi1195v1/sourcedata/ip_graph.json index 34668e2d3..fe76e3260 100644 --- a/ipi1195v1/sourcedata/ip_graph.json +++ b/ipi1195v1/sourcedata/ip_graph.json @@ -9,7 +9,6 @@ "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz", "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz", "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz" - ], "task-olr_bold.json": [ "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz", diff --git a/ipi1195v1/sourcedata/ip_metadata.json b/ipi1195v1/sourcedata/ip_metadata.json index b882469bf..4fa670900 100644 --- a/ipi1195v1/sourcedata/ip_metadata.json +++ b/ipi1195v1/sourcedata/ip_metadata.json @@ -5,7 +5,9 @@ "TaskOVGBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, - "Sub01Ses01TaskOVGBOLD": true + "Sub01Ses01TaskOVGBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } }, "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { @@ -15,7 +17,9 @@ "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true, - "Sub01Ses01TaskOVGRun2BOLD": true + "Sub01Ses01TaskOVGRun2BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } }, "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { @@ -24,53 +28,67 @@ "TaskRestBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, - "Sub01Ses01TaskRestBOLD": true + "Sub01Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { ".json": { "BOLD": true, "TaskOVGBOLD": true, - "Sub01BOLD": true + "Sub01BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { ".json": { "BOLD": true, "TaskRestBOLD": true, - "Sub01BOLD": true + "Sub01BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { ".json": { "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResHighBOLD": true, - "Sub02Ses01TaskOLRBOLD": true + "Sub02Ses01TaskOLRBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResHighBOLD": true, - "Sub02Ses01TaskRestBOLD": true + "Sub02Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { ".json": { "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResLowBOLD": true, - "Sub02Ses01TaskOLRBOLD": true + "Sub02Ses01TaskOLRBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { ".json": { "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResLowBOLD": true, - "Sub02Ses01TaskRestBOLD": true + "Sub02Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } } } diff --git a/ipi1195v2/sourcedata/ip_metadata.json b/ipi1195v2/sourcedata/ip_metadata.json index 9c1d5bad5..afefc2b1e 100644 --- a/ipi1195v2/sourcedata/ip_metadata.json +++ b/ipi1195v2/sourcedata/ip_metadata.json @@ -56,7 +56,7 @@ "Sub01BOLD": true } }, - "sub-01/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-olr_bold.nii.gz": { ".json": { "LowestBOLD": null, "LowestResHigh": "Sub02Ses01ResHighBOLD", @@ -64,10 +64,12 @@ "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResHighBOLD": true, - "Sub02Ses01TaskOLRBOLD": true + "Sub02Ses01TaskOLRBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-high_task-rest_bold.nii.gz": { ".json": { "LowestBOLD": null, "LowestResHigh": "Sub02Ses01ResHighBOLD", @@ -75,10 +77,12 @@ "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResHighBOLD": true, - "Sub02Ses01TaskRestBOLD": true + "Sub02Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-olr_bold.nii.gz": { ".json": { "LowestBOLD": null, "LowestResLow": "Sub02Ses01ResLowBOLD", @@ -86,10 +90,12 @@ "BOLD": true, "TaskOLRBOLD": true, "Sub02Ses01ResLowBOLD": true, - "Sub02Ses01TaskOLRBOLD": true + "Sub02Ses01TaskOLRBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OrthographicLexicalRetrieval" } }, - "sub-01/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { + "sub-02/ses-01/func/sub-02_ses-01_res-low_task-rest_bold.nii.gz": { ".json": { "LowestBOLD": null, "LowestResLow": "Sub02Ses01ResLowBOLD", @@ -97,7 +103,9 @@ "BOLD": true, "TaskRestBOLD": true, "Sub02Ses01ResLowBOLD": true, - "Sub02Ses01TaskRestBOLD": true + "Sub02Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } } } diff --git a/ippr1003ae1/sourcedata/ip_metadata.json b/ippr1003ae1/sourcedata/ip_metadata.json index b7fa2a352..d2d60a4d8 100644 --- a/ippr1003ae1/sourcedata/ip_metadata.json +++ b/ippr1003ae1/sourcedata/ip_metadata.json @@ -9,7 +9,9 @@ "TaskOVGBOLD": true, "Sub01BOLD": true, "Sub01Ses01BOLD": true, - "Sub01Ses01TaskOVGBOLD": true + "Sub01Ses01TaskOVGBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } }, "sub-01/ses-01/func/sub-01_ses-01_task-ovg_run-2_bold.nii.gz": { @@ -23,7 +25,24 @@ "Sub01BOLD": true, "Sub01Ses01BOLD": true, "Sub01Ses01TaskOVGBOLD": true, - "Sub01Ses01TaskOVGRun2BOLD": true + "Sub01Ses01TaskOVGRun2BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" + } + }, + "sub-01/ses-01/func/sub-01_ses-01_task-rest_bold.nii.gz": { + ".json": { + "LowestBOLD": "Sub01Ses01TaskRestBOLD", + "LowestSub01": "Sub01Ses01TaskRestBOLD", + "LowestSes01": "Sub01Ses01TaskRestBOLD", + "LowestTaskRest": "Sub01Ses01TaskRestBOLD", + "BOLD": true, + "TaskRestBOLD": true, + "Sub01BOLD": true, + "Sub01Ses01BOLD": true, + "Sub01Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, "sub-01/ses-02/func/sub-01_ses-02_task-ovg_bold.nii.gz": { @@ -33,7 +52,9 @@ "LowestTaskOVG": "TaskOVGBOLD", "BOLD": true, "TaskOVGBOLD": true, - "Sub01BOLD": true + "Sub01BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration" } }, "sub-01/ses-02/func/sub-01_ses-02_task-rest_bold.nii.gz": { @@ -43,16 +64,20 @@ "LowestTaskRest": "TaskRestBOLD", "BOLD": true, "TaskRestBOLD": true, - "Sub01BOLD": true + "Sub01BOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } }, "sub-02/ses-01/func/sub-02_ses-01_task-rest_bold.nii.gz": { ".json": { - "LowestBOLD": "TaskRestBOLD", - "LowestTaskRest": "TaskRestBOLD", + "LowestBOLD": "Sub02Ses01TaskRestBOLD", + "LowestTaskRest": "Sub02Ses01TaskRestBOLD", "BOLD": true, - "TaskOVGBOLD": true, - "Sub01BOLD": true + "TaskRestBOLD": true, + "Sub02Ses01TaskRestBOLD": true, + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } } } diff --git a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json index a6808a84d..0b6e71579 100644 --- a/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json +++ b/ippr1003ae1/sub-01/ses-01/func/sub-01_ses-01_task-ovg_bold.json @@ -1,6 +1,7 @@ { "LowestBOLD": "Sub01Ses01TaskOVGBOLD", "LowestSub01": "Sub01Ses01TaskOVGBOLD", + "LowestSes01": "Sub01Ses01TaskOVGBOLD", "LowestTaskOVG": "Sub01Ses01TaskOVGBOLD", "Sub01Ses01TaskOVGBOLD": true } diff --git a/ippr1003ae2/sourcedata/ip_metadata.json b/ippr1003ae2/sourcedata/ip_metadata.json index 1b55ce623..e80df459e 100644 --- a/ippr1003ae2/sourcedata/ip_metadata.json +++ b/ippr1003ae2/sourcedata/ip_metadata.json @@ -1,6 +1,8 @@ { "sub-01/func/sub-01_task-ovg_acq-highres_bold.nii.gz": { ".json": { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration", "Sub01BOLD": true, "Sub01TaskOVGBOLD": true, "Sub01AcqHighresBOLD": true @@ -8,6 +10,8 @@ }, "sub-01/func/sub-01_task-ovg_acq-lowres_bold.nii.gz": { ".json": { + "RepetitionTime": 1.0, + "TaskName": "OvertVerbGeneration", "Sub01BOLD": true, "Sub01TaskOVGBOLD": true, "Sub01AcqLowresBOLD": true @@ -15,6 +19,8 @@ }, "sub-01/func/sub-01_task-rest_acq-highres_bold.nii.gz": { ".json": { + "RepetitionTime": 1.0, + "TaskName": "Resting-state", "Sub01BOLD": true, "Sub01TaskRestBOLD": true, "Sub01AcqHighresBOLD": true @@ -22,6 +28,8 @@ }, "sub-01/func/sub-01_task-rest_acq-lowres_bold.nii.gz": { ".json": { + "RepetitionTime": 1.0, + "TaskName": "Resting-state", "Sub01BOLD": true, "Sub01TaskRestBOLD": true, "Sub01AcqLowresBOLD": true diff --git a/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json index 0de79d08c..8effd2f2c 100644 --- a/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json +++ b/ippr1003ae2/sub-01/func/sub-01_acq-highres_bold.json @@ -1,4 +1,4 @@ { - "Sub01AcqHiresBOLD": true + "Sub01AcqHighresBOLD": true } From ac2f2fb4ed66680911ea43377374291a433cb830 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Mon, 7 Jul 2025 23:34:10 +1000 Subject: [PATCH 12/14] "ipexclnonsc": Add TaskName for validators --- ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json b/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json index a084f706b..1aedfae8a 100644 --- a/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json +++ b/ipexclnonsc/sub-01/func/sub-01_task-rest_bold.json @@ -1,4 +1,5 @@ { - "RepetitionTime": 1.0 + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } From e01aa93a16c9489e48775b503662f3d5def55b47 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Thu, 10 Jul 2025 14:21:10 +1000 Subject: [PATCH 13/14] Inheritance Principle datasets: More metadata Save expected inherited metadata for more datasets to facilitate testing of pybids. --- ip112e2v1/sourcedata/ip_metadata.json | 26 ++++ ip112e2v2/sourcedata/ip_metadata.json | 26 ++++ ipexclnonsc/sourcedata/ip_metadata.json | 3 +- ipmultielfce1v1/sourcedata/ip_metadata.json | 137 ++++++++++++++++++++ 4 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 ip112e2v1/sourcedata/ip_metadata.json create mode 100644 ip112e2v2/sourcedata/ip_metadata.json create mode 100644 ipmultielfce1v1/sourcedata/ip_metadata.json diff --git a/ip112e2v1/sourcedata/ip_metadata.json b/ip112e2v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..4d73ee037 --- /dev/null +++ b/ip112e2v1/sourcedata/ip_metadata.json @@ -0,0 +1,26 @@ +{ + "sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + } +} diff --git a/ip112e2v2/sourcedata/ip_metadata.json b/ip112e2v2/sourcedata/ip_metadata.json new file mode 100644 index 000000000..4d73ee037 --- /dev/null +++ b/ip112e2v2/sourcedata/ip_metadata.json @@ -0,0 +1,26 @@ +{ + "sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + }, + "sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + ".json": { + "RepetitionTime": 1.0, + "TaskName": "XYZ" + } + } +} diff --git a/ipexclnonsc/sourcedata/ip_metadata.json b/ipexclnonsc/sourcedata/ip_metadata.json index 8a663adae..c166460ff 100644 --- a/ipexclnonsc/sourcedata/ip_metadata.json +++ b/ipexclnonsc/sourcedata/ip_metadata.json @@ -1,7 +1,8 @@ { "sub-01/func/sub-01_task-rest_run-1_bold.nii.gz": { ".json": { - "RepetitionTime": 1.0 + "RepetitionTime": 1.0, + "TaskName": "Resting-state" } } } diff --git a/ipmultielfce1v1/sourcedata/ip_metadata.json b/ipmultielfce1v1/sourcedata/ip_metadata.json new file mode 100644 index 000000000..fe3fc9567 --- /dev/null +++ b/ipmultielfce1v1/sourcedata/ip_metadata.json @@ -0,0 +1,137 @@ +{ + "sub-01/func/sub-01_task-movie_echo-1_part-mag_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE1", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 1, + "EchoTime": 0.015, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + }, + "sub-01/func/sub-01_task-movie_echo-1_part-phase_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE1", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 1, + "EchoTime": 0.015, + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + }, + "sub-01/func/sub-01_task-movie_echo-2_part-mag_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE2", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 2, + "EchoTime": 0.035, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + }, + "sub-01/func/sub-01_task-movie_echo-2_part-phase_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE2", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 2, + "EchoTime": 0.035, + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + }, + "sub-01/func/sub-01_task-movie_echo-3_part-mag_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "M", + "MB", + "TE3", + "ND", + "NORM", + "MOSAIC" + ], + "SeriesNumber": 53, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 3, + "EchoTime": 0.055, + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + }, + "sub-01/func/sub-01_task-movie_echo-3_part-phase_bold.nii.gz": { + ".json": { + "Modality": "MR", + "ScanningSequence": "EP", + "ImageType": [ + "ORIGINAL", + "PRIMARY", + "P", + "MB", + "TE3", + "ND", + "MOSAIC", + "PHASE" + ], + "SeriesNumber": 54, + "ImageComments": "Unaliased MB4/PE4/LB SENSE1+", + "EchoNumber": 3, + "EchoTime": 0.055, + "Units": "arbitrary", + "RepetitionTime": 1.0, + "TaskName": "Movie-watching" + } + } +} From 344815a4b2cdaa93f2f77c1ab72c8a64cb904989 Mon Sep 17 00:00:00 2001 From: Robert Smith Date: Thu, 10 Jul 2025 15:44:09 +1000 Subject: [PATCH 14/14] ip112e2v*: Fix reference metadata --- ip112e2v1/sourcedata/ip_metadata.json | 8 ++++---- ip112e2v2/sourcedata/ip_metadata.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ip112e2v1/sourcedata/ip_metadata.json b/ip112e2v1/sourcedata/ip_metadata.json index 4d73ee037..ed4f52bfb 100644 --- a/ip112e2v1/sourcedata/ip_metadata.json +++ b/ip112e2v1/sourcedata/ip_metadata.json @@ -1,23 +1,23 @@ { - "sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" diff --git a/ip112e2v2/sourcedata/ip_metadata.json b/ip112e2v2/sourcedata/ip_metadata.json index 4d73ee037..ed4f52bfb 100644 --- a/ip112e2v2/sourcedata/ip_metadata.json +++ b/ip112e2v2/sourcedata/ip_metadata.json @@ -1,23 +1,23 @@ { - "sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon1_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_rec-recon2_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_run-1_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ" } }, - "sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { + "sub-01/func/sub-01_task-xyz_acq-test1_run-2_bold.nii.gz": { ".json": { "RepetitionTime": 1.0, "TaskName": "XYZ"