an open-source, integrated system for stimulation, tracking and closed-loop behavioral experiments¶
We present Stytra, a flexible, open-source software package, written in Python and designed to cover all the general requirements involved in larval zebrafish behavioral experiments. It provides timed stimulus presentation, interfacing with external devices and simultaneous real-time tracking of behavioral parameters such as position, orientation, tail and eye motion in both freely-swimming and head-restrained preparations. Stytra logs all recorded quantities, metadata, and code version in standardized formats to allow full provenance tracking, from data acquisition through analysis to publication. The package is modular and expandable for different experimental protocols and setups. Current releases can be found at https://github.com/portugueslab/stytra. We also provide complete documentation with examples for extending the package to new stimuli and hardware, as well as a schema and parts list for behavioral setups. We showcase Stytra by reproducing previously published behavioral protocols in both head-restrained and freely-swimming larvae. We also demonstrate the use of the software in the context of a calcium imaging experiment, where it interfaces with other acquisition devices. Our aims are to enable more laboratories to easily implement behavioral experiments, as well as to provide a platform for sharing stimulus protocols that permits easy reproduction of experiments and straightforward validation. Finally, we demonstrate how Stytra can serve as a platform to design behavioral experiments involving tracking or visual stimulation with other animals and provide an example integration with the DeepLabCut neural network-based tracking method.
If you are using Stytra for your own research, please cite us!
If you encounter any issues, please report them here.
- The structure of Stytra
- Image acquisition and tracking
- Closed-loop stimuli design
- Synchronizing stimulation with data acquisition
- Hardware description
- Comparison with existing software and limitations
- Experiment replication
- Designing and running experiments
- User interface
- Tracking configuration
- Configuring a computer for Stytra experiments
- Coordinate systems in Stytra
- Offline use of Stytra
- Module description
- Implementation of image processing pipelines
- Triggering a Stytra protocol
- Data and metadata saving
- Parameters in stytra
- Process status messages