What is the general procedure to extract ROI data from subjects in MNI space but varying native resolutions & shapes?

Let’s say I have the following:

  • a cortical volumetric atlas in a given standard space (i.e. MNI Lin6 Asym)
  • a subject with multiple BOLD sessions, some of which may have different shapes & affines because they have their native resolution, but are all in another standard space (i.e. MNI 2009c Asym). For example, a baseline BOLD session has shape (47, 59, 51, 140) and resolutions (3.312, 3.313, 3.3, 2.2) while its followup session has shape (53, 65, 48, 200) and resolutions (3.0, 3.0, 3.5, 2.5).

QUESTION 1: What are the correct steps to take to align the atlas’s ROIs with each session?

To my understanding, the following would be necessary:

  1. Acquire the affine (.mat or .txt; may not exist) & non-linear (.h5) transformation files and convert the atlas from its space to the one the subjects are in (i.e. MNILin6Asym → MNI2009cAsym). Use a program like antsApplyTransforms for this.
  2. Resample each session to the shape of the space template they are in (i.e. MNI2009cAsym which is (97, 115, 97)) using something like Nibabel

So now the atlas in question and the BOLD data are in the same space and have the same shape, right?

Hi @Maurice_Pasternak,

You should register your atlas from MNI Lin6 to 2009c using nearest neighbor interpolation (or genericLabel if using ANTs). Templateflow already has this tranformation saved in GitHub - templateflow/tpl-MNI152NLin2009cAsym at e797e29df0fbfc87991c93a03369035897e2b513 and GitHub - templateflow/tpl-MNI152NLin6Asym at a68885d55e5669fd86b8c749ec97550d8fb5949d

Then, many softwares, including Nilearn which has very active support here, will account for different resolutions between the atlas and image you are masking internally, so nothing to worry about there, as long as they are in the correct MNI space.

Best,
Steven

Okay, thanks for confirming!

A related question: for the purposes of running ICA-AROMA or FIX, is it questionable to run those Templateflow transformations on the BOLD data (it is in MNI2009cAsym space, native res) and bring them into MNILin6Asym:res-2 space for that post-processing work? I ask because it would be costly timewise to re-run fMRIPrep to include that output space and I was considering this measure as an alternative.

Hi @Maurice_Pasternak

It is better to rerun fmriprep with that space listed as an --output-space to avoid an extra interpolation step. In either case make sure you check out GitHub - nipreps/fmripost-aroma: Run ICA-AROMA on fMRIPrep derivatives.

Best,
Steven