BCI resources
These are some of the resource to introduce you to basics of brain computer interfaces (BCI). The resources contain videos, articles, books. Please feel free to come to iHuman lab and ask anyone at lab to get more information.
Videos
Swartz Center for Computational Neuroscience
- Introduction to BCI and EEG
- Start with the initial videos (video-1 to video-7) to grasp the fundamentals of BCI and EEG.
- These videos provide a solid foundation for understanding how brain activity can be used to control external devices.
- Watch the videos here
These introductory videos are highly recommended as they cover the basics you need to get started.
Mike X Cohen
- General Neural Time-Series Analysis
- Explore advanced concepts in neural time-series analysis, focusing on methods to analyze and interpret brain signals over time.
- The videos primarily use Matlab, but you can replicate the analysis in Python using the mne package.
- Watch the videos here
Adapting Matlab scripts to Python will not only deepen your understanding of neural data analysis but also enhance your proficiency in Python programming.
GitHub Links
- NeuroTechX/awesome-bci
- This repository is a curated collection of resources, tools, and projects related to BCI research.
- Explore various software tools, datasets, and community-driven projects that can aid your research.
- Visit the repository
Books
- Brain-Computer Interfacing: An Introduction by Rajesh P.N. Rao
- This book provides a comprehensive introduction to BCI technology, covering its principles, applications, and future trends.
- Access the book
- Analyzing Neural Time Series Data: Theory and Practice by Mike X. Cohen
- Learn detailed methodologies and practical techniques for analyzing neural time-series data.
- Gain insights into advanced signal processing techniques applicable to BCI research.
- Explore the book
MNE Python
Another important package, we use extensively in our lab processing the physiological data is MNE-Python. MNE-Python is a Python package specifically designed for the analysis of brain signals, collected using techniques like magnetoencephalography (MEG) and electroencephalography (EEG). It provides a robust set of tools for processing, analyzing, and visualizing neural data, making it a preferred choice for researchers and clinicians in the field of neuroscience.
Key features of MNE-Python include:
- Data Handling: Import and manipulate data from various formats such as .fif, .edf, and .bdf.
- Preprocessing: Remove noise, filter data, and interpolate bad channels.
- Analysis: Perform time-domain and frequency-domain analyses, including time-frequency decomposition.
- Visualization: Plot data in 2D and 3D to visualize sensor and source-space information.
- Source Localization: Estimate the location of neural sources responsible for recorded signals.
- Statistics: Conduct statistical tests to analyze differences in brain activity.
MNE-Python supports a wide range of functionalities tailored to both novice users and advanced researchers, facilitating comprehensive exploration and interpretation of neuroimaging data.
For more information and detailed documentation, visit MNE-Python website.
Other links
Go through the tutorials and implement standard functions using the EEG data. Reach out to Hemanth to get the EEG data.
Lab Streaming Layer (LSL)
Lab streaming layer (LSL) is an open-source networked middleware ecosystem to stream, receive, synchronize, and record neural, physiological, and behavioral data streams acquired from diverse sensor hardware.
It reduces complexity and barriers to entry for researchers, sensor manufacturers, and users through a simple, interoperable, standardized API to connect data consumers to data producers while abstracting obstacles such as platform differences, stream discovery, synchronization and fault-tolerance.
We use LSL as a standard platform to interface multiple sensor and simulation softwares in our lab.
- Overview and Importance
- LSL is a crucial middleware platform used in our lab to synchronize and record data from various sensors.
- It simplifies data integration across different hardware and software platforms, ensuring seamless connectivity and interoperability.
- Learn more about LSL
- Learn about pylsl