Feedback regarding BIDS Spinal Cord Dataset

51 views
Skip to first unread message

Julian McGinnis

unread,
Jun 20, 2022, 4:24:44 AM6/20/22
to bids-discussion

Hello BIDS community,

thank you very much for the documentation and support, I think the BIDS standard is very accessible to beginners. As my study is a bit different from the examples I’ve found online, I would like to ask you for some advice:

Currently, I am working on a large-scale clinical cohort of multiple sclerosis patients involving the spinal cord in T2w MRI scans. It is a cohort that involves longitudinal scans of the same patient, thus involves multiple sessions. The dataset contains 100+ patients. The clinical routine includes the following scans in one session:

  • First, scans of the patient are axially acquired, ranging from C1 to L1, resulting in 2-3 NIFTI stacks. The first stack includes the cervical, the 2nd the thoracic, the last elements of the thoracic and lumbar spine. However, the contained vertebrae are not exclusively e.g. thoracic or cervical. Different stacks are only acquired due to field of view of the scanner, and thus may comprise more or less vertebrae. A smaller patient might be scanned in two, a taller person may be scanned in three.
  • The same procedure is performed, but this time the scans are sagittally acquired. Thus, we have 4-6 scans of each patient which I would consider as raw / source data. Please let me know, if you think differently.

Lastly, we try to stitch the scans into one axially and one sagittally acquired image of the full spine, which I would probably place in the derivatives/stitched directory. This will serve as input for other pipelines and scripts, I chose the “rec-” subscript for it. What would you do differently? Am I missing any files and/or utilizing uncommon/error-prone subscripts?

.
├── CHANGES.md
├── code
│   ├── sct-v5.5
│   └── sct-v5.6
├── dataset_description.json
├── derivatives
│   ├── labels
│   │   └── sub-123456
│   │       ├── ses-20220101
│   │       │   ├── sub-123456_ses-20220101-label-lesionsAx-manual_T2w.json
│   │       │   ├── sub-123456_ses-20220101-label-lesionsAx-manual_T2w.nii.gz
│   │       │   ├── sub-123456_ses-20220101-label-lesionsSag-manual_T2w.json
│   │       │   └── sub-123456_ses-20220101-label-lesionsSag-manual_T2w.nii.gz
│   │       └── ses-20220202
│   │           ├── sub-123456_ses-20220202-label-lesionsAx-manual_T2w.json
│   │           ├── sub-123456_ses-20220202-label-lesionsAx-manual_T2w.nii.gz
│   │           ├── sub-123456_ses-20220202-label-lesionsSag-manual_T2w.json
│   │           └── sub-123456_ses-20220202-label-lesionsSag-manual_T2w.nii.gz
│   └── stitched
│       └── sub-123456
│           ├── ses-20220101
│           │   ├── sub-123456_ses-20220101_rec-fullspineAx_T2w.json
│           │   ├── sub-123456_ses-20220101_rec-fullspineAx_T2w.nii.gz
│           │   ├── sub-123456_ses-20220101_rec-fullspineSag_T2w.json
│           │   └── sub-123456_ses-20220101_rec-fullspineSag_T2w.nii.gz
│           └── ses-20220202
│               ├── sub-123456_ses-20220202_rec-fullspineAx_T2w.json
│               ├── sub-123456_ses-20220202_rec-fullspineAx_T2w.nii.gz
│               ├── sub-123456_ses-20220202_rec-fullspineSag_T2w.json
│               └── sub-123456_ses-20220202_rec-fullspineSag_T2w.nii.gz
├── LICENSE
├── participants.json
├── participants.tsv
├── README.md
├── sourcedata
│   └── sub-123456
│       ├── ses-20220101
│       │   ├── anat
│       │   │   ├── sub-123456_ses-20220101_acq-cervicalAx_T2w.json
│       │   │   ├── sub-123456_ses-20220101_acq-cervicalAx_T2w.nii.gz
│       │   │   ├── sub-123456_ses-20220101_acq-cervicalSag_T2w.json
│       │   │   ├── sub-123456_ses-20220101_acq-cervicalSag_T2w.nii.gz
│       │   │   ├── sub-123456_ses-20220101_acq-lumbarAx_T2w.json
│       │   │   ├── sub-123456_ses-20220101_acq-lumbarAx_T2w.nii.gz
│       │   │   ├── sub-123456_ses-20220101_acq-lumbarSag_T2w.json
│       │   │   ├── sub-123456_ses-20220101_acq-lumbarSag_T2w.nii.gz
│       │   │   ├── sub-123456_ses-20220101_acq-thoracicAx_T2w.json
│       │   │   ├── sub-123456_ses-20220101_acq-thoracicAx_T2w.nii.gz
│       │   │   ├── sub-123456_ses-20220101_acq-thoracicSag_T2w.json
│       │   │   └── sub-123456_ses-20220101_acq-thoracicSag_T2w.nii.gz
│       │   └── sub-123456_ses-20220101_scans.tsv
│       └── ses-20220202
│           ├── anat
│           │   ├── sub-123456_ses-20220202_acq-cervicalAx_T2w.json
│           │   ├── sub-123456_ses-20220202_acq-cervicalAx_T2w.nii.gz
│           │   ├── sub-123456_ses-20220202_acq-cervicalSag_T2w.json
│           │   ├── sub-123456_ses-20220202_acq-cervicalSag_T2w.nii.gz
│           │   ├── sub-123456_ses-20220202_acq-lumbarAx_T2w.json
│           │   ├── sub-123456_ses-20220202_acq-lumbarAx_T2w.nii.gz
│           │   ├── sub-123456_ses-20220202_acq-lumbarSag_T2w.json
│           │   ├── sub-123456_ses-20220202_acq-lumbarSag_T2w.nii.gz
│           │   ├── sub-123456_ses-20220202_acq-thoracicAx_T2w.json
│           │   ├── sub-123456_ses-20220202_acq-thoracicAx_T2w.nii.gz
│           │   ├── sub-123456_ses-20220202_acq-thoracicSag_T2w.json
│           │   └── sub-123456_ses-20220202_acq-thoracicSag_T2w.nii.gz
│           └── sub-123456_ses-20220202_scans.tsv

