Note that this reference documentation is identical to the help that is displayed in Matlab when you type “help ft_sourceanalysis”.
FT_SOURCEANALYSIS performs beamformer dipole analysis on EEG or MEG data
after preprocessing and a timelocked or frequency analysis
Use as either
[source] = ft_sourceanalysis(cfg, freq)
[source] = ft_sourceanalysis(cfg, timelock)
where the data in freq or timelock should be organised in a structure
as obtained from the FT_FREQANALYSIS or FT_TIMELOCKANALYSIS function. The
configuration "cfg" is a structure containing information about
source positions and other options.
The different source reconstruction algorithms that are implemented
are
cfg.method = 'lcmv' linear constrained minimum variance beamformer
'sam' synthetic aperture magnetometry
'dics' dynamic imaging of coherent sources
'pcc' partial cannonical correlation/coherence
'mne' minimum norm estimation
'loreta' minimum norm estimation with smoothness constraint
'rv' scan residual variance with single dipole
'music' multiple signal classification
'mvl' multivariate Laplace source localization
The DICS and PCC methods are for frequency domain data, all other methods
are for time domain data.
The positions of the sources can be specified as a regular 3-D
grid that is aligned with the axes of the head coordinate system
cfg.grid.xgrid = vector (e.g. -20:1:20) or 'auto' (default = 'auto')
cfg.grid.ygrid = vector (e.g. -20:1:20) or 'auto' (default = 'auto')
cfg.grid.zgrid = vector (e.g. 0:1:20) or 'auto' (default = 'auto')
cfg.grid.resolution = number (e.g. 1 cm) for automatic grid generation
Alternatively the position of a few sources at locations of interest can
be specified, for example obtained from an anatomical or functional MRI
cfg.grid.pos = Nx3 matrix with position of each source
cfg.grid.dim = [Nx Ny Nz] vector with dimensions in case of 3-D grid (optional)
cfg.grid.inside = vector with indices of the sources inside the brain (optional)
cfg.grid.outside = vector with indices of the sources outside the brain (optional)
You can also use the FT_PREPARE_LEADFIELD function to create a grid with
dipole positions and with precomputed leadfields.
The following strategies are supported to obtain statistics for the source parameters using
multiple trials in the data, either directly or through a resampling-based approach
cfg.singletrial = 'no' or 'yes' construct filter from average, apply to single trials
cfg.rawtrial = 'no' or 'yes' construct filter from single trials, apply to single trials
cfg.jackknife = 'no' or 'yes' jackknife resampling of trials
cfg.pseudovalue = 'no' or 'yes' pseudovalue resampling of trials
cfg.bootstrap = 'no' or 'yes' bootstrap resampling of trials
cfg.numbootstrap = number of bootstrap replications (e.g. number of original trials)
If none of these options is specified, the average over the trials will
be computed prior to computing the source reconstruction.
To obtain statistics over the source parameters between two conditions, you
can also use a resampling procedure that reshuffles the trials over both
conditions. In that case, you should call the function with two datasets
containing single trial data like
[source] = ft_sourceanalysis(cfg, freqA, freqB)
[source] = ft_sourceanalysis(cfg, timelockA, timelockB)
and you should specify
cfg.randomization = 'no' or 'yes'
cfg.permutation = 'no' or 'yes'
cfg.numrandomization = number, e.g. 500
cfg.numpermutation = number, e.g. 500 or 'all'
You should specify the volume conductor model with
cfg.hdmfile = string, file containing the volume conduction model
or alternatively
cfg.vol = structure with volume conduction model
If the sensor information is not contained in the data itself you should
also specify the sensor information using
cfg.gradfile = string, file containing the gradiometer definition
cfg.elecfile = string, file containing the electrode definition
or alternatively
cfg.grad = structure with gradiometer definition
cfg.elec = structure with electrode definition
If you have not specified a grid with pre-computed leadfields,
the leadfield for each grid location will be computed on the fly.
In that case you can modify the leadfields by reducing the rank
(i.e. remove the weakest orientation), or by normalizing each
column.
cfg.reducerank = 'no', or number (default = 3 for EEG, 2 for MEG)
cfg.normalize = 'no' or 'yes' (default = 'no')
Other configuration options are
cfg.channel = Nx1 cell-array with selection of channels (default = 'all'),
see FT_CHANNELSELECTION for details
cfg.frequency = single number (in Hz)
cfg.latency = single number in seconds, for time-frequency analysis
cfg.lambda = number or empty for automatic default
cfg.refchan = reference channel label (for coherence)
cfg.refdip = reference dipole location (for coherence)
cfg.supchan = suppressed channel label(s)
cfg.supdip = suppressed dipole location(s)
cfg.keeptrials = 'no' or 'yes'
cfg.keepleadfield = 'no' or 'yes'
cfg.projectnoise = 'no' or 'yes'
cfg.keepfilter = 'no' or 'yes'
cfg.keepcsd = 'no' or 'yes'
cfg.keepmom = 'no' or 'yes'
cfg.feedback = 'no', 'text', 'textbar', 'gui' (default = 'text')
See also FT_SOURCEDESCRIPTIVES, FT_SOURCESTATISTICS, FT_PREPARE_LEADFIELD