Dear scwang,
You say you want to do ICA so I recommend you use EEGLAB. It is a Matlab toolbox for analyzing EEG data with an emphasis on ICA. EEGLAB has a plugin to import BCI2000 dat files.
http://www.bci2000.org/wiki/index.php/U ... GLabImport(The version of the plugin included with EEGLAB is a little old but it works. You can get the newer version from the BCI2000 svn)
When you import your BCI2000 dat files you will have to select the states you want to import. These states will be converted to EEGLAB "events". According to
http://www.bci2000.org/wiki/index.php/U ... ask#States, I think you want StimulusBegin.
Unfortunately, EEGLAB's concept of "events" does not map well to BCI2000 states, so you have to do some more state->event wrangling manually. In Matlab, use load_bcidat to load the datafiles including their states. Find where states.StimulusBegin changes from 0->1. At those indices, find the value of states.StimulusType. Then, in the EEGLAB data structure (usually named 'EEG'), add a 'StimulusType' field of your 'StimulusBegin' events and set the values of those fields to the same as the values identified from states.StimulusType. Now your EEG struct has an event at each occurrence of a stimulus flash and each event has a field StimulusType valued 1 for target (i.e., P300) or 0 for non-target.
Then do your preprocessing:
Remove bad channels.
Filter.
Common-average referencing.
Down-sampling.
Epoch around StimulusBegin events (something like -100 ms to +1000 ms).
Subtract baseline from each epoch.
(Optional) Remove bad epochs.
ICA (using all good channels).
Now you can subtract your artifactual components and look at the ERPs in the channel space, comparing epochs with StimulusType==0 (Non-Target) to epochs with StimulusType==1 (Target). Alternatively, you can do a Target-NonTarget comparison on ERPs from component activities, especially those that project to medial parietal cortex.
I left out a lot of details and some Matlab code necessary to do all of the above steps. I think there's already a lot of information here on how to get started but if you choose to go this way and you get stuck then you can ask here and I will try to help.
-Chad