/Rigbox

A MATLAB toolbox for running behavioral neuroscience experiments and managing data

Primary LanguageHTMLApache License 2.0Apache-2.0


Rigbox

Coverage badge Build status badge

Rigbox is a high-performance, open-source MATLAB toolbox for managing behavioral neuroscience experiments. Rigbox's main goals are to simplify hardware/software interfacing, behavioral task design, and visual and auditory stimuli presentation. Additionally, Rigbox can time-align datastreams from multiple sources and communicate with a remote database to manage experiment data. Rigbox is mostly object-oriented and highly modular, which simplifies the process of designing experiments. For detailed information, see the publication.

Requirements

For exploring Rigbox's features and running test experiments, Rigbox only needs to be installed on a single computer.

For running experiments, Rigbox should be installed on two computers: one computer (which we refer to as the "Stimulus Computer" or "SC") communicates with an experiment rig's hardware and presents stimuli, and the other computer (which we refer to as the "Master Computer" or "MC") runs a GUI that the experimenter can use to start, monitor, parameterize, and stop the experiment.

Hardware

Below are the minimum computer hardware specs:

  • CPU: 4 logical processors @ 3.0 GHz base speed (e.g. Intel Core i5-6500)
  • RAM: DDR4 16 GB @ 2133 MHz (e.g. Corsair Vengeance 16 GB)
  • GPU: 2 GB @ 1000 MHz base and memory speed (e.g. NVIDIA Quadro P400)

For most experiments, typical, contemporary, factory-built desktops running Windows 10 with dedicated graphics cards should suffice. Specific requirements of a SC will depend on the complexity of the experiment. For example, running an audio-visual integration task on multiple screens will require quality graphics and sound cards. SCs may additionally require an i/o device to communicate with external rig hardware, of which currently only National Instruments Data Acquisition Devices (NI-DAQs, e.g. NI-DAQ USB 6211) are supported.

Software

Below are the minimum computer software dependencies that must be installed before installing Rigbox:

Similar to the hardware requirements, software requirements for a SC will depend on the experiment: if acquiring data through a NI-DAQ, the SC will additionally require the MATLAB NI-DAQmx support package.

Installation

Before starting, ensure you have read and installed the above requirements.

Below we provide brief instructions for installing Rigbox via Git. For a detailed installation guide, including installing Rigbox's software dependencies, see here.

  1. Clone the repository from GitHub. In your git terminal, run:
git clone --recurse-submodules https://github.com/cortex-lab/Rigbox
  1. Add all required Rigbox folders and functions to your MATLAB path. In MATLAB, navigate to the Rigbox root directory (where Rigbox was cloned), and run: addRigboxPaths(), OR addRigboxPaths('SavePaths', false) if you don't want to save the paths for future MATLAB sessions. (Note: Do not manually add all Rigbox folders and subfolders to the paths.)

Getting started

Rigbox uses the Signals framework for programatically designing and running behavioral tasks. See the Signals docs for more information on Signals and how to run example test experiments on a single computer via Rigbox's +eui/SignalsTest.m GUI.

(The above is an example of running the signals/docs/examples/exp defs/advancedChoiceWorld.m file in the +eui/SignalsTest.m GUI)

To run the example experiments from the Rigbox paper, see Running Paper Examples.

Online documentation, including detailed set-up and usage guides for running experiments on a MC and SC, can be found at cortex-lab.github.io/Rigbox.

Updating the code

With Git it's very easy to keep the code up-to-date. We strongly recommend regularly updating Rigbox and its submodules by running the following git command (within the Rigbox directory):

git pull --recurse-submodules

Contributing

If you experience a bug or have a feature request, please report it via github Issues. For details on contributing code and our code of conduct, please see our contributing page.

Authors & Accreditation

Rigbox was created by Chris Burgess in 2013, initially developed to probe mouse behavior for the Steering Wheel Setup. It is now maintained and developed by Miles Wells (miles.wells@ucl.ac.uk), Jai Bhagat (j.bhagat@ucl.ac.uk) and a number of others at CortexLab. See also the full list of contributors.

Please cite the Rigbox publication appropriately in publications which use Rigbox to run behavioral tasks and/or acquire data.

Acknowledgements