Skip to main content

Etho: A Python framework for coordinating stimuli, data acquisition, and hardware control in neuroscience experiments

Test Documentation License: MIT DOI

Etho is an open-source Python framework for running behavioral neuroscience experiments that require coordinated stimulus presentation, hardware control, data acquisition, and experiment logging.

It was developed for neuroscience experiments, where multiple hardware devices must operate together with reproducible timing. etho coordinates cameras, National Instruments DAQ hardware, acoustic and optogenetic stimulation, environmental sensors, and external imaging systems through a modular service-based architecture.

The software is designed to make experiments reproducible, configurable, and maintainable by separating:

  • experiment logic and hardware (protocol.yaml)
  • stimulus definitions (playlist.txt)
  • acquisition callbacks and logs

from the underlying device code.

See the documentation for details.

Platform support

etho is tested for behavioral acquisition rigs on Windows. The hardware stack depends on vendor SDKs, which may also work on macOS or Linux but have not been tested with etho. Development, unit tests, and documentation work can be done on macOS or Linux when hardware SDKs are not required.

Installation

Quick installation on a Windows rig from PowerShell:

conda create -n etho -c conda-forge -y python=3.14 uv pip git
conda activate etho
uv pip install etho-python
etho init

etho supports Python 3.10 through 3.14. The Python version to use depends on the hardware SDKs required by the rig. Check the Python versions supported by the required hardware SDKs before installation. For FLIR/Spinnaker, public downloads may list Python 3.10, but FLIR support can provide Python 3.14 bindings.

Some hardware backends require additional vendor SDKs, drivers, and pinned Python or package versions. See the full installation guide.

Usage

Etho can be controlled via a GUI on the Windows rig. Launch it from the activated PowerShell environment with:

conda activate etho
etho gui

Alternatively, experiments can be run from the terminal:

conda activate etho
etho run ".\protocol.yaml" ".\playlist.txt"

Data generated by etho can be inspected, annotated, and analyzed with xarray-behave.

Citation

A JOSS paper describing the software is in preparation. For now, if you use etho or components of it in your research, please check the Cite this repository button in the repository sidebar or cite:

Clemens, J. (2026). Etho: A Python framework for coordinating stimuli, data acquisition, and hardware control in neuroscience experiments. doi:10.5281/zenodo.20110619

The etho software has been used in the following publications:

  • Ravindran Nair, S., Palacios-Muñoz, A., Martineau, S., Nasr, M., & Clemens, J. (2026). Sex-specific behavioral feedback modulates sensorimotor processing and drives flexible social behavior. Nature Communications, 17, 4026. https://doi.org/10.1038/s41467-026-72057-9

  • Steinfath, E., Khalili, A., Stenger, M., Schultze, B. L., Nair, S. R., Alizadeh, K., & Clemens, J. (2025). A neural circuit for context-dependent multimodal signaling in Drosophila. Nature Communications, 16, 9472. https://doi.org/10.1038/s41467-025-64907-9

  • Palacios-Muñoz, A., & Clemens, J. (2025). Drosophila males integrate song and pheromones using context-specific strategies. BioRxiv. https://doi.org/10.1101/2025.07.25.666755

  • Vijendravarma, R. K., Narasimha, S., Steinfath, E., Clemens, J., & Leopold, P. (2022). Drosophila females have an acoustic preference for symmetric males. Proceedings of the National Academy of Sciences, 119(13), e2116136119. https://doi.org/10.1073/pnas.2116136119

Metadata

Release files for etho-python 1.2.6

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

Source distribution (sdist)

Source distribution for etho-python 1.2.6
File Size Uploaded Provenance
etho_python-1.2.6.tar.gz 139.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for etho-python 1.2.6
File Interpreter ABI Platform
etho_python-1.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 238.6 kB

Release files / etho_python-1.2.6.tar.gz

Download URL etho_python-1.2.6.tar.gz
Size 139.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cb76b73fab38d0f94fc018cf6f6114e4024f4483bc4078938d848e3bb09428f5
BLAKE2b-256 checksum
How to use checksums
10bbdf577c149aa0687f20e24d26a9f2c4fe76252d63f60974fa54dab09693b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release files / etho_python-1.2.6-py3-none-any.whl

Download URL etho_python-1.2.6-py3-none-any.whl
Size 98.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a96ba4c06b53a96d5d6d6c2ce118b8c8fad80a1fce92fb0e96538a01ce03610d
BLAKE2b-256 checksum
How to use checksums
a402ae783d337ed513291f5fe54f7f5911ac67308ec197b8dc868bfb914d3c8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Security for etho-python 1.2.6

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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