Mapping Ganglion channels to EEGLAB

I am working on getting my Ultracortex Mark IV running in EEGLAB to record data. 

What are the default electrode positions for the OpenBCI_Ganglion based on the standard 10-5 system https://www.ncbi.nlm.nih.gov/pubmed/11275545 and/or the 10-20, 10-10 systems?




Comments

  • wjcroftwjcroft Mount Shasta, CA
    You can use any 10-20, etc. scalp positions that are relevant to the EEG features you are studying. The OpenBCI_GUI head map shown here, assumes Fp1, Fp2, C3, C4. But that is entirely arbitrary.


  • squadussquadus Los Angeles
    edited September 2018
    Do you know if we need to use a specific plugin in EEGLAB to configure the 10-5, 10-10, 10-20 channel positions? 


  • squadussquadus Los Angeles
    edited September 2018
    Hi William,

    Thanks again for the help. I am following these two tutorials to configure the channel locations for use in EEGLAB and BCILAB.
  • wjcroftwjcroft Mount Shasta, CA
    re: DIPFIT.

    With Ganglion, you only have 4 electrodes. That is not enough for source localization / dipole fitting / etc. Source localization requires a large number of channels, at least the 19 used with the 10-20 map, and sometimes more: 32, 64, etc.

    So you don't need to be concerned about exact x, y, z, coordinates. Have you followed some of the OpenBCI specific tutorials?


    I believe all you need is to correlate which EEG channel corresponds to which labeled 10-20 site. Such as, channel 1 = Fp1, etc. The 10-20 site name would then be used by EEGLAB to label graphs, tables, and such. 
  • squadussquadus Los Angeles
    I have built my .ced file and configured it using set_infer_chanlocs.

    When I run LabStreamingLayer into BCILAB I receive a warning that my cap file can not be found.

    Do you have any idea why this may be?
  • wjcroftwjcroft Mount Shasta, CA
    A couple suggestions.

    This thread has the names of some OpenBCI users who have BCILAB experience. Try posting there, or click a username and send a private message.


    This is the support forum for EEGLAB, BCILAB, etc. You can register for that forum and post a question,




    Regards,



  • squadussquadus Los Angeles
    edited September 2018
    Thank you!

    Quick question about EEG and BCI fundamentals:

    I know it is possible to pre-process, classify, and visualize real-time EEG data from OpenBCI. I want to be 100% confident, is this same function possible without LabStreamingLayer?
  • squadussquadus Los Angeles
    When I stream LabStreamingLayer into BCILAB I am running into a warning that 0% of my channel labels match a cap design, and my srate is 0 instead of 250 Hz. The .ced file I created in EEGLAB (using this guide) has 4 channels as I have a Ganglion board with an Ultracortex Mark IV.

    In BCILAB, I have run the function set_infer_chanlocs with the .ced file, and it shows the same output. 

    Do you know how to link the channel locations so the EEG data streams in LabStreaminglayer? 
  • wjcroftwjcroft Mount Shasta, CA
    "I know it is possible to pre-process, classify, and visualize real-time EEG data from OpenBCI. I want to be 100% confident, is this same function possible without LabStreamingLayer?"

    There are multiple ways to stream data from Ganglion to programs that can perform signal processing / classification of the Ganglion stream. Some examples.

    LabStreamingLayer generated from the OpenBCI_GUI (Networking Widget) or OpenBCI_Python (running on Linux) is capable of feeding various apps that can consume LSL: OpenViBE, Matlab, EEGLAB, etc.

    Python signal processing libraries can be used to signal process and graph a Ganglion stream, via OpenBCI_Python.

    Some apps, such as BrainBay, can consume the Ganglion output generated by the OpenBCI_GUI + OpenBCI_Hub. This is NOT using LSL. 

    Tutorials exist on how to use Javascript to process and display the data stream from the Hub,

  • squadussquadus Los Angeles
    edited September 2018
    I have figured out how to add the channel locations. I am at the point where now when I run the command 

    run_readlsl('DataStreamQuery','type=''EEG''','MarkerQuery', '', 'ChannelOverride', {'FP1','FP2','O1','O2'}, 'srate_override', 250); 

    I receive the following output (screenshot attached):

    WARNING: The value assigned to srate in set_new is not in the typical range [0.1 100000], but was: 0


  • wjcroftwjcroft Mount Shasta, CA
    Just guessing from the comments on this page,


    Don't you want to be using 'SamplingRateOverride' instead of 'srate_override' ?

  • squadussquadus Los Angeles
    edited September 2018
    Hi William,

    I have tried the run_readlsl command with both variables, 'SamplingRateOverride' and 'srate_override'. inside of 

    run_readlsl('DataStreamQuery','type=''EEG''','MarkerQuery', '', 'ChannelOverride', {'FP1','FP2','O1','O2'}, 'srate_override', 250); 

    Also,

    I have tried, within the set_new() function, running this command, however, the output is still the same

    set_new('data',randn(3,100000), 'srate',200,'chanlocs',struct('labels',{'Fp1','Fp2','O1','O2'}));
    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}
  • wjcroftwjcroft Mount Shasta, CA
    I suggest you post your question on the eeglablist discussion forum, mentioned on the previous post of this thread. That is where all the EEGLAB / BCILAB experts hang out.

  • squadussquadus Los Angeles
    Thanks again William,

    I am reading up Machine Learning now as it is kind of putting together what classifiers, modifiers, feature extraction are before I actually perform BCI
Sign In or Register to comment.