ethograph#

EthoGraph is a graphical user interface for visualizing and segmenting multimodal timeseries behavioural data. It builds upon a number of open-source libraries to load and quickly render video and pose files, audio and spectrograms, ephys recordings in various formats, and arbitrary multi-dimensional timeseries — all on one shared timeline.

Note this GUI is still in development. I welcome people testing it and providing feedback!

Quickstart#

Data compatibility helper

Are you working with NWB files?
.nwb files are self-contained — EthoGraph loads them directly.
Please select an option.
What do you want to visualise?
Select everything that applies.
Multiple cameras?
i.e. several video or pose files recorded simultaneously.
How is your audio stored?
All three work with drag & drop; separate files per mic come with a caveat.
Have you already labelled this audio elsewhere?
Existing annotations can be imported rather than redone.
Please answer every question above.
Does your data have a trial structure?
Yes if you have separate files per trial, or one continuous recording in which you want to define trial windows.
Please select an option.

Installation#

EthoGraph is installed with uv, a fast Python package manager:

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

Works from both PowerShell and Command Prompt; winget is built into Windows 11.

Then install the GUI as a standalone tool — one command, no environment to create or activate:

uv tool install --python 3.12 "ethograph[gui,audio]"

To open the GUI, run:

ethograph check # Linux only : Check for missing libraries
ethograph launch

Note

For installing into a dedicated virtual environment, optional extras (segmentation models, DANDI downloads, …) and troubleshooting, see the installation guide.

After launching, there are some example datasets you can explore the GUI. To learn more about all the functionalities, I recommend the user manual.

Support#

Open-source projects EthoGraph depends on

EthoGraph is built on top of a number of open-source projects: PyAV [PyAV contributors, n.d.], audioio [Benda, n.d.], Neo [Garcia et al., 2014], crowsetta [Nicholson, 2023], Neurodata Without Borders [Rübel et al., 2022], xarray [Hoyer and Hamman, 2017], pynapple [Viejo et al., 2023], movement [Sirmpilatze et al., n.d.], phy [Rossant et al., 2016], PyQtGraph [PyQtGraph contributors, n.d.], and pygfx [Klein and others, n.d.] (via pynaviz [pynapple-org, n.d.]). The full list is on the references page.