Our laboratory produces freely available, open-source tools.


Neuropixels probes are next-generation electrodes that record the activity of hundreds of neurons in the brain. These probes are available at cost price.  They were developed through a collaboration funded by Howard Hughes Medical InstituteWellcome TrustGatsby Charitable Foundation, and Allen Institute for Brain Science. Our lab participated in their development and is part of the next round of development, for Neuropixels 2.0 probes.


We developed a powerful set of tools for controlling behavioral experiments. These tools are in a open-source package called Rigbox, written by Chris Burgess and refined by Miles Wells and Jai Bhagat (eNeuro, 2020). It uses a dataflow-style paradigm expressed in MATLAB to allow concise and intuitive specification of stimulus presentation, task structure, and control of data acquisition. For documentation and code, see the paper in eNeuro and the GitHub repository

Steering wheel 

Our laboratory developed a steering wheel setup to probe mouse behavior (Cell Reports, 2017). In this setup, a mouse indicates whether a visual stimulus appears to its left or to its right by turning a steering wheel with its front paws. The steering wheel is in turn coupled to the horizontal position of the visual stimulus, so that selecting a stimulus involves moving it to the center of the screen. To facilitate the deployment of this task to other laboratories, we provide instructions to build this steering wheel setup with components that are entirely off-the-shelf or 3D-printable. An advanced version of this setup is now in use by the International Brain Laboratory


Recordings with multisite probes such as Neuropixels, require a process of "spike sorting": detecting and clustering spikes obtained from multielectrode arrays, so that spikes are assigned to the correct neurons. For this purpose we use Kilosort, developed by Marius Pachitariu in our lab, and its successor Kilosort2, developed in Marius's own lab. The algorithm is described in a 2016 preprint in bioRxiv. It requires a desktop workstation with a MATLAB license and a consumer GPU. The code and installation instructions are in Github. To view and curate the results of Kilosort we use Phy, developed by Cyrille Rossant.


Another set of tools is devoted to the analysis of data from two-photon imaging: image registration, detection of neurons and other regions of interest, manual curation, and deconvolution of fluorescence traces to infer spike timing. For this analysis we use Suite2P,  a suite of tools developed by Marius Pachitariu. At its core is a clustering algorithm to find what pixels are correlated together and form a region of interest, complemented by additions to correct for neuropil contamination, avoid local minima, and maximize speed so it runs about as fast as real time data acquisition. The algorithm is described in a 2016 preprint in bioRxiv.  It requires a desktop workstation with a MATLAB license, and for faster processing, a consumer GPU. A GUI is included for manually vetting the regions of interest. The code and installation instructions are in the GitHub repository.  

Open Neurophysiology Environment

The open neurophysiology environment is a way to easily share data with other scientists in a standardized manner. It is not a file format, but a set of file naming conventions that allow others to know what is in your data files, and how to read it, without needing to read documentation. 

Flow cell

In the lab, we perform In Situ Sequencing (ISS), a highly multiplexable technique that enables mapping of individual RNA transcripts to the underlying tissue morphology. ISS typically relies on hundreds of barcoded, transcript-specific probes, each containing a unique combinatorial label. The barcodes are DNA sequences, which are read in a microscope using dye-conjugated probes that specifically hybridize to the barcodes. We use ISS to identify subtypes of neurons in brains of mice that we have previously imaged in vivo. To increase the number of distinguishable barcodes and hence transcripts,  we employ multiple rounds of imaging. In each round, the dyes of the preceding imaging round are removed (stripping) and probes for the new round are added (labeling). To ease this process we developed a flow cell that allows stripping and labelling of the specimen while it remains mounted under the microscope. We are sharing the design of the flow cell. It could be useful not only for ISS but also for spatially resolving in situ profiling of analytes (e.g. nucleic acids, proteins).