FT_COMPONENTANALYSIS
Note that this reference documentation is identical to the help that is displayed in MATLAB when you type “help ft_componentanalysis”.
FT_COMPONENTANALYSIS performs independent component analysis or other spatio-temporal decompositions of EEG or MEG data. This function computes the topography and timecourses of the components. The output of this function can be further analyzed with FT_TIMELOCKANALYSIS or FT_FREQNANALYSIS. Use as [comp] = ft_componentanalysis(cfg, data) where cfg is a configuration structure and the input data is obtained from FT_PREPROCESSING or from FT_TIMELOCKANALYSIS. The configuration should contain cfg.method = 'runica', 'fastica', 'binica', 'pca', 'svd', 'jader', 'varimax', 'dss', 'cca', 'sobi', 'white' or 'csp' (default = 'runica') cfg.channel = cell-array with channel selection (default = 'all'), see FT_CHANNELSELECTION for details cfg.trials = 'all' or a selection given as a 1xN vector (default = 'all') cfg.numcomponent = 'all' or number (default = 'all') cfg.demean = 'no' or 'yes', whether to demean the input data (default = 'yes') cfg.updatesens = 'no' or 'yes' (default = 'yes') cfg.feedback = 'no', 'text', 'textbar', 'gui' (default = 'text') The runica method supports the following method-specific options. The values that these options can take can be found with HELP RUNICA. cfg.runica.extended cfg.runica.pca cfg.runica.sphering cfg.runica.weights cfg.runica.lrate cfg.runica.block cfg.runica.anneal cfg.runica.annealdeg cfg.runica.stop cfg.runica.maxsteps cfg.runica.bias cfg.runica.momentum cfg.runica.specgram cfg.runica.posact cfg.runica.verbose cfg.runica.logfile cfg.runica.interput The fastica method supports the following method-specific options. The values that these options can take can be found with HELP FASTICA. cfg.fastica.approach cfg.fastica.numOfIC cfg.fastica.g cfg.fastica.finetune cfg.fastica.a1 cfg.fastica.a2 cfg.fastica.mu cfg.fastica.stabilization cfg.fastica.epsilon cfg.fastica.maxNumIterations cfg.fastica.maxFinetune cfg.fastica.sampleSize cfg.fastica.initGuess cfg.fastica.verbose cfg.fastica.displayMode cfg.fastica.displayInterval cfg.fastica.firstEig cfg.fastica.lastEig cfg.fastica.interactivePCA cfg.fastica.pcaE cfg.fastica.pcaD cfg.fastica.whiteSig cfg.fastica.whiteMat cfg.fastica.dewhiteMat cfg.fastica.only The binica method supports the following method-specific options. The values that these options can take can be found with HELP BINICA. cfg.binica.extended cfg.binica.pca cfg.binica.sphering cfg.binica.lrate cfg.binica.blocksize cfg.binica.maxsteps cfg.binica.stop cfg.binica.weightsin cfg.binica.verbose cfg.binica.filenum cfg.binica.posact cfg.binica.annealstep cfg.binica.annealdeg cfg.binica.bias cfg.binica.momentum The dss method requires the following method-specific option and supports a whole lot of other options. The values that these options can take can be found with HELP DSS_CREATE_STATE. cfg.dss.denf.function cfg.dss.denf.params The sobi method supports the following method-specific options. The values that these options can take can be found with HELP SOBI. cfg.sobi.n_sources cfg.sobi.p_correlations The csp method implements the common-spatial patterns method. For CSP, the following specific options can be defined: cfg.csp.classlabels = vector that assigns a trial to class 1 or 2. cfg.csp.numfilters = the number of spatial filters to use (default: 6). The icasso method implements icasso. It runs fastica a specified number of times, and provides information about the stability of the components found The following specific options can be defined, see ICASSOEST: cfg.icasso.mode cfg.icasso.Niter Instead of specifying a component analysis method, you can also specify a previously computed unmixing matrix, which will be used to estimate the component timecourses in this data. This requires cfg.unmixing = NxN unmixing matrix cfg.topolabel = Nx1 cell-array with the channel labels You may specify a particular seed for random numbers called by rand/randn/randi, or the random state used by a previous call to this function to replicate results. For example: cfg.randomseed = integer seed value of user's choice cfg.randomseed = comp.cfg.callinfo.randomseed (from previous call) To facilitate data-handling and distributed computing you can use cfg.inputfile = ... cfg.outputfile = ... If you specify one of these (or both) the input data will be read from a *.mat file on disk and/or the output data will be written to a *.mat file. These mat files should contain only a single variable, corresponding with the input/output structure. See also FT_TOPOPLOTIC, FT_REJECTCOMPONENT, FASTICA, RUNICA, BINICA, SVD, JADER, VARIMAX, DSS, CCA, SOBI, ICASSO