bbregister is a program to perform within-subject, cross-modal registration using a
boundary-based cost function. The registration is constrained to be 6
DOF (rigid). It is required that you have an anatomical scan of the
subject that has been analyzed in freesurfer. Those using bbregister should site: Greve, D. N., and Fischl, B. (2009). "Accurate and robust brain image alignment using boundary-basedregistration." Neuroimage, 48, 63-72. <
>
REQUIRED FLAGGED ARGUMENTS <
>
--s subject
FreeSurfer subject name as found in $SUBJECTS_DIR.
--mov volid
"Moveable" volume. This is the template for the cross-modal
volume. Eg, for fMRI, it is the volume used for motion
correction.
--reg register.{dat,lta}
Output FreeSurfer registration file (tkregister-style or LTA
format).
--vsm VoxelShiftMap
Include B0 distortion correction while performing
registration. A voxel shift map can be created from a B0 map
with the epidewarp.fsl script (in FreeSurfer)
Initialization Arguments<
>
--init-coreg (Default)
Initialize the FreeSurfer mri_coreg program.
--no-coreg-ref-mask
Do NOT use aparc+aseg.mgz as a reference mask. It will not
attempt to use aparc+aseg if it is not there.
--init-header
Assume that the geometry information in the cross-modal and
anatomical are sufficient to get a close voxel-to-voxel
registration. This usually is only the case if they were
acquired in the same session.
--init-reg initregfile
Supply an initial registration matrix; can be LTA.
Contrast Arguments (one required)
--t1
Assume t1 contrast, ie, White Matter brighter than Grey Matter
--t2
Assume t2 contrast, ie, Gray Matter brighter than White Matter
--bold
Same as --t2
--dti
Same as --t2
OPTIONAL FLAGGED ARGUMENTS <
>
--int intvol
Supply a volume to use an an intermediate volume when
performing registration. This is useful for when the
cross-modal is volume is a partial field-of-view (FoV). If you
acquire in the same session a whole-head FoV, then pass the
whole-head as the intermediate and the partial as the
moveable.
--mid-frame
reg to middle frame (not with --frame)
--frame frameno
reg to frameno (default 0=1st)
--template-out template
save template (good with --frame)
--o outvol
resample mov and save as outvol
--s-from-reg reg
get subject name from regfile
--rms rmsfile
RMS change in cortical surface position
--fslmat flirt.mtx
output an FSL FLIRT matrix
--lta output.lta
output an LTA registration matrix (This flag can be used along
with or instead of --reg!)
--lh-only
only use left hemi
--rh-only
only use right hemi
--slope1 slope1
cost slope for 1st stage (default is 0.5)
--slope2 slope2
cost slope for 2nd stage (default is 0.5)
--offset2 offset2
cost offset for 2nd stage (default is 0)
--tol1d tol1d
2nd stage 1D tolerance
--tol tol
2nd stage loop tolerance (same as --tolf)
--tolf tolf
2nd stage loop tolerance (same as --tol)
Be careful making these more stringent as they can cause underflows
and NaNs.<
>
--nmax nPowellMax
set max number of iterations (default 36)
--rand-init randmax
randomly change input to 1st stage reg
--gm-proj-frac frac
default is 0.5
--gm-proj-abs abs
use absolute instead of relative
--wm-proj-abs dist
2nd stage, default is 2mm
--proj-abs dist
use wm and gm proj abs in 2nd stage
--subsamp nsub
2nd stage vertex subsampling, default is 1
--nearest
2nd stage, use nearest neighbor interp (defalt is trilinear)
--epi-mask
mask out brain edge and B0 regions (1st and 2nd stages)
--no-cortex-label
Do not use ?h.cortex.label to mask.
--label labelfile
Use label to mask. Only vertices in the label are used.
--brute1max max
pass 1 search -max to +max (default 4)
--brute1delta delta
pass 1 search -max to +max step delta (default 4)
--subsamp1 nsubsamp
pass 1 vertex subsampling (default 1)
--no-pass1
turn off pass 1
--no-brute2
turn off brute force search on pass 2
--surf surfname
change surface to surfname from ?h.white
--surf-cost basename
saves final cost as basename.?h.mgh
--surf-con basename
saves final contrast as basename.?h.mgh
--init-surf-cost basename
saves initial cost as basename.?h.mgh
--init-reg-out outinitreg
save initial reg
--initcost initcostfile
save initial cost
--cost-fail costvalue
exit with error if the final cost exceeds costvalue
--12, --9, --6
Use 12 or 9 or 6 DOF (6 is default)
--coreg-dof coregDOF
Set dof to use for mri_coreg
--spm-nii
Use NIFTI format as input to SPM when using --init-spm
(spmregister). Ordinarily, it uses ANALYZE images to be
compatible with older versions of SPM, but this has caused
some left-right reversals in SPM8.
--feat featdir
FSL FEAT directory. Sets mov to featdir/example_func, uses
--init-fsl, --bold, sets reg to featdir/reg/freesurfer/
anat2exf.register.dat. This replaces reg-feat2anat.
--fsl-bet-mov
When using FSL, apply BET to mov volume (turned by default).
--init-rr
Initialize using NMI as implemented in mri_robust_register.
--init-fsl
Initialize using FSL FLIRT (requires that FSL be installed).
--init-spm
Initialize using SPM spm_coreg (requires that SPM and matlab
be installed).
--tmp tmpdir
temporary dir (implies --nocleanup)
--nocleanup
do not delete temporary files
--version
print version and exit
--help
print help and exit
EXAMPLE 1
Intialize with FLIRT, view result with tkregister2:
bbregister --s bert --mov func.nii --init-fsl --reg
register.dat
tkregister2 --mov func.nii --reg register.dat --surf
EXAMPLE 2
Intialize with SPM, view result with tkregister2:
bbregister --s bert --mov func.nii --init-spm --reg
register.dat
tkregister2 --mov func.nii --reg register.dat --surf
EXAMPLE 3
Register a partial FoV using whole FoV as intermdediate:
bbregister --s bert --mov partial.nii --init-fsl --int whole.nii --reg
register.partial.dat
tkregister2 --mov partial.nii --reg register.partial.dat --surf
REPORTING
Report bugs to