Abstract
Laboratory behavioural tasks are an essential research tool. As questions asked of behaviour and brain activity become more sophisticated, the ability to specify and run richly structured tasks becomes more important. An increasing focus on reproducibility also necessitates accurate communication of task logic to other researchers. To these ends we developed pyControl, a system of open source hardware and software for controlling behavioural experiments comprising; a simple yet flexible Python-based syntax for specifying tasks as extended state machines, hardware modules for building behavioural setups, and a graphical user interface designed for efficiently running high throughput experiments on many setups in parallel, all with extensive online documentation. These tools make it quicker, easier and cheaper to implement rich behavioural tasks at scale. As important, pyControl facilitates communication and reproducibility of behavioural experiments through a highly readable task definition syntax and self-documenting features.
Resources Documentation: https://pycontrol.readthedocs.io
Repositories: https://github.com/pyControl
User support: https://groups.google.com/g/pycontrol
Competing Interest Statement
T.A. has a consulting contract with Open Ephys Production Site who sell assembled pyControl hardware. The other authors have no competing interests to report.