This repository contains interactive EEG analysis web application, an easy-to-use tool to visualize and analyze EEG signals using complexity and entropy.
The main functionalities of the platform at the moment are:
- Visualization of EEG signals
- Frequency analysis using wavelets
- Entropy analysis.
Load and visualize EEG signals from the Fp1 and Fp2 channels, allowing you to analyze the signals over specific time intervals.
Perform wavelet-based frequency analysis on EEG signals. This feature allows you to explore the frequency spectrum over time and analyze dynamic changes in brainwave frequencies.
Evaluate the complexity of EEG signals by computing entropy measures, such as Shannon Entropy, Approximate Entropy, and Sample Entropy.
The EEG data used in this project was acquired with the BITalino NeuroBIT Kit. Electrodes were placed following the international 10-20 system, specifically at Fp1 or Fp2 for brain activity measurement. The reference electrode was placed behind the ear.
Electrode positioning for EEG at Fp1: Measuring pins IN+/- (left) and reference (right).
- Clone the repository:
git clone https://github.com/Seba3995/EEG_web_app.git
- Install the required dependencies:
pip install -r requirements.txt
- Run the app:
streamlit run Home.py
EEG_Analysis_Platform/
│
├── components/ # Directory for component classes
│ ├── data_loader.py # Class for loading EEG data
│ ├── entropy_analyzer.py # Class for performing entropy analysis
│ ├── ui_elements.py # Class for displaying UI elements (e.g., logos)
│ ├── visualizer.py # Class for visualizing EEG signals and analysis results
│ ├── wavelet_analyzer.py # Class for performing wavelet-based frequency analysis
│
├── data/ # Directory for storing CSV EEG data files
│ └── eeg_data.csv # Example EEG data file (replace with your own data)
│
├── pages/ # Directory for different app functionalities
│ ├── 1_⚡_Visualización_EEG.py # Page for EEG signal visualization
│ ├── 2_📡_Análisis_Frecuencial.py# Page for frequency analysis using wavelets
│ ├── 3_📊_Analisis_Entropía.py # Page for entropy analysis
│
├── Home.py # Main landing page with tabbed navigation
├── requirements.txt # List of dependencies to install
└── README.md # Project documentation (this file)
This platform follows a component-based architecture where each functionality is encapsulated in its own class, ensuring modularity, scalability, and maintainability.
- EEGDataLoader: Handles loading EEG data from CSV files.
- EEGVisualizer: Provides functions to visualize EEG data and results.
- EntropyAnalyzer: Calculates various entropy metrics for EEG signals.
- EEGWaveletAnalyzer: Performs continuous wavelet transformation to analyze the frequency content of EEG signals.
- UIElements: Displays reusable UI elements like logos and headings.