I’m having a similar issue where I’ve preprocessed my data in fmriprep using the MNI152NLin2009cAsym template, and an now performing an ROI analysis, using the Harvard-Oxford atlas from FSL (which is mapped to FSL’s MNI152 template).
With that being said, I have a few quick questions:
1). Can fmriprep (1.3.0 or higher) accept a different template, such as the MNI152NLin6Sym?
2). If not, is there a way to align the Harvard-Oxford atlas ROIs to the fmriprep output? When I’ve taken the output to FSL, I’ve followed this strategy for avoiding FSL’s registration step, since it’s already been performed in fmriprep. Thinking over my issue, my thought has been to allow FSL’s registration to the MNI152 template, but this seems like an unnecessary interpolation step.
As you will see in this conversation, that one looks very similar to FSL’s MNI152 but it is not quite the same thing.
We would like to include that template into TemplateFlow ASAP. We would be extremely happy to accept help in the task (that is the bottleneck at this point in time).
We’ve been taking steps towards making this possible, but it is not yet there. Creating TemplateFlow (a way to dynamically pull from a pool of templates that can be selected under a controlled vocabulary of identifiers) we solved a big portion of the problem. However, the latest releases (1.3.0 and higher) have mostly addressed issues derived from TemplateFlow’s integration. It seems that 1.3.2 is giving positive signals as to whether TemplateFlow’s integration has reached acceptable reliability and now we can move on and make use of TemplateFlow’s features.
In sum, the answer to this question is not yet.
If you could allow some time for us to provide with a good solution to this (i.e. generating the Harvard-Oxford segmentation on fMRIPrep’s MNI flavor) I could commit to having this included within TemplateFlow in one week.
If you can’t wait that long, then it depends on the inaccuracy in registration you’d be willing to accept. If you don’t need submm accuracy, then just resampling the HO atlas with an identity interface would work. Otherwise, you’ll need a solution where you run some registration protocol between MNI152NLin2009c and FSL152NLin2006Asym (which is what I’ll run to provide the first solution to this question).
Finally, the best solution is to wait for fMRIPrep to leverage TemplateFlow and allow you to set FSL152NLin2006Asym as target template. That will probably take the longest time.
Not yet. Adding the Harvard-Oxford atlas in MNI152NLin2009cAsym would be the final straw of ongoing work. For now, I’ll try to get it uploaded in its original MNI152NLin6Asym space ASAP. This way, at least you should be able to use it via the --template MNI152NLin6Asym flag.
How do I specify the transformation? E.g., in the function above, I’m assuming that source_img would be something like HarvardOxford-cort-maxprob-thr0-1mm.nii, but what would be the “identity interface”? Do you mean to specify a brain mask in 2009c space as the target here?
Sorry for the slow response. We have finally managed to map the Harvard-Oxford parcellation into MNI152NLin2009cAsym. We’ve made them available via TemplateFlow:
>>> from templateflow.api import get
>>> [f.name for f in get('MNI152NLin2009cAsym', resolution=2, atlas="HO.*")]
The atlas namings correspond to the original FSL’s acronyms for them (HOCPA=Harvard-Oxford Cortical Probabilistic Atlas; HOCPAL=Harvard-Oxford Cortical Probabilistic Atlas Lateralized; HOSPA=Harvard-Oxford Subcortical Probabilistic Atlas)
There are two more bonuses: 1) an ITK transform to map information from MNI152NLin6Asym space onto MNI152NLin2009cAsym; 2) The Schaefer2018 atlas.
Hey Oscar, I’m using that code verbatim, and I end up with an empty list. Initially I tried to retrieve the Schaefer atlas in 2009cAsym space, but that didn’t work. So I copy+pasted your code and that didn’t seem to work either.
That didn’t seem to work either, but I found a solution. In case others encounter this issue: I’m working in a virtual environment, so I closed my code editor (Atom using the Hydrogen plugin) and my virtualenv and rebooted them both. Now it works fine!