Thank you very much for the help,

Julian

Remi Gau

unread,
Jun 20, 2022, 5:08:13 AM6/20/22
to bids-di...@googlegroups.com, Julian McGinnis

Hey Julian

Quick suggestions:


I don't think you should put your subjects into a sourcedata folder and you can directly go for something like this.

├── dataset_description.json
├── derivatives
│   ├── labels
│   └── stitched
├── participants.tsv
├── README.md
└── sub-123456
    ├── ses-20220101
    │   └── anat
    └── ses-20220202
        └── anat


> I chose the “rec-” subscript for it. What would you do differently?


I think you could probably go for "desc-" which is more appropriate for derivative data

https://bids-specification.readthedocs.io/en/latest/05-derivatives/03-imaging.html#preprocessed-coregistered-andor-resampled-volumes


> sub-123456_ses-20220101-label-lesionsAx-manual_T2w.nii.gz

regarding those files, if they are manual delineation of lesions, you could make those discrete segmentation files:

https://bids-specification.readthedocs.io/en/latest/05-derivatives/03-imaging.html#discrete-segmentations

for example:

    sub-123456_ses-20220101_dseg.nii.gz

and specify in the json file:

    "Manual": "true" 

See this table for the lesion label you can use.

https://bids-specification.readthedocs.io/en/latest/05-derivatives/03-imaging.html#common-image-derived-labels


Another possibility if those just binary masks, you can also use the derivative specification for those:

https://bids-specification.readthedocs.io/en/latest/05-derivatives/03-imaging.html#masks

    sub-123456_ses-20220101-label-lesionsAxManual_mask.nii.gz

and specify in the json file:

    "Type": "Lesion"


Also note that it is preferable to use "label-lesionsAxManual" instead  of "label-lesionsAx-manual" because the former is proper filenaming pattern (see https://bids-standard.github.io/bids-starter-kit/folders_and_files/files.html#filename-template) and that tools like pybids and bids-matlab will have an easier time dealing with those if you follow this naming pattern.


Hope that helps


Rémi

--
We are all colleagues working together to shape brain imaging for tomorrow, please be respectful, gracious, and patient with your fellow group members.
---
You received this message because you are subscribed to the Google Groups "bids-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bids-discussi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bids-discussion/d7ce3a87-3031-4715-b0c2-b00b06aa70cbn%40googlegroups.com.
--

Rémi Gau

Julian McGinnis

unread,
Jun 23, 2022, 3:33:44 AM6/23/22
to bids-discussion
Hi Rémi,

thank you very much for your valuable feedback and your recommendations, they are highly appreciated!

Yesterday, I presented the BIDS data structure and your recommendations to our collaborators in Canada. During our discussion, several ideas and challenges came up that we need to discuss with all people involved in the project.
For instance, the splits (cervical, thoracic, lumbar) might not always cover identical areas of the spine. In a patient A, subj-{id}_ses-{id}_acq-cervicalAx_T2w.nii.gz might show the spine from C1-C7, whereas a scan of patent B might include  segments of the thoracic spine, e.g. T1, T2 as well. We are considering to describe this information might be described in the JSON sidecarses. Moreover, we are not yet sure how well the stitching algorithm will work, and if this could be considered as pre-processing as well, resulting in a less bloated dataset. Lastly, we also need to discuss with the medical doctors that will be involved in some of the semi-automated labeling, if the labeling will be conducted on the stitched or raw data.

So for the time being, I will try to address and discuss these open challenges in greater detail with all people involved and get back to you with an updated structure!

Thank you very much for your time,

Julian
Reply all
Reply to author
Forward
0 new messages