Bids Compatibility

The brain imaging data structure (BIDS) is a standard-in-development. This includes specifications for EEG data which is very relevant for BCI research. BIDS in general is described here https://bids-specification.readthedocs.io/en/stable/ The motivation is to reduce the amount of time wasted rearranging data by having it arranged in a specified structure. This is becoming increasingly important as more and more journals are requiring the publication of data.

There are common principles for all BIDS data types and principles specific to EEG. The paper explaining EEG BIDS can be found here EEG-BIDS Paper. There is a BIDS Validator to check to make sure that your data is BIDS compliant. The BIDS format

Schematic of EEG BIDS from the paper mentioned above.
Schematic of EEG BIDS from the paper mentioned above.

Modality Agnostic BIDS Files

The modality agnostic files are outlined in detail here. I have included below a summary of the files and which ones I think we should include.


EEG Specific BIDS Files

Now for the fun stuff! The EEG specific structure is where we may have to adapt more. The structure for saving EEG data is shown below. Items in [ ] are optional. We will need sessions (ses), and maybe run, but probably not acquisition (acq) or recording.

EEG data is broken down by task. Eli had a good point of separating the calibration from the task. This means that we would have the following tasks for the fatigue study:

And the following tasks for the gamification study:


For each task there are the following files related only to the EEG.


For each task there are also the following files related to the events.

Events include stimulus the user, responses from the user or combinations of the two. For each tasks, the relevant events are listed. Each event must have a specified start time and duration.

*- a small note on language, “cue” is used to represent when the user is directly told to select a certain object, “intended” is used to represent the correct selection to complete a task (ie. when the user is asked “does cake grow on trees?” the correct answer is no and so the user should use left hand MI to go left to select “no”, but there is no cue directly telling them to do left hand MI)


So after all that we should have a project directory that looks something like this. This is an example for a single participant in the fatigue study where session 1 is MI, session 2 is P300, and session 3 is video.

README
CHANGES
LICENSE
dataset_description.json
participants.tsv
participants.json
sub-001/
    sub-001_sessions.tsv
    ses-001/
        eeg/
            sub-001_ses-001_task-restpre_eeg.edf
            sub-001_ses-001_task-restpre_eeg.json
            sub-001_ses-001_task-restpre_channels.tsv
            sub-001_ses-001_task-restpre_events.json
            sub-001_ses-001_task-restpre_events.tsv
            sub-001_ses-001_task-micalibration_eeg.edf
            sub-001_ses-001_task-micalibration_eeg.json
            sub-001_ses-001_task-micalibration_channels.tsv
            sub-001_ses-001_task-micalibration_events.json
            sub-001_ses-001_task-micalibration_events.tsv
            sub-001_ses-001_task-mitask_eeg.edf
            sub-001_ses-001_task-mitask_eeg.json
            sub-001_ses-001_task-mitask_channels.tsv
            sub-001_ses-001_task-mitask_events.json
            sub-001_ses-001_task-mitask_events.tsv
            sub-001_ses-001_task-restpost_eeg.edf
            sub-001_ses-001_task-restpost_eeg.json
            sub-001_ses-001_task-restpost_channels.tsv
            sub-001_ses-001_task-restpost_events.json
            sub-001_ses-001_task-restpost_events.tsv
        sourcedata/
            sub-001_ses-001_task-restpre_eeg.xdf
            sub-001_ses-001_task-mi.xdf
            sub-001_ses-001_task-restpost.xdf
    ses-002/
        eeg/
            sub-001_ses-002_task-restpre_eeg.edf
            sub-001_ses-002_task-restpre_eeg.json
            sub-001_ses-002_task-restpre_channels.tsv
            sub-001_ses-002_task-restpre_events.json
            sub-001_ses-002_task-restpre_events.tsv
            sub-001_ses-002_task-p300calibration_eeg.edf
            sub-001_ses-002_task-p300calibration_eeg.json
            sub-001_ses-002_task-p300calibration_channels.tsv
            sub-001_ses-002_task-p300calibration_events.json
            sub-001_ses-002_task-p300calibration_events.tsv
            sub-001_ses-002_task-p300task_eeg.edf
            sub-001_ses-002_task-p300task_eeg.json
            sub-001_ses-002_task-p300task_channels.tsv
            sub-001_ses-002_task-p300task_events.json
            sub-001_ses-002_task-p300task_events.tsv
            sub-001_ses-002_task-restpost_eeg.edf
            sub-001_ses-002_task-restpost_eeg.json
            sub-001_ses-002_task-restpost_channels.tsv
            sub-001_ses-002_task-restpost_events.json
            sub-001_ses-002_task-restpost_events.tsv
    ses-003
        eeg/
            sub-001_ses-003_task-restpre_eeg.edf
            sub-001_ses-003_task-restpre_eeg.json
            sub-001_ses-003_task-restpre_channels.tsv
            sub-001_ses-003_task-restpre_events.json
            sub-001_ses-003_task-restpre_events.tsv
            sub-001_ses-003_task-restpost_eeg.edf
            sub-001_ses-003_task-restpost_eeg.json
            sub-001_ses-003_task-restpost_channels.tsv
            sub-001_ses-003_task-restpost_events.json
            sub-001_ses-003_task-restpost_events.tsv
sub-002/
sub-003/
...