Urgent help, please

About the GUI application to design signal processing pipelines
Post Reply
stefan
Posts: 20
Joined: Thu Jul 28, 2011 2:14 am

Urgent help, please

Post by stefan »

Hi everyone,

I would like to check the frequency of the P300 brainwave when the target letters are flashing and after 300-500 mSec of the flash, in order to make figures and data analysis of these information to know whether a specific person have a strange/distinguished P300 brain wave or weak/undistinguished one. So, I need the event related potentials that are associated with each flashing letter of the data I collected. On other words, I need to synchronize the flashes with the EEG signals. I assume this is possible with openvibe, is it not? And how can I do this?

In order to add the performance metric to the P300 speller scenario, what is the input to the Target (simulation) will be?

I also would like to convert the EEG file .OV to .CSV to do some analysis with Excel? Do you know such as tool to do so? Is .OV stands for output voltage?

I also have some questions about the available EEG samples on openvibe (for the P300 speller and the magic card). Can you please provide me with detailed information about them, e.g. which EEG recording system was used to collect the data? How many training sessions were done before the data collection? Where and by how? Also participants’ details (age and gender)?

Do you permit the use of these samples for research and how can I write the acknowledgment? Are there other data you can provide me with as samples. I’m doing my master research on BCIs particularly using openvibe and Emotiv. Focusing on the P300 speller and the magic card, and would really love if you can provide me with more samples to compare with the results I got.

Your help and efforts are highly appreciated :wink:

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Urgent help, please

Post by lbonnet »

Hi stefan,
On other words, I need to synchronize the flashes with the EEG signals. I assume this is possible with openvibe, is it not? And how can I do this?
Synchronization between flashes and EEG is naturally mandatory for the P300 speller scenarios. In the current scenarios, the flashing sequence produced by the P300 Flashing Sequence Box is used.
For example, the Flashing Sequence asks for a flash on row 3 by sending a stimulation "OVTK_StimulationId_Label_03" to the P300 speller visualization box.
The date associated with this stimulation when it's produced is used to tag the EEG signal.

The system has some delay between the time you ask GTK for a flash and the time the flash actually happens on the screen. This delay remains the same as long as you do not change scenario or reboot the software. This is a current limitation we are aware of, and trying to resolve it is not so simple :)

Many P300 setups made by laboratories uses parallel port of the acquisition device to tag the flash with high precision.
In order to add the performance metric to the P300 speller scenario, what is the input to the Target (simulation) will be?
The P300 speller visualization box outputs after each flash a stimulation OVTK_StimulationId_Target or OVTK_StimulationId_NonTarget.
Look at the classifier trainer scenario. It makes use of these stimulation to extract targets and non targets examples to train a LDA.
I also would like to convert the EEG file .OV to .CSV to do some analysis with Excel? Do you know such as tool to do so? Is .OV stands for output voltage?
OV is just for OpenVibe :) It's the format used in the streams between boxes in the designer, written in a file.
You can use the CSV writer box to convert any OV file in CSV. Make a new scenario with a Generic Stream reader (for .ov files) and connect the outputs you need (signal, stimulation) to some CSV writers. Press fast forward till all the session is read, and you get a file with the EEG, a file with the stimulations and their date, etc.
I also have some questions about the available EEG samples on openvibe (for the P300 speller and the magic card). Can you please provide me with detailed information about them, e.g. which EEG recording system was used to collect the data? How many training sessions were done before the data collection? Where and by how? Also participants’ details (age and gender)?
I am sorry but I don't have these information right now. I was not in the project at the time of the recordings, and I don't want to give you wrong information...
Do you permit the use of these samples for research and how can I write the acknowledgment? Are there other data you can provide me with as samples. I’m doing my master research on BCIs particularly using openvibe and Emotiv. Focusing on the P300 speller and the magic card, and would really love if you can provide me with more samples to compare with the results I got.
As part of the open-source and free software under LGPL License, I guess the data provided with openvibe can be used in your research.
However providing you with more P300 data is another question, as it is related to our own "private" research activity.
As I'm not project leader I cannot take myself such decisions. Sharing data is done through collaborations and mutual projects usually.

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

yrenard
Site Admin
Posts: 645
Joined: Fri Sep 01, 2006 3:39 pm
Contact:

Re: Urgent help, please

Post by yrenard »

