Ephyr
Ephyr is a lightweight yet powerful environment for labelling electrophysiological data. It combines an adaptive interface with intelligent performance scaling to match your machine’s resources, ensuring stable real-time operation even under heavy loads.
Fully open-source and built in Python, the platform provides a flexible API for post-annotation data access. Its add-on architecture lets you extend functionality seamlessly without modifying the core codebase.
| ECoG + Probe + Stimulus | HD MEA + GCAMP | Patch clamp with multiple sweeps |
|---|---|---|
Documentation: https://ephyr.readthedocs.io/
Citation
Software
If you use this application in your research, please cite the software itself using the Zenodo DOI:
Kireev, A., & Suchkov, D. (2026). Ephyr: an open-source platform for visualizing and labeling multimodal electrophysiological data (Version 1.0.5). Zenodo. https://doi.org/10.5281/zenodo.21719977
Article (Coming Soon)
A peer-reviewed article describing this application is currently in preparation.
We kindly ask that you consider citing it once it is published.
The official reference and DOI will be updated here and in the CITATION.cff file upon publication.
License
Copyright (C) 2026 Life Improvement by Future Technologies (LIFT).
This project is licensed under the GNU General Public License v3.0 — see the LICENSE and COPYRIGHT files for details.
Development
Contributions are welcome via pull requests. To contribute:
- Fork the repository.
- Create a branch for your change.
- Make your changes and commit them using the commit message convention below.
- Open a pull request against the main branch.
Please keep pull requests focused and describe the motivation, changes, and testing performed.
Commit message convention
This project follows Conventional Commits. Use one of the following prefixes in your commit messages.
Core Conventional Commits types:
| Type | Meaning | When to use | Example |
|---|---|---|---|
feat |
New feature | Adds new functionality | feat: add dark mode |
fix |
Bug fix | Fixes incorrect behavior | fix: handle null user ID |
docs |
Documentation | README, comments, guides only | docs: update install steps |
style |
Code style/formatting | Whitespace, formatting, semicolons — no logic change | style: format with Prettier |
refactor |
Refactoring | Code change that neither fixes a bug nor adds a feature | refactor: simplify validation logic |
perf |
Performance | Improves speed or memory usage | perf: cache user lookup |
test |
Tests | Add or fix tests | test: add parser edge cases |
build |
Build system/dependencies | Build tooling, bundler, package manager, external deps | build: upgrade webpack to v5 |
ci |
Continuous integration | CI config/scripts, GitHub Actions, GitLab CI, Travis | ci: add test workflow |
chore |
Maintenance | Routine tasks not touching src or tests | chore: update .gitignore |
revert |
Revert | Reverts a previous commit | revert: feat: add dark mode |
Example commit messages:
feat: add support for EDF+ files
fix(ui): prevent crash when no channel is selected
docs: update installation instructions
Breaking changes can be marked with ! after the type or scope, or with a BREAKING CHANGE: footer:
feat!: drop Python 3.9 support
fix(api)!: change response format
Changelog
To generate CHANGELOG.md use:
changelog-maestro --template devtools/changelog.md.j2
Metadata
Release files for ephyr 1.0.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ephyr-1.0.16.tar.gz | 309.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ephyr-1.0.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 659.0 kB
Release files / ephyr-1.0.16.tar.gz
| Download URL | ephyr-1.0.16.tar.gz |
|---|---|
| Size | 309.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f40244442619b08ad3bf4c5f6a11e579de7e3311afe73abaecaa7e6c2c7d67e9
|
|
BLAKE2b-256 checksum How to use checksums |
7f1f21acba4b82ddfbf7d3e2ae6984ff616a08dd888fbf4bfa03e132df033bc9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.11.10
|
Release files / ephyr-1.0.16-py3-none-any.whl
| Download URL | ephyr-1.0.16-py3-none-any.whl |
|---|---|
| Size | 349.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ef81f9237541b028ff3026325807c71eaa5eec1ccc7af6a1ab27e2de1204933
|
|
BLAKE2b-256 checksum How to use checksums |
1fa700003837b424c05b7aecab1d95151b3a1984f2fc42a0de223d7acf8d9609
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.11.10
|