Registration in this context is the process of computing a 6 DOF linear (affine) transformation matrix to map between the individual's functional data and his/her FreeSurfer structural/anatomical data (namely, the orig.mgz volume in the FreeSurfer mri directory).
FS-FAST will then get the name of the subject from "subjectname" file and automatically know where to find the anatomicals. This registration is used both for mapping to the standard volume space (talairach) and the standard surface space (fsaverage). When mapping to talairach space, the mri/transforms/talairach.xfm is used. Note that the raw functional data is not mapped. Rather, the GLM analysis is done in native space, and the regression coefficients are mapped to the higher level.
By default, FS-FAST will use the first-volume of the first run as the functional template for registration. It is important that this template be the same one used for motion correction (which will be done by default).
There are 3 options for automatically registering to the structural:
Regardless of which method you use, you should manually inspect/tune the registration with tkregister-sess.
With these methods, a registration file will be created in bold/register.dat. This is a simple text file with the name of the subject, some parameters, and the registration matrix.
spmregister-sess uses the registration program in SPM (http://www.fil.ion.ucl.ac.uk/spm). It registers directly from the functional to the anatomical (so you do not need to collect an anatomical during your functional session if you don't want to). It registers the FreeSurfer anat to a T1 template and then registers the func to a T2* template, then concatenates the registrations. This has the advantage of not requiring a same-session anatomical, which is nice. spmregister-sess also uses matlab "under-the-hood", but that's only important if you don't have matlab (otherwise use fslregister-sess which does not required matlab). We have found spmregister-sess method to be quite reliable and robust, and it is the preferred method.
autoreg-sess performs a multi-step registration. First it looks for a same-session anatomical which is then registered with the brain.mgz, it then uses information about the slice prescriptions between the same-session anat and the functional to compute a registration between them. It then concatenates these two to give the registration between brain.mgz and the functional. The problem with this is that the subject can move or the scanner can drift making this registration innacurate. This method uses MINC www.bic.mni.mcgill.ca/software/minc) to perform the registration.
Finally, you should *always* check the registration with "tkregister-sess -s sessid ...". This will bring up a control panel and a window with a brain image. The brain image window should also have a green outline of the cortical surface. When you hit the "Compare" button, the display will toggle between the FreeSurfer anatomical and the functional. The cortical surface will always be there and can be used to judge how good the registration is. There are three buttons that can be used to change the view (Horizontal, Coronal, Sagittal). Manual registration can be a difficult task. When judging the quality of the registration, use cortical landmarks (try to avoid using the outline of the brain or the ventricles except for gross registration). Use areas away from B0 distortion (e.g., inter-parietal, calcarine, central, lateral sylvian). See tkregister2 --help for more info. You can also see the FreeSurfer tutorial on checking/editing the talairach registration as it uses the same tool (FsTutorial).