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).
- π¬ 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
- Python 3.11 or higher
- pip
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]"For algorithm execution, Docker or Singularity containers are available. See the docker/ directory for container definitions.
from muniverse.datasets import load_dataset
# Load a dataset from Harvard Dataverse
dataset = load_dataset("neuromotion-test", output_dir="./data")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"
)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
- CBSS - Convolutional Blind Source Separation
- SCD - Swarm Contrastive Decomposition (GitHub)
- Upperbound - Upper bound performance estimation
- AE - Autoencoder-based decomposition
- π 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
muniverse/
βββ src/ # Package source code
β βββ muniverse/
β βββ datasets/ # Dataset loading utilities
β βββ algorithms/ # Decomposition algorithms
β βββ data_generation/# Data generation utilities
β βββ evaluation/ # Performance evaluation
β βββ utils/ # Utility functions
βββ notebooks/ # Tutorial notebooks
βββ scripts/ # Utility scripts
βββ configs/ # Algorithm and dataset configurations
βββ docker/ # Docker container definitions
βββ docs/ # GitHub Pages documentation
βββ tests/ # Unit tests
βββ pyproject.toml # Package configuration
βββ README.md
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
- NeuroMotion - Biomechanical simulation framework (GitHub)
- Swarm-Contrastive-Decomposition - Decomposition algorithm (GitHub)
- Harvard Dataverse - FAIR data hosting platform
- BIDS - Brain Imaging Data Structure standard
- Croissant - ML dataset metadata format
If you use MUniverse in your research, please cite:
@inproceedings{
mamidanna2025muniverse,
title={{MU}niverse: A Simulation and Benchmarking Suite for Motor Unit Decomposition},
author={Pranav Mamidanna and Thomas Klotz and Dimitrios Halatsis and Agnese Grison and Irene Mendez Guerra and Shihan Ma and Arnault H. Caillet and Simon Avrillon and Robin Rohl{\'e}n and Dario Farina},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2025},
url={https://openreview.net/forum?id=Slrp3l7aYo}
}For questions, issues, or contributions, please:
- Open an issue on GitHub
- Contact the maintainers via email (see
pyproject.tomlfor author emails)
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.
