Diff for "MriBids" - MRC CBU Imaging Wiki
location: Diff for "MriBids"
Differences between revisions 25 and 26
Revision 25 as of 2023-12-13 15:04:14
Size: 9436
Editor: DaceApsvalka
Comment:
Revision 26 as of 2023-12-13 15:12:21
Size: 8443
Editor: DaceApsvalka
Comment:
Deletions are marked like this. Additions are marked like this.
Line 107: Line 107:
{{{#!/bin/bash
Line 109: Line 108:
# ============================================================
# Discovering DICOM files using HeuDiConv
# ============================================================
Line 113: Line 109:
# Your project's root directory
PROJECT_PATH='/imaging/correia/da05/wiki/BIDS_conversion/MRI'

# Location of the raw data
RAW_PATH='/mridata/cbu/CBU090942_MR09029'

# Location of the output data (it will be created if it doesn't exist)
OUTPUT_PATH=$PROJECT_PATH/data/work/dicom_discovery/

# Subject ID
subject="01"

# Load the apptainer module
module load apptainer

# Run the container
apptainer run --cleanenv \
    --bind "${PROJECT_PATH},${RAW_PATH}" \
    /imaging/local/software/singularity_images/heudiconv/heudiconv_latest.sif \
    --files "${RAW_PATH}"/*/*/*.dcm \
    --outdir "$OUTPUT_PATH" \
    --heuristic convertall \
    --subjects "${subject}" \
    --converter none \
    --bids \
    --overwrite

# Unload the apptainer module
module unload apptainer
}}}

Table of contents:

Converting CBU MRI DICOM data to BIDS format

To start working with your MRI data, you need to convert the raw DICOM format data to NIfTI format and organise them according to the BIDS standard. This tutorial outlines how to do that. If you have any questions, please email Dace. The example scripts described in this tutorial are available on our GitHub repository.

To perform the conversion on your CBU MRI data, you need to be logged into CBU Compute Cluster.

Where is your raw data

The raw data from the CBU MRI scanner are stored at /mridata/cbu/[subject code]_[project code]. You can see all your participant scan directories by typing a command like this in a terminal (replace 'MR09029' with your project code):

