Structural and Functional atlas of the same dimension

Hi there,
I am looking for a structural and functional atlas that have the same dimension. I have previously been using the Craddock 2012 functional atlas with 249 ROI’s, but now I am trying to use extra information from DTI.

Any suggestions would be appreciated.


If images are in the same space, you can resample with a number of tools. See, e.g., Extracting time-series using parcellation file not the same size as fmriprep functional scan for an ANTs invocation.

Brilliant thank you for the heads up!

Hi Chris,
Just to double check, I can use the ANTs to resample my functional image into my structural images space i.e Take my functional image which I have used the Craddock atlas to extract 249x164 signals from and transform it into FreeSurfers Destrieux Atlas, resulting in a 58x164 set of functional signals.

Am I correct in thinking this is the process that will take place if I perform the following command?

antsApplyTransforms -n genericLabel \
    -t <fmriprep>/sub-<label>/anat/sub-<label>_from-MNI152NLin2009cAsym_to-T1w_mode-image_xfm.h5 \
    -i scorr05_mean_all.nii.gz \
    -r <fmriprep>/sub-<label>/func/sub-<label>_task-<label>_space-T1w_desc-preproc_bold.nii.gz \
    -o aparc.a2009saseg.nii.gz

Many Thanks,

If you’ve sampled to one signal per ROI, you’re no longer in a volume space, and resampling doesn’t really have any meaning.

Could you describe your analytical goal? That might make it easier to determine what the best path forward would be.

Hi Chris,
Thanks for getting back to me so quick.
I am trying to construct a graphical representation of 3 modalities of data, namely T1w MRI, fMRI and dMRI.

The graph nodes will be the regions defined structurally in FreeSurfer (i.e DKT atlas or Destrieux), and then each node will have some features, namely the strength of correlation between that node and all other nodes in the graph from the fMRI and the tractography values from the dMRI.

In order to do this, I need to have the fMRI signals and tractography values corresponding to those nodes.

If you have any ideas how to get my fMRI signals so that correspond to the structural ROI’s, that would be great.

Many Thanks,

Sorry for the delay.

I think I understand. You have diffusion and functional data. You will use a single atlas as seeds to construct a diffusion-based connectome, as well as get a mean time series of all of the voxels falling within that region.

I will assume for the moment that you have:

  • Preprocessed strutural image (desc-preproc_T1w.nii.gz)
  • Preprocessed functional image (desc-preproc_bold.nii.gz)
  • Preprocessed diffusion image (desc-preproc_dwi.nii.gz)
  • Atlas in MNI (tpl-MNI_dseg.nii.gz)
  • Transformation from structural to MNI (from-T1w_to-MNI_xfm.h5; inverse from-MNI_to-T1w_xfm.h5)
  • Transformation from functional to structural (from-bold_to-T1w_xfm.txt)
  • Transformation from diffusion to structural (from-dwi_to-T1w_xfm.txt)

Other atlases besides MNI may be used, and some of the images may already be aligned, in which case the transformation might be identity. In this case, you only need to modify the field of view and voxel size. But the general case is you have four images, and some chain of transformations that tell you how to get between their spaces; in this case let’s assume each image can be aligned to the structural image with only one transform.

To get a functional time series for the MNI atlas, I would recommend sampling the atlas to the functional image:

antsApplyTransforms -n genericLabel \
    -t [ from-bold_to-T1w_xfm.txt, 1 ] -t from-MNI_to-T1w_xfm.h5 \
    -i tpl-MNI_dseg.nii.gz -r desc-preproc_bold.nii.gz \
    -o tpl-MNI_space-bold_dseg.nii.gz

This could be done in reverse, resampling the BOLD series to the atlas space:

antsApplyTransforms -n LanczosWindowedSinc \
    -t from-T1w_to-MNI_xfm.h5 -t from-bold_to-T1w_xfm.txt \
    -r tpl-MNI_dseg.nii.gz -i desc-preproc_bold.nii.gz \
    -o space-MNI_desc-preproc_bold.nii.gz

In either event, you now have a BOLD series and an ROI file in the same space. You can then use a tool such as NiftiLabelsMasker to extract the time series.

You would do something analogous in dMRI. If you’re going to use an atlas as ROIs to construct nodes in a connectivity matrix, you will either need to resample the atlas into the DWI image space, or vice versa.


  1. If you’re using fMRIPrep, BOLD series are resampled into T1w space by default, so you can drop consideration of the BOLD-T1w transform (it’s just the identity).
  2. Similarly, FreeSurfer ROIs are resampled into the T1w space and matched to BOLD dimensions. In this case, you have no need to resample; just use the labels to extract the time series.


  1. If you don’t have all of the things I listed, you may need to calculate some. If you need to find a transformation from a structural image to FreeSurfer’s T1.mgz, you can use mri_robust_register.

Hope this helps…


Thank you so much this is a brilliant write up. Just what I need.