[Eeglablist] ICA on a large number of data

Scott Makeig smakeig at gmail.com
Wed Apr 6 11:46:53 PDT 2011


Gianni -

Currently, I believe,  the only tools to run ICA in EEGLAB assume the whole
data are in memory -- i.e., to decompose large data files you would need to
put more memory in a 64-bit machine.

However, there would be no obstacle (except some Matlab programming effort
and then the processing time required) to modifying the runica() function to
update its weight matrix, in each training loop, on a series of data files
read in and processed sequentially.  Using memory-mapping might speed the
repeated data reads. The data files should be one data set separated into
data files to allow each to be read into computer memory. If anyone were
interested, the runica() Matlab code is included in EEGLAB...

Or (equivalent, only requiring a simple Matlab script but still less
efficient), one could run a few iterations of runica or binica (or AMICA,
see below), save the resulting weight matrix and then decompose for the same
few iterations a 2nd dataset, starting with the starting weight matrix
 sphere*weights from the 1st-data decomposition (and 'sphering off'').
Running this two-(or more) decomposition loop repeatedly would (eventually)
return a single decomposition of the dataset split into two (or more) data
files. (Slightly more efficient variations are possible as well).

Jason Palmer's AMICA (highly recommended when available!) runs on our
Opteron cluster at SCCN and distributes data across parallel processing
nodes/cores, though it might currently require the 'head' node to load the
entire dataset to distribute -- there is also a (slow) Matlab version. Jason
is working to release compiled and compilable versions for Windows and
Linux.

AMICA also allows the option to decompose one dataset into more than one ICA
model (each model specializing in a competition-selected subset of the
data). This adds complexity, but allows models to possibly specialize --
e,.g., separating seizure vs. non-seizure, wake vs. sleep, tasks 1 & 3 vs
tasks 2 & 4, or etc. We are exploring its uses now; Ozgur Balkan is building
a plug-in toolbox to evaluate and visualize its results.

I hope the thoughts above may be useful to you and/or others.

Scott Makeig

On Mon, Apr 4, 2011 at 5:50 AM, Mauro Gianni Perrucci <
gianni.perrucci at gmail.com> wrote:

> I would like to analyze a data set of eeg data using ICA,
> but the data sets is very large, about 2 hours of acquisition.
> Can be applied ICA on a portion of the data (i.e. 20min with
> Fc=512Hz), calculate the mixing matrix and then use that on the full
> data set?
> How can I do with eeglab ?
> Greetings
>
> Gianni Perrucci
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>



-- 
Scott Makeig, Research Scientist and Director, Swartz Center for
Computational Neuroscience, Institute for Neural Computation & Adj. Prof. of
Neurosciences, University of California San Diego, La Jolla CA 92093-0559,
http://sccn.ucsd.edu/~scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20110406/1c0b384f/attachment.html>


More information about the eeglablist mailing list