mne-tools/mne-python — pull request #141 by dengemann (2012-10-10 10:22:11+00:00)
Title: WIP: ICA decomposition for Raw and Epochs (cleaned branch)

Summary of changes
- Adding ICA class that sets up a seed and has methods to decompose, clean and recompose raw and epochs data using FastICA (scikits-learn).
- The ICA class supports the different channel types. To prewhiten / standardize the data before passing to FastICA either a noise covariance matrix is used and if not available, a simple standardization of the variances to 1.
- Adding panel plot function to viz that is useful for visually inspect ICA components at one glance. For the time being this is the way to determine artifact components
- Adding RawFromMerg class (subclass or Raw) to fiff.raw to initialize a new raw instance from the original instance and the ica processessed data. This is supposed to be cleaner than just deepcopying the exisiting instance which also would break the fids.
- Adding examples tha demonstrate the entire workflow.

TODO:
- complete tests of the noise_cov case
- further test plausibility of recomposed (unchanged) data
- find sensible atol criterion for np.allclose
- compare standardization- to noise-cov pre-whitening
- compare dimension reduction to non-reduction results
- complete the epochs based workflow
- integrate components-selection into plotting function

At this moment I'm not exatly sure how to handle the component selection for the epochs case. Naive approach: just as for raw =>> plot slices of concatenated epochs. Complex approach. Treat epochs individually.
Comments / opinioins are highly welcome.