stefan wrote:I also have some questions about the available EEG samples on openvibe (for the P300 speller and the magic card). Can you please provide me with detailed information about them, e.g. which EEG recording system was used to collect the data? How many training sessions were done before the data collection? Where and by how? Also participants’ details (age and gender)?
Dear Stefan,

these files were recorded using a <a href=http://www.tmsi.com/?id=12>TMSi Porti32</a> amplifier. They were recorded during the early stages of the P300 pipeline development and the user did not have feedback at this time (that is we only recorded the signals but did not process them in real time). The original recording had like 20+ channels and only the 3 most relevant ones were processed and shared with the release. Also the Porti32 records signals with common average reference. For that reason, the signals have been re-referenced to an electrode located on the nose in the files shared with the release.

Does that help ?
Regards,
Yann

stefan
Posts: 20
Joined: Thu Jul 28, 2011 2:14 am

Re: Urgent help, please

Post by stefan »

Dear yrenard and lbonnet,

I’d like to thank you for your great support and fast response, and I’d like to wish all openvibe team a merry Christmas and Happy New Year.

Finally, I gained very good results using the P300 speller, but I used the online scenario to record the training data and then test it on a new data, I got 9 letters right out of 10 ^_^ but I’ve few more questions:

• The resulted letters of the online scenario are shown in different colours: orange, green and black, what is the meaning of these colours?

• For synchronizing the flashes with the EEG signals, I knew it is already synchronized but I’m wondering how I can get the averaged frequency between the time of flashing and 500 mSec later. This is in order to create a nice figures like the once shown in page 41 of the study “could anyone use a BCI?” (springer, 2010), which compare between the P300 brain wave for target stimuli and to not-target stimuli. I tried to upload it here, put wasn't allowed.


• For connection the confusion metric, I need to connect:
1.Confusion matrix (streamed matrix) to Matrix Display.
2. Target (simulation) to the P300 speller visualization box outputs.
3. Classification results (stimulations) to ???

Thank you in anvance ^_^

stefan
Posts: 20
Joined: Thu Jul 28, 2011 2:14 am

Re: Urgent help, please

Post by stefan »

Few more questions :?:

•I’d like to know what type of windowing is used for the P300 speller? Is it a simple event related time framing? As I understand, the classifier use only the data that is collected 300 mSec after each column and row flash, is this correct?

•What is the Information Transfer Rate ITR for the speller? I mean how many bits are transformed per minute? As this is used to measure the affectivity of BCI.


•When I use the online scenario of the speller I can spell 10 letters in over 4 minutes, so, the speed of the interface ((or you may use a name for the spelling speed?)) is less than 3 letters per minute. However, I’ve read on other studies that the speed they reach is 6/7 letters per minute, and I’m wondering why the speller is slow here? :roll:
I know that I can reduce the number of repetition but this will affect the performance negatively! And also I don’t understand the number of repetitions, as it is supposed to be 12 as the default setups but when I count how many time the target letter flashes, I found out it is over 23! Could you clarify these points, please?

Your help is much appreciated :wink:

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Urgent help, please

Post by lbonnet »

Hi Stefan,
Happy new year !
Here is some answers:
The resulted letters of the online scenario are shown in different colours: orange, green and black, what is the meaning of these colours?
Green for correct letter (prediction is correct according to the instruction), Black for incorrect prediction, orange for partially correct prediction (one row or one column only is correct)
For synchronizing the flashes with the EEG signals, I knew it is already synchronized but I’m wondering how I can get the averaged frequency between the time of flashing and 500 mSec later. This is in order to create a nice figures like the once shown in page 41 of the study “could anyone use a BCI?” (springer, 2010), which compare between the P300 brain wave for target stimuli and to not-target stimuli. I tried to upload it here, put wasn't allowed.
By using a stimulation based epoching synchronized on the Target stimulation, you can get the epochs that should contain a P300 response.
Using an Epoch Average box afterward can average all these epochs (use a Cumulative average to get the session average).
I dont know what kind of preprocessing is used prior to displaying the P300 response in the study you mention; maybe displaying raw epoch on every channel is not enough :)
For connection the confusion metric, I need to connect:
1.Confusion matrix (streamed matrix) to Matrix Display.
2. Target (simulation) to the P300 speller visualization box outputs.
3. Classification results (stimulations) to ???
The confusion matrix implementation is not immediate I'm afraid.

One confusion matrix can be used per classifier box (one for each Classifier processor, or one per voting classifier).
I suggest you compute the confusion matrix of the 2 voting classifiers (for row and column selection).

