Most of my research relies on custom written programs both for data acquisition and analysis. For the most part the programs I use to acquire data, be it freely swimming zebrafish behavior, head embedded behavior or imaging, are written in C#. The big advantage of C# is that it allows to write very fast and well structured code without the use of an intermediate interpreter. On the other hand C# has very good support for user interface design which makes writing programs with graphical user interfaces fairly straightforward.

For analysis code I heavily rely on Python because of its strong library support for numerical computation and modeling.

This page introduces some libraries or programs which might be of more general interest.

ZebraTrack

ZebraTrack is a program for online tracking of larval zebrafish at high framerates. It provides a user interface to run experiments as well as a flexible design to allow definition of arbitrary open- and closed- loop experiments.

ZebraTrack

ZebraTrack

RegionSelector

RegionSelector is a python and qt5 based program, tested on OsX and Windows, to annotate regions in 3D image stacks.
The program supports named polygon regions with an arbitrary number of vertices. Regions can be propagated between adjacent slices for faster annotation and can be saved to and loaded from simply structured hdf5 files.

RegionSelector

RegionSelector user interface with a partially annotated zebrafish brain

MhAPI

MhAPI bundles code that makes it easier to write user-interface code, do simple image manipulations, track freely swimming and head embedded zebrafish as well as control stimuli.