initialization of the spherical registration sphere.rot.native.surf.gii

34 views
Skip to first unread message

Guillaume Auzias

unread,
Jan 13, 2026, 9:32:52 AM (23 hours ago) Jan 13
to HCP-Users
Hello everyone

I would like to understand more precisely how is computed the initial rotation that serves as an initialization to MSM in the HCP pipeline.
I have read in details the articles (and supp mat) introducing MSM and its application for building the Glasser atlas (refs below), but I would like to clarify how it is computed technically (which tool and which energy is optimized).
Could anyone help me finding the script in which this transformation (rotation) is computed?
I guess it is the script that creates the "sphere.rot.native.surf.gii" file, but I don't know how to find it.

Thanks in advance for your kind help!

 Matthew F. Glasser et al., “A Multi-Modal Parcellation of Human Cerebral Cortex,” Nature 536, no. 7615 (2016): 171–78, https://doi.org/10.1038/nature18933.  

 Emma S J Robinson et al., “Multimodal Surface Matching with Higher-Order Smoothness Constraints,” NeuroImage 167, no. September 2017 (2018): 453–65, https://doi.org/10.1016/j.neuroimage.2017.10.037.

Emma S J Robinson et al., “MSM: A New Flexible Framework for Multimodal Surface Matching.,” NeuroImage 100C (June 2014): 414–26, https://doi.org/10.1016/j.neuroimage.2014.05.069.  

Glasser, Matthew

unread,
Jan 13, 2026, 10:32:53 AM (22 hours ago) Jan 13
to hcp-...@humanconnectome.org

It is a rigid rotation computed from the FreeSurfer registration (i.e., without the nonlinear deformations from FreeSurfer).  We don’t change any of FreeSurfer’s default for this (so it is just the default output of recon-all).

 

Matt.

--
You received this message because you are subscribed to the Google Groups "HCP-Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hcp-users+...@humanconnectome.org.
To view this discussion visit https://groups.google.com/a/humanconnectome.org/d/msgid/hcp-users/62a4cea0-9586-436e-97a4-86ca89ab84c4n%40humanconnectome.org.

 


The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Guillaume Auzias

unread,
Jan 13, 2026, 10:52:00 AM (22 hours ago) Jan 13
to HCP-Users, glas...@wustl.edu
Thanks Matt for your super fast reply!

Then, could you please clarify the difference (if any) between *.sphere.native.surf.gii and *.sphere.rot.native.surf.gii?

Your help is much appreciated, thanks again!

Glasser, Matthew

unread,
Jan 13, 2026, 10:52:57 AM (22 hours ago) Jan 13
to Guillaume Auzias, HCP-Users

The are the same except rot has an affine rotation applied to it.

Guillaume Auzias

unread,
Jan 13, 2026, 11:33:24 AM (21 hours ago) Jan 13
to HCP-Users, glas...@wustl.edu, Guillaume Auzias
ok, 
then if I get it right, this rotation is the one computed by freesurfer as in the classical recon-all command, could you please confirm?

And by the way, could you please clarify what an "affine rotation" is?
Sorry if this is trivial, I am familiar with affine transformations in the 3D space and rotation on the sphere (that are rigid transfo in the 3D space), but not with "affine rotation".

Thanks again for these clarifications!

Tim Coalson

unread,
Jan 13, 2026, 3:33:07 PM (17 hours ago) Jan 13
to hcp-...@humanconnectome.org, glas...@wustl.edu, Guillaume Auzias
No, .rot. is not computed by freesurfer.  The sphere.native.surf.gii is a copy of the non-registered freesurfer native sphere.  For the sphere.rot, we take the freesurfer registered sphere, apply an atlas transform to get to fs_LR convention, and then regress its vertex coordinates against the original sphere.native vertex coordinates.  That regression gives us an affine transform, which we use as a "rotation" to create sphere.rot from the unregistered original sphere.

The purpose of this is just to get an approximate alignment before using MSM, without adding local distortions from freesurfer's registration.

Tim


Reply all
Reply to author
Forward
0 new messages