Registration using ANTs and resampling

969 views
Skip to first unread message

Cris Lanting

unread,
Apr 4, 2014, 5:09:03 AM4/4/14
to nipy...@googlegroups.com
Hi All,

I'm using Nipype to preprocess resting-state data (realignment, artifact rejection, tCompCorr etc) and I want to add (ANTs-based) registration steps to existing pipelines. 
I've been able to generate a group-specific template using ANTs but was wondering whether there is also an option to make it comparable to e.g. MNI templates. In other words, take e.g., the MNI152 1mm template as an initial reference.

Further, since I want to run a group ICA later, I want to get all data in this template space but resampled to e.g. 3 mm^3. I have the registration parameters to get from [mean] EPI-space to T1 space and the parameters from T1 to template but both separately. The two main questions are:
- how to combine these two registrations in a nipype-kind-of-way (similar to fsl's convert_xfm)
- how to resample the data. If I do not resample, I end up with data in template space (1mm^3) and get a huge inflation of data that is going to make the group ICA    impossible (concatenation-based ICA using FSL's melodic).

In other words, is there a way to do this ANTS registration similarly to the SPM normalisation routines?
Ps. I'm aware of the example in http://www.mit.edu/~satra/nipype-nightly/users/examples/rsfmri_preprocessing.html where Freesurfer's bbregister is linked to ANTS using C3D but the template here is the 2mm Joint Fusion Atlas and I want to use the registration parameters to my own (1mm) template and one way or the other get the RS data in this frame of reference.

Cheers and thanks in advance
Cris

Satrajit Ghosh

unread,
Apr 4, 2014, 9:02:56 AM4/4/14
to nipy-user
hi chris,

i would recommend an additional affine transform from your template to a 3mm MNI space. then you can concatenate this transform as part of your ApplyTransform step.

you can simply replace the 2mm template in the rsfmri processing script with your template. also i will be updating that example with newer registration parameters that appear to be more robust.


cheers,

satra

--

---
You received this message because you are subscribed to the Google Groups "NiPy Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nipy-user+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Cris Lanting

unread,
Apr 10, 2014, 12:04:03 PM4/10/14
to nipy...@googlegroups.com
Hi Satra, Nipy users,

Is it necessary to have this additional affine transform? What I’ve done is transform the T1 to a 2mm template and then apply the registration parameters to the functional data using the 3mm templates as reference image  instead (which is the same space, but at a lower res). Or is it just necessary when transforming from my own template to -say- MNI template?

I’ve tried to come up with a workflow that uses ANTs for both the coregistration from the functional space to the subjects’ T1 and the normalisation from T1 to template. It seems to work although I’m not quite sure how to evaluate the quality of the registrations apart from looking at them - any hints? Is this workflow something you would use for getting data into template-space?
(Remember: I’d like to combine data from many subjects into a ICA analysis (melodic temp. concatenation) 

See attached png and gist : https://gist.github.com/Crisly/10395192




You received this message because you are subscribed to a topic in the Google Groups "NiPy Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/nipy-user/26u8oyLOqtA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to nipy-user+...@googlegroups.com.

Satrajit Ghosh

unread,
Apr 10, 2014, 2:14:16 PM4/10/14
to nipy-user
hi cris,

here is my understanding of the process:

T1 = A -> B (rigid)
T2 = B -> C (rigid, affine, syn)
T3 = C -> D (affine - only scaling component)

T4 = T3->T2->T1 (composition of all transforms
T5 = A -> D

A = mean functional
B = structural
C = template/grouptemplate/singletarget
D = 3mm template

the one reason of going through B is that T2 will have much higher quality because of the higher resolution. so i would avoid T5.

hope this helps clarify things.

cheers,

satra

Cris Lanting

unread,
Apr 10, 2014, 2:57:36 PM4/10/14
to nipy...@googlegroups.com
Satra,

Thanks, that's clear - I'll update the workflow later and will share it again for those of you interested.
Keep up the good work, integrating several packages and making data analysis (relatively) easy and manageable (reproducible). 

Cheers,
Cris


Reply all
Reply to author
Forward
0 new messages