Skip to main content

Welcome to MyoGen Logo

The modular and extensible simulation toolkit for neurophysiology

Documentation Python 3.12+ Version

Installation • Documentation • Examples • How to Cite

Overview

MyoGen is a modular and extensible neuromuscular simulation framework for generating physiologically grounded motor-unit activity, muscle force, and surface EMG signals.

It supports end-to-end modeling of the neuromuscular pathway, from descending neural drive and spinal motor neuron dynamics to muscle activation and bioelectric signal formation at the electrode level. MyoGen is designed for algorithm validation, hypothesis-driven research, and education, providing configurable building blocks that can be independently combined and extended.

Highlights

🧬 Biophysically inspired neuron models — NEURON-based motor neurons with validated calcium dynamics and membrane properties

🎯 Everything is inspectable — Complete access to every motor unit, spike time, fiber location etc. for rigorous algorithm testing

⚡️ Vectorized & parallel — Multi-core CPU processing with NumPy/Numba vectorization for fast computation

🔬 End-to-end simulation — From motor unit recruitment to high-density surface EMG in a single framework

📊 Reproducible science — Deterministic random seeds and standardized Neo Block outputs for exact replication

📦 NWB export — Optional export to Neurodata Without Borders format for data sharing via DANDI

🧰 Comprehensive toolkit — Surface EMG, intramuscular EMG, force generation, and spinal network modeling

Installation

Requires Python 3.12+ — Check your version with python --version

System Requirements

Platform Before Installing MyoGen
Windows NEURON 8.2.7 - Download, run installer, select "Add to PATH"
Linux sudo apt install libopenmpi-dev (Ubuntu/Debian) or sudo dnf install openmpi-devel (Fedora)
macOS brew install open-mpi

Step 1: Install uv (Package Manager)

We use uv - a fast Python package manager. Install it first:

Windows (open PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Linux/macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh

After installing, restart your terminal (close and reopen it).


Step 2: Create a New Project

Open a terminal and navigate to where you want your project:

# Create a new folder for your project
mkdir my_emg_project
cd my_emg_project

# Initialize a Python project
uv init

# Add MyoGen to your project
uv add myogen

That's it! MyoGen is now installed and ready to use.


Step 3: Verify Installation

Create a test file to make sure everything works:

# Create a test script
uv run python -c "from myogen import simulator; print('MyoGen installed successfully!')"

If you see MyoGen installed successfully! - you're all set!


Alternative: pip install

If you prefer pip over uv:

pip install myogen

For Developers (From Source)

git clone https://github.com/NsquaredLab/MyoGen.git
cd MyoGen
uv sync
uv run poe setup_myogen

Optional: GPU Acceleration

For 5-10× faster convolutions (requires NVIDIA GPU):

uv add cupy-cuda12x

Documentation

📖 Read the full documentation

  • User Guide — Working with simulation outputs
  • API Reference — Complete class documentation
  • Examples — Step-by-step tutorials from recruitment to EMG

How to Cite

If you use MyoGen in your research, please cite:

@article{simpetru_molinari_2026_myogen,
  title   = {MyoGen: Unified Biophysical Modeling of Human Neuromotor Activity and Resulting Signals},
  author  = {S{\^i}mpetru, Raul C. and Molinari, Ricardo G. and Rohlf, Devon R. and
             Batichotti, Rebeka L. and Watanabe, Renato N. and
             Elias, Leonardo A. and Del Vecchio, Alessandro},
  journal = {bioRxiv},
  note    = {preprint},
  year    = {2026},
  doi     = {10.64898/2026.01.01.697284},
  url     = {https://www.biorxiv.org/content/10.64898/2026.01.01.697284}
}

Contributing

Contributions welcome! See issues if you want to add a feature or fix a bug.

Contributors

MyoGen is authored by Raul C. Sîmpetru and Ricardo G. Molinari. It is a joint project of the Nsquared Lab (Neuromuscular Physiology and Neural Interfacing Laboratory) at FAU Erlangen-Nürnberg, the NER Lab (Neural Engineering Research Laboratory) at the University of Campinas, and the BMClab (Biomechanics and Motor Control Laboratory) at the Federal University of ABC.

Thanks goes to these wonderful people (emoji key):

All Contributors

Raul C. Sîmpetru
Raul C. Sîmpetru

💻 🤔 🚧 📆 🔬
Ricardo G. Molinari
Ricardo G. Molinari

🤔 🚧 🔬
Devon R. Rohlf
Devon R. Rohlf

💻 🚧 🔬
Renato N. Watanabe
Renato N. Watanabe

💻 🤔 🧑‍🏫 🔬
Alessandro Del Vecchio
Alessandro Del Vecchio

🤔 🧑‍🏫 🔬
Leonardo A. Elias
Leonardo A. Elias

🤔 🧑‍🏫 🔬
João Bittar
João Bittar

🐛 🤔
BraveUnicorn
BraveUnicorn

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MyoGen is AGPL licensed. See LICENSE for details.

Metadata

Release files for MyoGen 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MyoGen 0.12.0
File Size Uploaded Provenance
myogen-0.12.0.tar.gz 4.0 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for MyoGen 0.12.0
File
myogen-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
myogen-0.12.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
myogen-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
myogen-0.12.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details

Total release size: 26.9 MB

Release files / myogen-0.12.0.tar.gz

Download URL myogen-0.12.0.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
4b7d442eff13dc0c67b1886b872e1509131a9062d551aadf603d81f4165ac9b0
BLAKE2b-256 checksum
How to use checksums
2719de1f8173e585a59d66523fda4af48722e08ae40b6d8cefb7ee006a8797bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / myogen-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL myogen-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 6.7 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
21d86632a261c4bbb2baa7bc1dd9c044424f0b6d03c69615fc12373fcd588ffd
BLAKE2b-256 checksum
How to use checksums
33536a26de6f2c799f7bc9612debfb440db93959ba07a3878337eeb57f9c4c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / myogen-0.12.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL myogen-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c755db4cc0746a7ecec23475db4bc2bc7ad2b57dd248afe21b3241e4cdd2cc8e
BLAKE2b-256 checksum
How to use checksums
8fb3ebfa40c5698c3907987227e88031d1f9d0cf937f2056c0a63b48a4745336
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / myogen-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL myogen-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 6.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
198402bfcc57d13b4c046d1ae25259caf396da2788441892baaee5acea4ed1c1
BLAKE2b-256 checksum
How to use checksums
6e69c8d43cef221dda74db4b7240836a23a44f36b0b4cc9e40557066816e5b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / myogen-0.12.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL myogen-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Size 4.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b2187f4f332a0ce2f302665731880c8a24701e2ddf45b94c1547dc9b2c38c342
BLAKE2b-256 checksum
How to use checksums
7df408f9fc97e4be2416073da55825173c970d28b46a4bc86774edcd62019e56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for MyoGen 0.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 5 files in this release have been uploaded with provenance metadata.

Select from 5 files

Attestation for myogen-0.12.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page