An MRI scan often produces many .nii
(NIfTI) files because of the complexity and richness of MRI data. To follow this post, one can download the BraTS dataset on Kaggle. Here’s a breakdown of why this happens:
🧠 1. Multiple Imaging Sequences / Contrasts
MRI scans are typically acquired using different sequences, each capturing different tissue properties:
T1-weighted
(anatomical detail)T2-weighted
(fluid-sensitive)FLAIR
(suppresses CSF to highlight lesions)DWI
(diffusion-weighted)fMRI
(functional time-series)SWI
,MPRAGE
, etc.
Each of these becomes a separate .nii
file.
🧬 2. Multi-volume or Time-series Data
Some MRI types (like fMRI or DWI) capture many volumes over time or across directions:
- A single fMRI scan might produce a 4D
.nii
file: 3 spatial + 1 time dimension. - DWI can include many directions (e.g. 64 or 128) → saved as a 4D
.nii
.
Sometimes these are split into individual 3D .nii
files for each volume.
🧰 3. Post-processing Outputs
Analysis tools generate many derivative .nii
files:
- Brain extraction → brain-only mask:
brain_mask.nii.gz
- Segmentation → gray matter, white matter, CSF maps
- Registration/alignment → resliced or transformed versions
- Functional analyses → statistical maps, activation masks, etc.
🏗 4. Multiple Slices / Series Saved Separately
Some systems or conversion tools (e.g. dcm2niix
) may save:
- Each slice or series as a separate
.nii
file. - You might get one
.nii
per anatomical region, run, or repetition.
🛠 5. Conversion from DICOM to NIfTI
DICOM → NIfTI conversion tools (like dcm2niix
) often split by:
- Series
- Echo time / phase
- Coil
- Scan repetition
Result: dozens of .nii
files for one study.
📁 Example: fMRI Scan Session Might Generate
T1.nii.gz
T2.nii.gz
fMRI_run1.nii.gz
fMRI_run2.nii.gz
brain_mask.nii.gz
gm_segmentation.nii.gz
motion_params.txt
🧩 *_seg.nii
— Segmentation File
seg
stands for segmentation.- This file contains labeled regions of the brain (or other structures).
- Common in structural MRI processing, like:
- Tissue segmentation (gray matter, white matter, CSF)
- Lesion segmentation
- Tumor regions (in brain tumor studies)
- Voxel values are usually integers representing different classes:
0 = background 1 = gray matter 2 = white matter 3 = CSF ...
🔧 Used in tools like:
- SPM, FSL’s FAST, FreeSurfer
- BraTS datasets:
seg.nii.gz
for brain tumor masks
💉 *_ce.nii
— Contrast-Enhanced Image
ce
usually stands for contrast-enhanced.- This is typically a T1-weighted image acquired after injection of contrast agent (e.g., Gadolinium).
- Helps highlight:
- Tumors
- Blood-brain barrier breakdown
- Vascular structures
- Used heavily in oncology, neuroinflammation, and angiography.
🧠 Example:
T1ce.nii.gz
= T1-weighted contrast-enhanced scan (commonly used in BraTS and glioma datasets).
📂 Example File Set (Brain Tumor Imaging)
T1.nii.gz # T1-weighted scan
T1ce.nii.gz # T1 with contrast enhancement
T2.nii.gz # T2-weighted scan
FLAIR.nii.gz # FLAIR scan
seg.nii.gz # Tumor segmentation mask
Suffix | Meaning | Purpose |
---|---|---|
_seg | Segmentation | Labeled brain regions or pathology |
_ce | Contrast-Enhanced | T1 MRI taken after contrast agent |
✅ Summary
You get many .nii
files from an MRI session because each file represents:
- A different imaging modality, volume, or processing step,
- Or is a result of data conversion practices.
How to view MRI scan outputs with FSL
To install FSL for viewing MRI scan outputs, go to
https://fsl.fmrib.ox.ac.uk/fsl/docs/#/install/index
and follow the instructions.
✅ Step-by-Step: View .nii
File with FSLeyes
- Open Terminal (Linux/macOS) or FSL Shell (Windows via WSL or FSL virtual machine).
- Run FSLeyes with your NIfTI file:
fsleyes your_file.nii.gz
If your file is not compressed:fsleyes your_file.nii
fsleyes
One can also load multiple overlays, e.g. an anatomical underlay and a mask: fsleyes anatomical.nii.gz mask.nii.gz
💡 Tips
- If
fsleyes
doesn’t open, check that FSL is installed and properly sourced:source $FSLDIR/etc/fslconf/fsl.sh
- If you’re using a remote machine (e.g. SSH), you may need X11 forwarding enabled:
ssh -X user@remote
- If using VSCode, and conda is automatically initialized when the terminal starts, use
conda deactivate
before opening the file(s) with FSL.
More:
Some interesting videos can be found in this youtube playlist.
Discover more from Science Comics
Subscribe to get the latest posts sent to your email.