class moabb.datasets.bi2013a(NonAdaptive=True, Adaptive=False, Training=True, Online=False)[source][source]

P300 dataset bi2013a from a “Brain Invaders” experiment

Dataset following the setup from [1] carried-out at University of Grenoble Alpes.

Dataset Description

This dataset concerns an experiment carried out at GIPSA-lab (University of Grenoble Alpes, CNRS, Grenoble-INP) in 2013. The recordings concerned 24 subjects in total. Subjects 1 to 7 participated to eight sessions, run in different days, subject 8 to 24 participated to one session. Each session consisted in two runs, one in a Non-Adaptive (classical) and one in an Adaptive (calibration-less) mode of operation. The order of the runs was randomized for each session. In both runs there was a Training (calibration) phase and an Online phase, always passed in this order. In the non-Adaptive run the data from the Training phase was used for classifying the trials on the Online phase using the training-test version of the MDM algorithm [2]. In the Adaptive run, the data from the training phase was not used at all, instead the classifier was initialized with generic class geometric means and continuously adapted to the incoming data using the Riemannian method explained in [2]. Subjects were completely blind to the mode of operation and the two runs appeared to them identical.

In the Brain Invaders P300 paradigm, a repetition is composed of 12 flashes, of which 2 include the Target symbol (Target flashes) and 10 do not (non-Target flash). Please see [3]_ for a description of the paradigm. For this experiment, in the Training phases the number of flashes is fixed (80 Target flashes and 400 non-Target flashes). In the Online phases the number of Target and non-Target still are in a ratio 1/5, however their number is variable because the Brain Invaders works with a fixed number of game levels, however the number of repetitions needed to destroy the target (hence to proceed to the next level) depends on the user’s performance [2]. In any case, since the classes are unbalanced, an appropriate score must be used for quantifying the performance of classification methods (e.g., balanced accuracy, AUC methods, etc).

Data were acquired with a Nexus (TMSi, The Netherlands) EEG amplifier:

  • Sampling Frequency: 512 samples per second

  • Digital Filter: no

  • Electrodes: 16 wet Silver/Silver Chloride electrodes positioned at FP1, FP2, F5, AFz, F6, T7, Cz, T8, P7, P3, Pz, P4, P8, O1, Oz, O2 according to the 10/20 international system.

  • Reference: left ear-lobe.

  • Ground: N/A.


Principal Investigators: Erwan Vaineau, Dr. Alexandre Barachant Scientific Supervisor : Dr. Marco Congedo Technical Supervisor : Anton Andreev



Vaineau, E., Barachant, A., Andreev, A., Rodrigues, P. C., Cattan, G. & Congedo, M. (2019). Brain invaders adaptive versus non-adaptive P300 brain-computer interface dataset. arXiv preprint arXiv:1904.09111.


Barachant A, Congedo M (2014) A Plug & Play P300 BCI using Information Geometry. arXiv:1409.0107.


Congedo M, Goyat M, Tarrin N, Ionescu G, Rivet B,Varnet L, Rivet B, Phlypo R, Jrad N, Acquadro M, Jutten C (2011) “Brain Invaders”: a prototype of an open-source P300-based video game working with the OpenViBE platform. Proc. IBCI Conf., Graz, Austria, 280-283.


data_path(subject[, path, force_update, …])

Get path to local copy of a subject data.

download([subject_list, path, force_update, …])

Download all data from the dataset.


Return the data correspoonding to a list of subjects.

data_path(subject, path=None, force_update=False, update_path=None, verbose=None)[source][source]

Get path to local copy of a subject data.

  • subject (int) – Number of subject to use

  • path (None | str) – Location of where to look for the data storing location. If None, the environment variable or config parameter MNE_DATASETS_(dataset)_PATH is used. If it doesn’t exist, the “~/mne_data” directory is used. If the dataset is not found under the given path, the data will be automatically downloaded to the specified folder.

  • force_update (bool) – Force update of the dataset even if a local copy exists.

  • update_path (bool | None **Deprecated**) – If True, set the MNE_DATASETS_(dataset)_PATH in mne-python config to the given path. If None, the user is prompted.

  • verbose (bool, str, int, or None) – If not None, override default verbose level (see mne.verbose()).


path – Local path to the given data file. This path is contained inside a list of length one, for compatibility.

Return type

list of str