Skip to main content

etho

Project description

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.

Installation

Quick installation:

uv venv --python 3.14
.venv\Scripts\activate
uv pip install etho-python

Some hardware backends require additional vendor SDKs and drivers and specific python versions. See the full installation guide.

Usage

Etho can be controlled via a GUI. Launch it with:

etho gui

Alternatively, experiments can be run from the terminal:

etho run protocol.yaml

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

Citation

If you use ethoearch, please cite:

TODO

A JOSS paper describing the software is in preparation.

The etho software has been used in the following publications:

  • 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

  • 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

  • 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

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

etho_python-1.0.tar.gz (90.4 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.0-py3-none-any.whl (86.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for etho_python-1.0.tar.gz
Algorithm Hash digest
SHA256 a863364678b5e0c93bf9012e7983b21d4d0893296787753581224b2b19ddda47
MD5 5739164b06d30aedb59ca318c2a00176
BLAKE2b-256 5614aeaf78853b4ed1dc9a3955164514e33ec53576ebcf6133be7b6d8348b406

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for etho_python-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f422a34a432ea0f90aaf2f8e8af35a00a07b3458d992e514ab8b48590279d5cb
MD5 350c293bea83badc77c3aaa394a7f2c1
BLAKE2b-256 c8c146976ce5ed58b7b18dc6d293ad3af0f1a55050fcc2728c24ec9c23d528ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page