ls -d /mridata/cbu/*_MR09029/*

/mridata/cbu/CBU090817_MR09029/20090803_083228/
/mridata/cbu/CBU090924_MR09029/20090824_095047/
/mridata/cbu/CBU090928_MR09029/20090824_164906/
/mridata/cbu/CBU090931_MR09029/20090825_095125/
...

The first part of the folder name which follows the project code, is the data acquisition date. E.g., the data of the first subject in the example above was acquired on Aug-03-2009 ('20090803'). Each subject's folder contains data like this:

ls /mridata/cbu/CBU090817_MR09029/20090803_083228

Series_001_CBU_Localiser/
Series_002_CBU_MPRAGE/
Series_003_CBU_DWEPI_BOLD210/
Series_004_CBU_DWEPI_BOLD210/
Series_005_CBU_DWEPI_BOLD210/
Series_006_CBU_DWEPI_BOLD210/
Series_007_CBU_DWEPI_BOLD210/
Series_008_CBU_DWEPI_BOLD210/
Series_009_CBU_DWEPI_BOLD210/
Series_010_CBU_DWEPI_BOLD210/
Series_011_CBU_DWEPI_BOLD210/
Series_012_CBU_FieldMapping/
Series_013_CBU_FieldMapping/

Each Series### folder contains DICOM files of the particular scan. The name of the folder is the same as what a radiographer named the scan in the MRI console. Usually, the name is very indicative of what type of scan it is. Ideally, you'd also know yourself what type of scans were acquired for your project. In the example above, we acquired a T1w anatomical/structural scan (MPRAGE), nine functional scans (BOLD), and two field maps. The 'Series_001_CBU_Localiser' scan is a positional scan for the MRI and can be ignored.

Each of these folders contains DICOM (.dcm) files, typically, one file per slice for structural scans or one file per volume for functional scans. These files contain a header with the metadata (e.g., acquisition parameters) and the actual image itself. DICOM is a standard format for any medical image, not just the brain. To work with the brain images, we need to convert the DICOM files to NIfTI format which is a cross-platform and cross-software standard for brain images.

Several conversion tools exist (see a full list here). We recommend using HeuDiConv.

DICOM to BIDS using HeuDiConv

HeuDiConv is available on our computing system as an Apptainer image:

/imaging/local/software/singularity_images/heudiconv/heudiconv_latest.sif

HeuDiConv converts DICOM (.dcm) files to NIfTI format (.nii or .nii.gz), generates their corresponding metadata files, renames the files and organises them in folders following BIDS specification.

The final result of DICOM Series being converted into BIDS for our example subject above is this:

├── anat
│   ├── sub-01_T1w.json
│   └── sub-01_T1w.nii.gz
├── fmap
│   ├── sub-01_acq-func_magnitude1.json
│   ├── sub-01_acq-func_magnitude1.nii.gz
│   ├── sub-01_acq-func_magnitude2.json
│   ├── sub-01_acq-func_magnitude2.nii.gz
│   ├── sub-01_acq-func_phasediff.json
│   └── sub-01_acq-func_phasediff.nii.gz
├── func
│   ├── sub-01_task-facerecognition_run-01_bold.json
│   ├── sub-01_task-facerecognition_run-01_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-01_events.tsv
│   ├── sub-01_task-facerecognition_run-02_bold.json
│   ├── sub-01_task-facerecognition_run-02_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-02_events.tsv
│   ├── sub-01_task-facerecognition_run-03_bold.json
│   ├── sub-01_task-facerecognition_run-03_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-03_events.tsv
│   ├── sub-01_task-facerecognition_run-04_bold.json
│   ├── sub-01_task-facerecognition_run-04_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-04_events.tsv
│   ├── sub-01_task-facerecognition_run-05_bold.json
│   ├── sub-01_task-facerecognition_run-05_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-05_events.tsv
│   ├── sub-01_task-facerecognition_run-06_bold.json
│   ├── sub-01_task-facerecognition_run-06_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-06_events.tsv
│   ├── sub-01_task-facerecognition_run-07_bold.json
│   ├── sub-01_task-facerecognition_run-07_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-07_events.tsv
│   ├── sub-01_task-facerecognition_run-08_bold.json
│   ├── sub-01_task-facerecognition_run-08_bold.nii.gz
│   ├── sub-01_task-facerecognition_run-08_events.tsv
│   ├── sub-01_task-facerecognition_run-09_bold.json
│   ├── sub-01_task-facerecognition_run-09_bold.nii.gz
│   └── sub-01_task-facerecognition_run-09_events.tsv
└── sub-01_scans.tsv

HeuDiConv needs information on how to translate your specific DICOMs into BIDS. This information is provided in a heuristic file that the user creates. At the moment, at the CBU we don't use a standardised system for naming our raw scans in the MRI console. Therefore we don't have a standard heuristic (rules) that we could feed to HeuDiConv. You need to create this heuristic file yourself for your specific project. You can use existing examples as a guideline.

To create the heuristic file, you need to know what scans you have, which ones you want to convert (you don't have to convert all scans, only the ones you need for your project), and how to uniquely identify each scan (based on scan name or metadata).

As such, converting DICOM data to BIDS using HeuDiConv involves 3 main steps:

  1. Discovering what DICOM series (scans) there are in your data
  2. Creating a heuristic file specifying how to translate the DICOMs into BIDS
  3. Converting the data

Step 1: Discovering your scans

Step 2: Creating heuristics file

...

Step 3: Converting the data

...

[da05@login-j05 MRI]$ squeue -u da05
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
         3246338_0      Main heudicon     da05  R       0:06      1 node-k08
         3246338_1      Main heudicon     da05  R       0:06      1 node-k08
         3246338_2      Main heudicon     da05  R       0:06      1 node-k08
         3246338_3      Main heudicon     da05  R       0:06      1 node-k08

More examples

...

Functional scans with `sbref`

...

ls /mridata/cbu/CBU210700_MR21002/20211208_143530

Series001_64_Channel_Localizer/
Series002_CBU_MPRAGE_64chn/
Series003_bold_mbep2d_3mm_MB2_AP_2_SBRef/
Series004_bold_mbep2d_3mm_MB2_AP_2/
Series005_bold_mbep2d_3mm_MB2_AP_2_SBRef/
Series006_bold_mbep2d_3mm_MB2_AP_2/
Series007_bold_mbep2d_3mm_MB2_AP_2_SBRef/
Series008_bold_mbep2d_3mm_MB2_AP_2/
Series009_bold_mbep2d_3mm_MB2_AP_2_SBRef/
Series010_bold_mbep2d_3mm_MB2_AP_2/
Series011_bold_mbep2d_3mm_MB2_PA_2_SBRef/
Series012_bold_mbep2d_3mm_MB2_PA_2/
Series013_fieldmap_gre_3mm_mb/
Series014_fieldmap_gre_3mm_mb/

In this example, researchers acquired a T1w anatomical/structural scan (MPRAGE), five multi-band functional scans with single-band reference scans for each of them, two field maps, and ...

Multiple sessions per subject

...

Code examples

code_examples on GitHub