Skip to content

Interactive web application developed with Streamlit to visualize and analyze EEG (Electroencephalography) signals. It allows uploading and processing EEG data to analyze complexity and entropy.

License

Notifications You must be signed in to change notification settings

Seba3995/EEG_web_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the EEG Analysis Platform! 🧠⚡

This repository contains interactive EEG analysis web application, an easy-to-use tool to visualize and analyze EEG signals using complexity and entropy.

Streamlit Plotly Pandas NumPy SciPy PyWavelets NeuroKit2

The main functionalities of the platform at the moment are:

  • Visualization of EEG signals
  • Frequency analysis using wavelets
  • Entropy analysis.

Features ✨

⚡ EEG Visualization

Load and visualize EEG signals from the Fp1 and Fp2 channels, allowing you to analyze the signals over specific time intervals.

📡 Frequency Analysis

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.

📊 Entropy Analysis

Evaluate the complexity of EEG signals by computing entropy measures, such as Shannon Entropy, Approximate Entropy, and Sample Entropy.

EEG Signal Acquisition ⚙️

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

Electrode positioning for EEG at Fp1: Measuring pins IN+/- (left) and reference (right).

How to Use 🔧

  1. Clone the repository:
    git clone https://github.com/Seba3995/EEG_web_app.git
  2. Install the required dependencies:
    pip install -r requirements.txt
  3. Run the app:
    streamlit run Home.py

Project Structure

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)

Architecture Overview

This platform follows a component-based architecture where each functionality is encapsulated in its own class, ensuring modularity, scalability, and maintainability.

Main Components

  • 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.

Feel free to contribute, and let me know if you encounter any issues! 😄

About

Interactive web application developed with Streamlit to visualize and analyze EEG (Electroencephalography) signals. It allows uploading and processing EEG data to analyze complexity and entropy.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages