A modular framework for simulated and experimental EMG dataset generation, motor unit decomposition algorithm benchmarking, and performance evaluation
Project description
MUniverse: Benchmarking Motor Unit Decomposition Algorithms
MUniverse is a modular framework for simulated and experimental EMG dataset generation, motor unit decomposition algorithm benchmarking, and performance evaluation. It integrates biomechanical simulation (via NeuroMotion), generative models (BioMime), standardized formats (e.g. BIDS/Croissant), and FAIR data hosting (Harvard Dataverse).
Features
- ๐ฌ Algorithm Benchmarking: Compare multiple motor unit decomposition algorithms (CBSS, SCD, Upperbound, AE)
- ๐ Dataset Generation: Generate simulated EMG datasets using NeuroMotion and experimental datasets
- ๐ FAIR Data: Access datasets through Harvard Dataverse with BIDS and Croissant format support
- ๐ง Containerized Workflows: Docker and Singularity support for reproducible algorithm execution
- ๐ Performance Evaluation: Comprehensive evaluation metrics and report card generation
- ๐ Tutorial Notebooks: Interactive Jupyter notebooks for dataset loading and algorithm usage
Installation
Requirements
- Python 3.11 or higher
- pip
Package Installation
MUniverse is distributed as a Python package. To set up the development environment:
- Clone the repository:
git clone https://github.com/dfarinagroup/muniverse.git
cd muniverse
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install the package:
# Install core dependencies
pip install -e .
# Install development dependencies (optional)
pip install -e ".[dev]"
Docker/Singularity Containers
For algorithm execution, Docker or Singularity containers are available. See the docker/ directory for container definitions.
Quick Start
Loading a Dataset
from muniverse.datasets import load_dataset
# Load a dataset from Harvard Dataverse
dataset = load_dataset("neuromotion-test", output_dir="./data")
Running Decomposition
from muniverse.algorithms import decompose_recording
# Run decomposition using CBSS algorithm
results, metadata = decompose_recording(
data="path/to/emg_data.edf",
method="cbss"
)
# Or use SCD algorithm (requires container)
results, metadata = decompose_recording(
data="path/to/emg_data.edf",
method="scd",
container="path/to/muniverse_scd.sif",
engine="singularity"
)
Available Datasets
All datasets are hosted on Harvard Dataverse and follow FAIR principles:
- Caillet et al. 2023 - DOI: 10.7910/DVN/F9GWIW
- Avrillon et al. 2024 - DOI: 10.7910/DVN/L9OQY7
- Grison et al. 2025 - DOI: 10.7910/DVN/ID1WNQ
- Neuromotion-Train - DOI: 10.7910/DVN/2UQHTP
- Neuromotion-Test - DOI: 10.7910/DVN/QYI336
- Hybrid-Tibialis - DOI: 10.7910/DVN/YHTGGA
Supported Algorithms
- CBSS - Convolutional Blind Source Separation
- SCD - Swarm Contrastive Decomposition (GitHub)
- Upperbound - Upper bound performance estimation
- AE - Autoencoder-based decomposition
Documentation (coming soon ๐ง)
- ๐ GitHub Pages Site - Project documentation and overview
- ๐ Tutorial Notebooks - Interactive examples and guides
- ๐ป Source Code - Repository and issue tracking
- ๐ Harvard Dataverse - Dataset access and metadata
Project Structure
muniverse/
โโโ src/ # Package source code
โ โโโ muniverse/
โ โโโ configs/ # Algorithm and dataset configurations
โ โโโ datasets/ # Dataset loading and simulation utilities
โ โโโ algorithms/ # Decomposition algorithms
โ โโโ evaluation/ # Performance evaluation
โ โโโ utils/ # Utility functions
โโโ notebooks/ # Tutorial notebooks
โโโ scripts/ # Utility scripts
โโโ docker/ # Docker container definitions
โโโ docs/ # GitHub Pages documentation (Coming soon!)
โโโ tests/ # Unit tests
โโโ pyproject.toml # Package configuration
โโโ README.md
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Contributors
Acknowledgments
- NeuroMotion - Biomechanical simulation framework (GitHub)
- Swarm-Contrastive-Decomposition - Decomposition algorithm (GitHub)
- Harvard Dataverse - FAIR data hosting platform
- BIDS - Brain Imaging Data Structure standard
Citation
If you use MUniverse in your research, please cite:
@inproceedings{NEURIPS2025_dcce2899,
author = {Mamidanna, Pranav and Klotz, Thomas and Chalatsis, Dimitrios and Grison, Agnese and Mendez Guerra, Irene and Ma, Shihan and Caillet, Arnault and Avrillon, Simon and Rohl\'{e}n, Robin and Farina, Dario},
booktitle = {Advances in Neural Information Processing Systems},
editor = {D. Belgrave and C. Zhang and H. Lin and R. Pascanu and P. Koniusz and M. Ghassemi and N. Chen},
pages = {},
publisher = {Curran Associates, Inc.},
title = {MUniverse: A Simulation and Benchmarking Suite for Motor Unit Decomposition},
url = {https://proceedings.neurips.cc/paper_files/paper/2025/file/dcce28990bf662c6b916c52cd7e975da-Paper-Datasets_and_Benchmarks_Track.pdf},
volume = {38},
year = {2025}
}
Contact
For questions, issues, or contributions, please:
- Open an issue on GitHub
- Contact the maintainers via email (see the Contributors section for author emails)
License
MUniverse is licensed under the GNU General Public License v3.0 (GPL-3.0).
Important Licensing Notes:
- This project uses NeuroMotion, which is licensed under GNU GPL v3.0. As a result, MUniverse is also licensed under GNU GPL v3.0 to comply with the copyleft requirements of the GPL license.
- This project also integrates with Swarm-Contrastive-Decomposition, which is licensed under Creative Commons Attribution-NonCommercial 4.0 International Public License.
See the LICENSE file for full details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file muniverse_emg-0.1.2.tar.gz.
File metadata
- Download URL: muniverse_emg-0.1.2.tar.gz
- Upload date:
- Size: 3.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4c1d92db29846f9567be9891863cdf7d1852a50e6d5003fd6ecd07d1111a434
|
|
| MD5 |
ccb19811bdb1e544d2ce58909a425617
|
|
| BLAKE2b-256 |
621d62aae7b4118373d486d6a141fbcff6f843e454e70912ac6944f2028213b0
|
File details
Details for the file muniverse_emg-0.1.2-py3-none-any.whl.
File metadata
- Download URL: muniverse_emg-0.1.2-py3-none-any.whl
- Upload date:
- Size: 105.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4923401a1411d119ecb1fe1f9728ac432aa0779f93cb93e11ef03a58d3f2aa23
|
|
| MD5 |
a927624b31add2215e0697fcecbda442
|
|
| BLAKE2b-256 |
0fd1c95863904474472254346f0e45dd2faf620c156d3eb28f360e52a2fb6ef2
|