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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etho_python-1.2.2.tar.gz (141.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

etho_python-1.2.2-py3-none-any.whl (100.9 kB view details)

Uploaded Python 3

File details

Details for the file etho_python-1.2.2.tar.gz.

File metadata

  • Download URL: etho_python-1.2.2.tar.gz
  • Upload date:
  • Size: 141.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.34.2

File hashes

Hashes for etho_python-1.2.2.tar.gz
Algorithm Hash digest
SHA256 f9489fa5a63be03fd78b4fa1c51c7c14d3a62f127a81c17cbc4060e0d0ac85f2
MD5 1464551a33ed1bdbbfa941075cffc94d
BLAKE2b-256 ef64e35175b514a9b1499ff5d1c73c312ab81d14979359a4c85d14a607bca6ec

See more details on using hashes here.

File details

Details for the file etho_python-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: etho_python-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 100.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.34.2

File hashes

Hashes for etho_python-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2e3866aa168403f8fced920d258c5f9f261572169713f21e9e21d47d4930f648
MD5 edf38d656576f45f073b81078a6161d1
BLAKE2b-256 0fcc84a6f04674f5a3159601b7aa0c397b86608835efe626e1d978ab2561d8b7

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

This release

1.2.2 This release

2 files

1.2.1

2 files

1.2

2 files

1.0

2 files

0.23.0

2 files

0.22.0

2 files

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