{"id":20493228,"url":"https://github.com/exios66/eeg-python-analysis","last_synced_at":"2026-02-02T20:33:02.377Z","repository":{"id":259385957,"uuid":"877044498","full_name":"Exios66/EEG-Python-Analysis","owner":"Exios66","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-24T06:41:33.000Z","size":1225,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T08:09:53.952Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://exios66.github.io/EEG-Python-Analysis/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Exios66.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-23T01:49:02.000Z","updated_at":"2025-01-24T12:21:39.000Z","dependencies_parsed_at":"2024-10-25T02:07:09.019Z","dependency_job_id":null,"html_url":"https://github.com/Exios66/EEG-Python-Analysis","commit_stats":null,"previous_names":["exios66/eeg-python-analysis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Exios66/EEG-Python-Analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exios66%2FEEG-Python-Analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exios66%2FEEG-Python-Analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exios66%2FEEG-Python-Analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exios66%2FEEG-Python-Analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Exios66","download_url":"https://codeload.github.com/Exios66/EEG-Python-Analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exios66%2FEEG-Python-Analysis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264040939,"owners_count":23548071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T17:33:57.349Z","updated_at":"2026-02-02T20:33:02.332Z","avatar_url":"https://github.com/Exios66.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EEG Visualization App\n\n![GitHub Pages](https://github.com/Exios66/EEG-Python-Analysis/actions/workflows/pages/pages-build-deployment/badge.svg)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)\n[![Node.js](https://img.shields.io/badge/node-14%2B-green.svg)](https://nodejs.org/)\n[![React](https://img.shields.io/badge/react-17.0%2B-61DAFB.svg?logo=react)](https://reactjs.org/)\n[![Flask](https://img.shields.io/badge/flask-2.0%2B-000000.svg?logo=flask)](https://flask.palletsprojects.com/)\n[![MNE](https://img.shields.io/badge/MNE-Python-blue.svg)](https://mne.tools/stable/index.html)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)\n\n## EEG Visualization App\n\n## Overview\n\nThe EEG Visualization App is a comprehensive, user-friendly platform that integrates EEG data analysis with real-time visualization. It is designed to provide researchers, clinicians, and developers with an intuitive interface to preprocess, analyze, and visualize EEG data. This application leverages the power of Python, Node.js, React, and Flask to create a seamless and efficient workflow for EEG signal processing, offering both backend and frontend functionalities.\n\n### Key Technologies:\n\n\t•\tPython 3.8+: Used for backend data processing and EEG analysis.\n\t•\tNode.js 14+: Enables the modern frontend and backend integration with real-time functionality.\n\t•\tReact 17.0+: Powers the dynamic and interactive user interface.\n\t•\tFlask 2.0+: Facilitates a lightweight and scalable backend server.\n\t•\tMNE-Python: A robust library for EEG processing, used for signal preprocessing, feature extraction, and artifact removal.\n\n### Features\n\n\t•\tAdvanced EEG Data Processing: Seamlessly process large-scale EEG datasets with various analysis methods, including artifact removal and feature extraction.\n\t•\tReal-Time Data Visualization: View live updates as EEG data is processed, offering a real-time perspective on data trends and findings.\n\t•\tInteractive Analysis Controls: Adjust processing parameters and visual settings directly from the interface, allowing users to explore the data interactively.\n\t•\tMulti-Format EEG Support: Upload and analyze EEG data from diverse file formats, such as .edf, .fif, and .set.\n\t•\tStatistical Analysis: Generate statistical summaries, including spectral analysis and temporal features, to extract meaningful insights.\n\t•\tWeb-Based Interface: A clean, responsive interface accessible through modern web browsers, requiring no additional software installations.\n\nSystem Requirements\n\nThe following components must be installed to run the EEG Visualization App:\n\nBackend Requirements:\n\n\t•\tPython: Version 3.8 or higher\n\t•\tFlask: Version 2.0 or higher\n\t•\tMNE-Python for EEG processing\n\nFrontend Requirements:\n\n\t•\tNode.js: Version 14 or higher\n\t•\tnpm: Version 6 or higher\n\t•\tReact: Version 17.0 or higher\n\nAdditional Tools:\n\n\t•\tModern web browser (Chrome, Firefox, Edge)\n\nInstallation\n\nFollow these steps to install and configure both the backend and frontend components.\n\nBackend Setup\n\n\t1.\tCreate a Python Virtual Environment:\n\t•\tA virtual environment isolates Python dependencies from the global environment, ensuring compatibility.\n\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n\n\t2.\tInstall Python Dependencies:\n\t•\tDependencies include Flask, MNE-Python, and other necessary libraries.\n\npip install -r requirements.txt\n\n\n\nFrontend Setup\n\n\t1.\tNavigate to the Frontend Directory:\n\t•\tMove to the frontend directory to set up the web interface.\n\ncd frontend\n\n\n\t2.\tInstall Node.js Dependencies:\n\t•\tInstall the required JavaScript libraries and packages for React.\n\nnpm install\n\n\n\nUsage\n\nThis section details how to run the application after setup.\n\nStarting the Backend Server\n\n\t1.\tActivate the Python Virtual Environment:\n\t•\tEnsure that the environment is active before starting the server.\n\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n\n\t2.\tRun the Flask Backend:\n\t•\tThis starts the server to handle EEG data processing requests.\n\npython EEG.py\n\n\t•\tThe backend server will run on: http://localhost:5000\n\nStarting the Frontend Application\n\n\t1.\tOpen a New Terminal for the Frontend:\n\t•\tThe frontend and backend should run in separate terminals.\n\ncd frontend\n\n\n\t2.\tStart the React Development Server:\n\nnpm start\n\n\t•\tThe frontend will be accessible via: http://localhost:3000\n\nAnalysis Pipeline\n\nThis section breaks down the EEG data analysis pipeline in the app:\n\n1. Data Loading:\n\n\t•\tSupports popular EEG formats such as .edf, .fif, and .set.\n\t•\tAutomatically detects file format and validates data integrity before processing.\n\n2. Preprocessing:\n\n\t•\tBandpass Filtering: Filters EEG signals within a configurable frequency range.\n\t•\tNotch Filtering: Removes power line noise (e.g., 50/60 Hz) to clean the signal.\n\t•\tBad Channel Detection: Automatically detects bad channels and replaces them with interpolated data.\n\t•\tArtifact Removal with ICA: Uses Independent Component Analysis (ICA) to eliminate artifacts such as eye movements.\n\n3. Feature Extraction:\n\n\t•\tSpectral Analysis: Calculates band powers (e.g., alpha, beta, theta waves).\n\t•\tTemporal Features: Extracts time-domain characteristics from the EEG signals.\n\t•\tConnectivity Metrics: Computes metrics such as coherence to assess the connection between different brain regions.\n\t•\tStatistical Measures: Provides basic and advanced statistical summaries of the processed EEG data.\n\n4. Visualization:\n\n\t•\tRaw Signal Plots: Visualize raw EEG signals before and after preprocessing.\n\t•\tSpectral Analysis Plots: Graphically represent power spectral densities.\n\t•\tInteractive Exploration: Zoom, pan, and select specific time ranges or channels for closer analysis.\n\t•\tReal-Time Updates: See the EEG signal processing results updated in real-time.\n\n### API Endpoints\n\nThe backend exposes REST API endpoints for interacting with the app programmatically.\n\nEndpoint: POST /api/process\n\n\t•\tDescription: Process uploaded EEG data and return the analysis results.\n\t•\tRequest Parameters:\n\t•\tfile_path: The path to the EEG file to be processed.\n\t•\tsettings: A JSON object containing user-defined processing parameters (e.g., filter settings, feature extraction options).\n\t•\tResponse:\n\t•\tA JSON object with the processed EEG data and feature extraction results.\n\n### Contributing\n\nWe welcome contributions from the community! To contribute:\n\n\t1.\tFork the Repository:\n\t•\tClone the repository to your GitHub account.\n\ngit clone https://github.com/Exios66/EEG-Python-Analysis.git\n\n\n\t2.\tCreate a Feature Branch:\n\t•\tWork on a new feature or bug fix within a dedicated branch.\n\ngit checkout -b feature-name\n\n\n\t3.\tCommit Your Changes:\n\t•\tEnsure your code is well-documented and tested.\n\ngit commit -m \"Add new feature\"\n\n\n\t4.\tPush to Your Branch:\n\ngit push origin feature-name\n\n\n\t5.\tCreate a Pull Request:\n\t•\tSubmit a Pull Request for review. Include a detailed description of your changes.\n\n### License\n\nThis project is licensed under the MIT License. For full details, see the LICENSE file.\n\n### Support\n\nFor any questions or issues, please open an issue on the GitHub repository, and we will respond promptly.\n\nAcknowledgments\n\nWe would like to thank the following libraries and frameworks that have been integral to the development of this project:\n\n\t•\tMNE Python: EEG processing library.\n\t•\tReact: Frontend framework.\n\t•\tChart.js: Visualization library.\n\t•\tFlask: Backend web framework.\n\t•\tMaterial-UI: Frontend component library for React.\n\n## Running Tests\n\n## Frontend Tests\n\nTo ensure that the React components are functioning correctly, use the following command to run the test suite:\n\n      npm run test\n\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.\n\n## Running Tests\n\n### Frontend Tests\nTo run the React component tests:\n\n```\nnpm run test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexios66%2Feeg-python-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexios66%2Feeg-python-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexios66%2Feeg-python-analysis/lists"}