I have a question regarding the selection of output spatial resolution when using fMRIPrep and XCP-D for resting-state BOLD fMRI analysis.
Specifically, when generating CIFTI output with the --cifti-output option in fMRIPrep (or XCP-D), the lowest available density is 91k, which corresponds to a 2-mm resolution on the surface and in the subcortical volume.
My concern is that many resting-state BOLD datasets are still acquired at 3-4 mm isotropic resolution. If I output these data to a 91k CIFTI space (2 mm), it seems that upsampling would artificially create a finer grid without actually adding any new information. In other words, regions that were not truly resolved at the native acquisition resolution might appear to be “resolved” simply due to interpolation during resampling.
Would this be a problem? Could this upsampling introduce misleading spatial specificity, especially for subcortical structures or small cortical regions? Is there a way to generate CIFTI outputs at lower densities (e.g., corresponding to the native acquisition resolution, such as 4 mm), or is it generally considered acceptable to output to 91k regardless of the original resolution?
I would greatly appreciate any insights or recommendations.
You are correct in that the surface mesh is effectively a higher resolution than your data. I don’t think I would frame it as “introducing misleading spatial sensitivity” though. You are simply regridding the original data. Upsampling doesn’t add new information, and of course if/when your results are written up you would be transparent about the limitations of the spatial resolution of the raw data. This is a common enough approach in fMRI that I wouldn’t be concerned about using the 91k surface mesh.
What I was primarily concerned about is the scenario where we apply a high-resolution parcellation atlas to data that has been upsampled to 91k CIFTI space. For example, XCP-D includes 4S parcellation atlases that contain relatively small subcortical structures. If the original BOLD data were acquired at 3-4 mm resolution, I wonder whether the resulting time series extracted from those tiny subcortical ROIs would be reliable, given that they are effectively “filled in” by interpolation during the upsampling step.
Would you recommend using a lower-resolution atlas (e.g., with larger ROIs) in such cases, or is it still acceptable to use the 4S atlases?
It’s important to note this question of atlas choice is a different question than the regridding you asked about earlier. It is true that the worse your raw data resolution are, the less reliable parcel summaries get as that atlas gets more spatially precise. That being said, you may still have multiple raw-resolution voxels in your smallest parcels, which could be enough for something sufficiently reliable.
Sensible approaches may depend on your analysis goals and questions. You could imagine an approach where you use 4S but disregard parcels that are covered by fewer than X voxels. You could explicitly quantify the SNR in potentially problematic areas to see if they are good enough for you. You could imagine combining related parcels if they are too small (e.g. if there are multiple thalamic nuclei you combine into one singular thalamus parcel). Or you could indeed move to a less granular atlas.
I completely agree that the parcellation question and the regridding question are conceptually different. However, I wonder if they might still be somewhat related in practice. My main concern is more about the user side: when low-resolution data are upsampled to a high-resolution grid and then combined with a fine-grained atlas, I worry that some end-users, especially those who may not be fully aware of the underlying interpolation, might inadvertently treat the resulting data as if it reflects truly high-resolution data, without realizing that the apparent spatial detail is largely a product of upsampling. This seems like it could be a bit misleading, particularly for less experienced users.
I also wonder whether it might be worth considering some empirical evaluations to compare results from genuinely high-resolution data versus upsampled low-resolution data, just to get a better sense of how much of a practical difference this actually makes. But I fully acknowledge that this might not be a priority, and I don’t have a strong view on this.
In addition, would it be useful to have a lower-density CIFTI output option in fMRIPrep and XCP-D? For datasets acquired at coarser resolutions, it seems like this could save disk space without losing meaningful information. But again, I’m not familiar with the implementation trade-offs, so this might not be as straightforward as I imagine.
I’d be very interested to hear your perspective.
A sensible concern, and again the bigger concern in my eyes is using the fine grained atlas (as opposed to the surface regridding). But, I don’t think it should be the software’s job to dictate what users can/can’t do with their data. At most, maybe an interpolation warning would be appropriate, but I don’t think it would be appropriate to disallow users from doing this. Hopefully if someone is at the point of publishing outputs, they would be aware of the potential pitfalls of their approaches.
Would be interesting, unfortunately this also isn’t a strong priority for us at this time (but would be interested in seeing if anyone has done something like this before).
I don’t think so. CIFTIs are actually pretty tiny files relative to niftis, even considering the higher effective spatial resolution of CIFTIs. 32k vertices per hemisphere (the default CIFTI) is still fewer datapoints than many volumetrtic niftis, even those at coarse resolution. And the default CIFTI atlas is just so ubiquitous that it makes cross-software compatibility easier. So I don’t think it would be worthwhile to add a lower-resolution CIFTI surface.
Thank you again for taking the time to discuss this with me, and I really appreciate it.
I find the idea of an empirical comparison potentially useful, and I’m starting to think it might be worth actually trying it out. Would you happen to have any thoughts on what might be a sensible starting point, or which aspects would be most meaningful to compare? I realize this is not something you’ve likely thought about in depth, but any brief intuitions you might have would be very helpful. Of course, I’ll also do a proper literature search to see if anyone has already looked into this, so I’m not reinventing the wheel unnecessarily. But if anything comes to mind off the top of your head, I’d be very curious to hear it.
Haven’t put much thought into it, but I imagine that synthesizing data in a way that you expect some predetermined pattern of activation/connectivity would be a good starting point. Then downsampling and seeing how the pattern holds up after interpolation/resampling.