title: Wyrm: A Brain-Computer Interface Toolbox in Python.
abstract: In the last years Python has gained more and more traction in the scientific community. Projects like NumPy, SciPy, and Matplotlib have created a strong foundation for scientific computing in Python and machine learning packages like scikit-learn or packages for data analysis like Pandas are building on top of it. In this paper we present Wyrm ( https://github.com/bbci/wyrm ), an open source BCI toolbox in Python. Wyrm is applicable to a broad range of neuroscientific problems. It can be used as a toolbox for analysis and visualization of neurophysiological data and in real-time settings, like an online BCI application. In order to prevent software defects, Wyrm makes extensive use of unit testing. We will explain the key aspects of Wyrm's software architecture and design decisions for its data structure, and demonstrate and validate the use of our toolbox by presenting our approach to the classification tasks of two different data sets from the BCI Competition III. Furthermore, we will give a brief analysis of the data sets using our toolbox, and demonstrate how we implemented an online experiment using Wyrm. With Wyrm we add the final piece to our ongoing effort to provide a complete, free and open source BCI system in Python.
authors.affiliation: Department of Neurotechnology, Technische Universität Berlin, Sekr. MAR 4-3 Marchstraße 23, 10587, Berlin, Germany. bastian.venthur@tu-berlin.de.
authors.forename: Bastian
authors.initials: B
authors.lastname: Venthur
authors.affiliation: Department of Neurotechnology, Technische Universität Berlin, Sekr. MAR 4-3 Marchstraße 23, 10587, Berlin, Germany.|Department of Machine Learning, Technische Universität, Berlin, Germany.|Bernstein Center for Computational Neuroscience, Berlin, Germany.
authors.forename: Sven
authors.initials: S
authors.lastname: Dähne
authors.affiliation: Department of Neurotechnology, Technische Universität Berlin, Sekr. MAR 4-3 Marchstraße 23, 10587, Berlin, Germany.
authors.forename: Johannes
authors.initials: J
authors.lastname: Höhne
authors.affiliation: Department of Neurotechnology, Technische Universität Berlin, Sekr. MAR 4-3 Marchstraße 23, 10587, Berlin, Germany.
authors.forename: Hendrik
authors.initials: H
authors.lastname: Heller
authors.affiliation: Department of Neurotechnology, Technische Universität Berlin, Sekr. MAR 4-3 Marchstraße 23, 10587, Berlin, Germany.
authors.forename: Benjamin
authors.initials: B
authors.lastname: Blankertz
mesh_terms: D000465:Algorithms; D000818:Animals; D001921:Brain / Q000502:physiology*; D001931:Brain Mapping; D062207:Brain-Computer Interfaces; D004569:Electroencephalography; D005071:Evoked Potentials / Q000502:physiology; D006801:Humans; D019018:Imagery, Psychotherapy; D000069550:Machine Learning; D011381:Programming Languages; D012984:Software
keywords: BCI; Brain-computer interface; ECoG; EEG; Machine learning; Python; Signal processing; Toolbox