{"id":24189416,"url":"https://github.com/okbalefthanded/pylpov","last_synced_at":"2026-03-03T21:01:19.231Z","repository":{"id":40657117,"uuid":"178729709","full_name":"okbalefthanded/pyLpov","owner":"okbalefthanded","description":"EEG signal Offline/Online processing toolbox ","archived":false,"fork":false,"pushed_at":"2024-03-30T21:35:34.000Z","size":133,"stargazers_count":4,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-21T12:42:21.278Z","etag":null,"topics":["brain-computer-interface","eeg","machine-learning","openvibe","python","signal-processing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/okbalefthanded.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2019-03-31T18:59:25.000Z","updated_at":"2025-09-05T04:46:27.000Z","dependencies_parsed_at":"2025-01-13T14:34:19.379Z","dependency_job_id":"dbde2a3b-ab21-4a31-8ce5-e1fbee221115","html_url":"https://github.com/okbalefthanded/pyLpov","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/okbalefthanded/pyLpov","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okbalefthanded%2FpyLpov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okbalefthanded%2FpyLpov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okbalefthanded%2FpyLpov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okbalefthanded%2FpyLpov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/okbalefthanded","download_url":"https://codeload.github.com/okbalefthanded/pyLpov/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okbalefthanded%2FpyLpov/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["brain-computer-interface","eeg","machine-learning","openvibe","python","signal-processing"],"created_at":"2025-01-13T14:29:34.965Z","updated_at":"2026-03-03T21:01:19.210Z","avatar_url":"https://github.com/okbalefthanded.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyLpov : python-LARESI-processing-OpenVibe \n\n- Accompanying [LARESI_BCI](https://github.com/okbalefthanded/Laresi_BCI) Python scripts for offline/online analysis and classification of EEG data in OpenVibe \n\n---\n\n### Version requirements\n- [OpenVibe \u003c= 3.0.0](http://openvibe.inria.fr/downloads/)\n- Python 3.7 and above \n\n---\n\n## Installation\n\n### Option 1 : build from source\nFirst, clone repo from github:\n\n```\ngit clone https://github.com/okbalefthanded/pyLpov.git\n```\nThen,  \n\n```\ncd pyLpov\n\npip install -r requirements.txt\n\npython setup.py install\n```\n---\n### Option 2 : using pip \n```\npip install git+https://github.com/okbalefthanded/pyLpov.git\n```\n---\n### CPU Inference Acceleration\nIn online processing with Deep Neural Networks, Keras/TensorFlow models are supported. When only CPU (Intel CPUs) is used for inference it is recommanded to install and use Intel's OpenVINO toolkit. \n\n[OpenVINO installation guide](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html)\n\n---\n## Usage\n\n### Offline processing\n#### - Feature engineering pipeline \nThe API is built in a way that provides automatic processing through the use of [YAML](https://wiki.python.org/moin/YAML) configuration files and [Scikit-learn](https://scikit-learn.org/stable/) classes : [Pipeline](https://scikit-learn.org/stable/modules/compose.html#pipeline)  and [Estimators](https://scikit-learn.org/stable/modules/generated/sklearn.base.BaseEstimator.html?highlight=estimator#sklearn.base.BaseEstimator) (inspired from the API of [MOABB](https://github.com/NeuroTechX/moabb))\n\nA configuration file specifies the pipline chain of operations from preprocessing to feature extractors to classifiers.\n\n#### Using CLI\nsee ```cmd_tuto.bat``` on how to set and execute the offline analysis, and follow ```sa_hybrid_train.py``` in pyLpov/scripts/standalone on how to set an automatice processing script.\n\n#### - End-To-End Deep Neural Networks\nTrained Keras models saved in H5 and TF2 SavedModl format are supported.\n\n### Online processing \n- Make sure the python scripting box is available in the OpenVibe Designer Scripting tab.\n- Add a python scripting box to the scenario.\n- Follow this tutorial for correct usage of python scripts [Python in Openvibe](http://openvibe.inria.fr/tutorial-using-python-with-openvibe/)\n- Add one of the online scripts from pyLpov/scripts/scenarios to your experiment scenario, for example use ```ssvep_py_online.py``` for SSVEP online detection.\n\n---\n## Methods available\n\nAs pyLpov API relies heavily on scikit-learn, any built-in classifier or regressor can be easily defined in the pipeline, the same goes for any 3rd-party methods developed with scikit-learn's estimators. Nevertheles we keep adding specific BCI methods, the following list shows the available methods so far:\n\n### Event-Related Potentials (ERP)\n- Downsample and vector concatenation.\n- [EPFL](http://infoscience.epfl.ch/record/101093) approach\n\n### Steady-State Visual Evoked Potentials (SSVEP) \n- CCA and [ITCCA](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0140703) \n- [MLR](https://ieeexplore.ieee.org/abstract/document/7389413/)\n---\n\n## Citation\n```\n@misc{bekhelifi2022fast,\n    title={Towards Fast Single-Trial Online ERP based Brain-Computer Interface using dry EEG electrodes and neural networks: a pilot study},\n    author={Okba Bekhelifi and Nasr-Eddine Berrached},\n    year={2022},\n    eprint={2211.10352},\n    archivePrefix={arXiv},\n    primaryClass={eess.SP}\n}\n```\n---\n\n## Acknowledgment\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokbalefthanded%2Fpylpov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fokbalefthanded%2Fpylpov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokbalefthanded%2Fpylpov/lists"}