Implementation of a Motor Imagery based BCI System using Python Programming Language

Luz Maria Alonso-Valerdi, Francisco Sepulveda

Abstract

At present, there is a wide variety of free open-source brain-computer interface (BCI) software. Even though the available software is very complete, it often runs under a Matlab environment. Matlab is a high performance language for scientific computing, but its limitations concerning the license cost, the restricted access to the algorithm code, and the portability difficulties complicates its use. Therefore, we proposed to implement a motor imagery (MI) based BCI system using Python programming language. This system was called miBCI software, was designed to discriminate up to three control tasks and was structured on the basis of online and offline data analyses. The functionality and efficiency of the software were firstly assessed in a pilot study, and then, its applicability and utility were demonstrated in two subsequent studies associated with the external and internal influences on MI-related control tasks. Results of the pilot study and preliminary outcomes of the subsequent studies are herein presented. This work contributes by promoting the utilization of tools which facilitate the advance of BCI research. The advantage of using Python instead of Matlab, which is the widely used programming language at the moment, is the opportunity to develop BCI software in a public and collaborative way, without property license restrictions.

References

  1. Albanese, D. et al., 2012. mlpy: Machine Learning Python. New York: Cornell University.
  2. Alonso-Valerdi, L. M. & Sepulveda, F., 2011. Programming an offline-analyzer of motor imagery signals via python language. Boston, pp. 7861-7864.
  3. Alonso-Valerdi, L. M. & Sepulveda, F., 2011. Python in Brain-Computer Interfaces (BCI): Development of a BCI based on Motor Imagery. Colchester, pp. 74-79.
  4. Bishop, C. M., 2006. Pattern Recognition and Machine Learning. New York: Springer.
  5. Center, O. S., 2006. Octave and Python: High-level scripting languages productivity and performance evaluation, Ohio: archive.osc.edu.
  6. Chang, C.-C. & Chih-Jen, L., 2011. LIBSVM: a library for support vector machines. ACM Transactions on Intelligent Systems and Technology (TIST), 2(3), p. 27.
  7. Delorme, A. et al., 2010. MATLAB-based tools for BCI research. In: Brain-Computer Interfaces: Applying our Minds to Human-Computer Interaction. London: Springer-Verlag, pp. 241-260.
  8. Delorme, A. & Makeig, S., 2004. EEGLAB: an open source toolbox for analysis of single-trial EEG dynamics including independent component analysis. Journal of Neuroscience Methods, Volume 134, pp. 9- 21.
  9. Fangohr, H., 2004. A comparison of C, MATLAB, and Python as teaching languages in engineering. Computational Science-ICCS, Springer Berlin Heidelberg, pp. 1210-1217.
  10. Hsu, C.-W., Chang, C.-C. & Lin, C.-J., 2003. A practical guide to support vector classification.
  11. Hunter, J. D., 2007. Matplotlib: A 2D graphics environment. Computing in Science and Engineering, 9(3), pp. 0090-95.
  12. Ishak, K. A., 2009. MATLAB tutorial of fundamental programming, Malaysia: University Kebangsaan.
  13. Klein, A. & Reilink, B., 2013. Pyzo, a free and opensource computing environment based on Python, The Netherlands: http://www.pyzo.org/about_pyzo.html.
  14. Klimesch, W., 1999. EEG alpha and theta oscillations reflect cognitive and memory performance: a review and analysis. Brain Research Reviews, Volume 29, pp. 169-195.
  15. Kothe, C. A. & Makeig, S., 2013. BCILAB: a platform for brain-computer interface development. Journal of Neural Engineering, 10(5), p. 056014.
  16. Kropotov, J. D., 2009. Part I: EEG Rhythms. In: Quantitative EEG, Event-Related Potentials and Neurotherapy. 1st ed. San Diego(California): Academic Press - Elsevier, pp. 1-180.
  17. Leeb, R., Scherer, R., Keinrath, C. & Pfurtscheller, G., 2007. Combining BCI and virtual reality: scouting virtual worlds. In: Toward Brain-Computer Interfacing. Cambridge: Massachusetts Institute of Technology Press, pp. 393-408.
  18. Lindstrom, G., 2005. Programming with python, IT professional: IEEE Computer Society.
  19. Mason, S. G. & Birch, G. E., 2003. A general framework for brain-computer interface design. IEEE Transactions on Neural Systems and Rehabilitation Engineering, March, 11(1), pp. 70-85.
  20. Mellinger, J. & Schalk, G., 2007. BCI2000: A generalpurpose software platform for BCI. In: Toward BrainComputer Interfacing. Cambridge: MIT Press, pp. 359-368.
  21. Oliphant, T. E., 2007. Python for scientific computing. Computing in Science and Engineering, 9(3), pp. 10- 20.
  22. Perez, F., Granger, B. & Hunter, J., 2011. Python: an ecosystem for scientific computing. Computing in Science and Engineering, 13(2), pp. 13-21.
  23. Pfurtcheller, G. et al., 2007. Graz-brain-computer inteface: Sate of research. In: G. Dornhege, et al. eds. Toward Brain-Computer Interfacing. Cambridge: The MIT Press, pp. 65-84.
  24. Pfurtscheller, G., Leeb, R., Faller, J. & Neuper, C., 2011. Brain-computer interface systems used for virtual reality control. In: Virtual Reality. InTech, pp. 4-20.
  25. Pfurtscheller, G. & Lopes da Silva, F. H., 1999. Eventrelated EEG/EMG synchronization and desynchronization: basic principles. Clinical Neurophysiology, 110(11), pp. 1842-1857.
  26. Ramoser, H., Müller-Gerking, J. & Pfurtscheller, G., 2000. Optimal spatial filtering of single trial EEG during imagined hand movement. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 8(4), pp. 441-446.
  27. Renard, Y. et al., 2010. OpenViBE: An open-source software platform to design, test, and use braincomputer interfaces in real and virtual environments. Presence: teleoperators and virtual environments, 19(1), pp. 35-53.
  28. Schlogl, A. & Brunner, C., 2008. BioSig: a free and open source software library for BCI research. Computer, 41(10), pp. 44-50.
  29. Schlögl, A., Brunner, C., Scherer, R. & Glatz, A., 2007. BioSig: An open-source software library for BCI research. In: Toward Brain-Computer Interfacing. Cambridge: MIT Press, pp. 347-358.
  30. Sörnmo, L. & Laguna, P., 2005. Bioelectrical Processing in Cardiac and Neurological Applications. New York: Academic Press.
  31. Spacek, M. & Swindale, N., 2009. Python in neuroscience, Pyt DOI: http://dx.doi.org/10.2417/ 1200907.1682: The Neuromorphic Engineer.
Download


Paper Citation


in Harvard Style

Alonso-Valerdi L. and Sepulveda F. (2015). Implementation of a Motor Imagery based BCI System using Python Programming Language . In Proceedings of the 2nd International Conference on Physiological Computing Systems - Volume 1: PhyCS, ISBN 978-989-758-085-7, pages 35-43. DOI: 10.5220/0005211500350043


in Bibtex Style

@conference{phycs15,
author={Luz Maria Alonso-Valerdi and Francisco Sepulveda},
title={Implementation of a Motor Imagery based BCI System using Python Programming Language},
booktitle={Proceedings of the 2nd International Conference on Physiological Computing Systems - Volume 1: PhyCS,},
year={2015},
pages={35-43},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005211500350043},
isbn={978-989-758-085-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 2nd International Conference on Physiological Computing Systems - Volume 1: PhyCS,
TI - Implementation of a Motor Imagery based BCI System using Python Programming Language
SN - 978-989-758-085-7
AU - Alonso-Valerdi L.
AU - Sepulveda F.
PY - 2015
SP - 35
EP - 43
DO - 10.5220/0005211500350043