You need to provide the box with the target stream. It is the actual instruction stream, what class is supposed to be chosen.
You also need the classification result, i.e what class label the classifier outputs.
Both are compared in order to compute the confusion matrix.

In the P300 speller scenario, the instruction flow would be coming from the Target Letter Generation (a Lua box).
e.g. Label_02 & Label_07 indicates that the selected letter should be on 2nd row, 1st column.
You need to filter that stream : the row selector only need row labels 01 to 06 (resp. 07 to 12 for column).
The Voting classifiers outputs the chosen labels.

The Matrix display is then good to show the confusion matrix produced.
I’d like to know what type of windowing is used for the P300 speller? Is it a simple event related time framing? As I understand, the classifier use only the data that is collected 300 mSec after each column and row flash, is this correct?
The Stimulation based epoching boxes extract a 600 ms window after the flashes. The Epoch average box afterward does pretty much nothing in a default configuration (average 1 epoch). You can change it to average N epochs (a decision would be made on the average of N epochs then).
What is the Information Transfer Rate ITR for the speller? I mean how many bits are transformed per minute? As this is used to measure the affectivity of BCI.
The ITR depends on the configuration used. Changing the flash duration, inter-flash duration, repetition count or inter-repetition delays change the ITR.
You can tune the system according to the user feedback and training level. Usually we got 1-3 letters per minute. A (very) well trained user on a (very) well tuned system can achieve lot more (single trial, few seconds per letter). But I don't think you can achieve such performance on the long run :)
When I use the online scenario of the speller I can spell 10 letters in over 4 minutes, so, the speed of the interface ((or you may use a name for the spelling speed?)) is less than 3 letters per minute. However, I’ve read on other studies that the speed they reach is 6/7 letters per minute, and I’m wondering why the speller is slow here? :roll:
I know that I can reduce the number of repetition but this will affect the performance negatively! And also I don’t understand the number of repetitions, as it is supposed to be 12 as the default setups but when I count how many time the target letter flashes, I found out it is over 23! Could you clarify these points, please?
12 repetition is maybe a bit high once you are trained. But from our experience it makes the speller usable by a naive user on a first try.
In the default P300 speller application, the letters are flashed by row and column. To actually select a letter, you need its row and its column.
Therefore one repetition is a succession of flashs, randomly chosen so every row and column is flashed once. You get 2 flashes per repetition (row+column flash).
If you set the repetition count to 12, you should count to 24 (it's ok if you miss few ones:))

To speed up the interface, lower the different durations and the repetition count. However it may lower the performance as well...

Different layouts exist for the P300 speller, some of them may be faster or give better performances (hex-o-spell, random blocks instead of row/col, etc.)
It's an active research field.

Hope this helps.

Laurent
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

stefan
Posts: 20
Joined: Thu Jul 28, 2011 2:14 am

Re: Urgent help, please

Post by stefan »

Hi Laurent,

Thanks a lot for your helpful responds and valuable time :wink:
For the three points mentioned above, I’ve the following questions:

1. For the figures I want to make, I just intend to make a figure of the p300 brain wave and compare it with non-target brain wave. I need to see the response to the target flash on the EEG data, and also the responds to non-target letters. To get this, I added a generic stream writer box to the replay scenario of the speller (file name T). I connected 3 of the writing box inputs to the outputs of first ‘identity’ box, but I connect the signals input to the output of the first ‘simulation-based epoching’ box on the left side ( I assume this is the output signals of column 6 right??). I played the scenario for only one letter ‘R’ that appears on the last column, column 6. As I understand, every time this column flashes, the data will be recorded for 600 mSec in the file T, and this represent the target responses on different time of the flashing. Then, I did the same things for the same letter but I record the data from another column to see the non-target responds in file NT. However, the data from the files T and NT were displayed, I didn’t get what I excepted :(

Is what I am doing is the right thing? How can I get examples of the EEG signals shape for the target responds and the non-target responds? Which boxes are for the columns and which are for the rows?

2. About the Information transfer rate, I need to know the exact numbers of the bits, e.g. 160 bits/min. How can I get this? and what is your definition of well trained user and well trained system?

3. I’m not clear about connecting the confusion matrix on the replay scenario of the speller? Would you be able to provide me with a screen shots for this place? I’m sorry for bothering you.

Your help is much appreciated. Many thanks.

Post Reply