Table of Contents
spm5_preprojobs
Motivation
As said on the page describing the UI-based configuration of SPM5/SPM8 preprocessing in NeuroElf, this function is mostly meant to ensure that all subjects are preprocessed using the same parameters (and that all steps are performed in their entirety and same order).
Requirements
See the page on the GUI.
Function reference ('help spm5_preprojobs')
spm5_preprojobs - create jobs and jobhelps from options FORMAT: [jobs, jobhelps, ff] = spm5_preprojobs(sf, fp, ap, opts) FORMAT: spm5_preprojobs; Input fields: sf subject (base) folder fp functional folder pattern (e.g. f*/r*) ap anatomical folder pattern (e.g. a*/*) opts 1x1 struct with options .afp anatomical file pattern (default: '*.img' / '*.nii'); .ffp anatomical file pattern (default: '*.img' / '*.nii'); .fsingle force images to single precision (default: true) .fun2str boolean flag, coregister func2struct (default: true) .jobfile save output into a mat file (full or partial filename) .jobrun flag, run jobs? .normsess normalize sessions separately (only epi, default: false) .normtype normalization type, one of 'anat', 'epi', {'segment'} .reganat register anatomical scan to T1 template (default: true) .reslice re-slice images are realignment (default: true) .rinterpe realignment estimation spline degree (default: 2) .rinterpr realignment reslicing spline degree (default: 4) .rqual realignment quality (accuracy trade-off default: 0.9) .rrtm realignment register-to-mean flag (default: true) .rsep realignment sampling grid resolution (default: 3mm) .skip skip N volumes at beginning of each run (default: 0) .smk smoothing kernel (either 1x1 or 1x3 double, default: 6) .spmv which SPM version (if empty, auto detect) .st flag, perform slice time correction (default: true) .sto slice acquisition order, either of 'a', 'aie', {'aio'}, 'd', 'die', 'dio' or numeric list .str reference slice (default: 1) .stta TA (default: auto) .sttr TR (default: 2 sec) .wbb normalize writing bounding box (default: [-78, -114, -54; 78, 78, 84]) .winterp normalize writing interpolation spline (default: 1) .wvox normalize writing voxel size (default: [3, 3, 3]) Output fields: jobs cell array with jobs suitable for spm_jobman jobhelps cell array with helps (required when saved as jobs.mat) ff cell array with functional files (after preprocessing) Note: without inputs, the UI-based mode will be used.
Arguments and options
sf
This must be a single folder name (the UI loops over all folders matching a pattern!) containing separate folders for the anatomical and each functional scan (run).
fp
A foldername pattern, relative to the sf
argument, specifying the location of the folders (plural!) of the functional runs.
ap
A foldername (or pattern), relative to the sf
argument, specifying the location of the folder containing the anatomical scan.
opts
Optional settings in a 1×1 struct
:
.afp
Filename pattern for the anatomical scan (image), defaults to {'*.img', '*.nii'}
.
.ffp
Filename pattern for the functional files, defaults to {'*.img', '*.nii'}
.
.fsingle
Boolean flag, if set to true
forces the data to single precision float (which mostly eliminates the problem of rounding errors for each preprocessing step).
.fun2str
Boolean flag, if set to true
coregisters the functional to the anatomical data, otherwise vice versa.
.jobfile
If given and set to a valid 'filename.mat
' string, save the resulting jobfile to disk.
.jobrun
Boolean flag, if set to true
execute resulting jobs (using spm_jobman('run', jobs);
).
.normsess
Boolean flag, if set to true
normalizes each functional run (session) separately (only effective if .normtype
is set to 'epi
').
.normtype
Choice of normalization algorithm. One of
'anat
' - usespm_normalize
on the anatomical data (using the T1.nii template image) to determine the non-linear warping parameters from the individual subject space to MNI space'epi
' - usespm_normalize
on the functional data (using the EPI.nii template image) to determine the non-linear warping parameters from the individual subject space to MNI space (potentially allowing to normalize each run/session separately, see.normsess
flag).'segment
' - use SPM's Unified Segmentation approach on the anatomical data (several prior images from the ICBM atlas are used) to determine the non-linear warping parameters from the individual subject space to MNI (ICBM-MNI) space
Please note that the final location of activation peaks (across subjects) will differ based on your choice of normalization algorithm!
.reganat
Boolean flag, if set to true
begin processing by coregistration of the anatomical dataset to the T1 template image (in some cases improving the outcome of the segmentation algorithm substantially).
.reslice
Boolean flag, if set to true
reslice the data after motion correction (mostly useful if you also wish to look at subject-only results prior to further processing steps, such as smoothing). If the .fsingle
flag is set to false, it is advisable to also set this flag to false to reduce the amount of rounding error in the preprocessed images!
.rinterpe
Sets the interpolation degree of SPM's sampling function for the estimation component of the realignment step.
.rinterpr
Sets the interpolation degree of SPM's sampling function for the reslicing component of the realignment step (only in effect if .reslice
is set to true).
.rqual
Sets the realignment quality value, which is a trade-off value between quality (1) and speed (smaller than 1), setting the ratio of voxels to be maximally included in the estimation of motion (see SPM's manual for further instructions).
.rrtm
Boolean flag, if set to true
perform “realignment-to-mean” (two-pass realignment, whereas the first pass generates a mean image after preliminary motion correction and the second pass then determines motion as rotation and translation relative to this mean image). Usually improves the quality of motion correction at the cost of increased processing time.
.rsep
Sets the realignment (motion estimation) sampling grid resolution (see SPM's manual for further instructions). Generally, the higher the number, the faster (and less precise) the process becomes.
.skip
Number of volumes to skip (from raw data); this can be used to “discard” of the volumes in the data that suffer from incomplete T2* contrast saturation.
.smk
Smoothing kernel in mm. If set to 0, smoothing step is removed from processing stream.
.st
Boolean flag, if set to true
perform slice-timing correction.
.sto
Sets the order of slices for the slice-timing correction step of N
slices, can be either of
'a
' - ascending (equates to1:N
)'aie
' - ascending, interleaved acquisition, even-numbered slices first (equates to[2:2:N, 1:2:N]
)'aio
' - ascending, interleaved acquisition, odd-numbered slices first (equates to[1:2:N, 2:2:N]
)'d
' - descending (equates toN:-1:1
)'die
' - descending, interleaved acquisition, even-numbered slices first (depending on whetherN
is even or odd equates to[N:-2:1, (N-1):-2:1]
or[(N-1):-2:1, N:-2:1]
)'dio
' - descending, interleaved acquisition, odd-numbered slices first (depending on whetherN
is even or odd equates to[(N-1):-2:1, N:-2:1]
or[N:-2:1, (N-1):-2:1]
)- a numeric list of all integer numbers in the range (and including) 1 through N, each number occurring exactly once
.str
Sets the reference slice number for the slice-timing correction step.
.stta
Sets the TA (time-of-acquisition in seconds) for one volume of data for the slice-timing correction step.
.sttr
Sets the TR (repetition time in seconds) for the slice-timing correction step.
.wbb
Sets the bounding box for the call to the spm_write_sn
function. See the SPM manual for further instructions.
.winterp
Sets the interpolation degree of SPM's sampling function for the spm_write_sn
call.
.wvox
Sets the voxel size for the spm_write_sn
call.
Usage notes
If called without arguments, a UI window opens, that allows to configure these values interactively. If multiple subjects are found and configured, this function (spm5_preprojobs) is called for each of those subjects in turn.