(1) Overview


VScope was written to enable the recording of all data from complex neuroscience experiments, involving both electrophysiology and multiple cameras, in one convenient software environment. VScope can be used to record image sequences from multiple cameras that view different areas of a preparation [1] (manuscript in preparation), or that image the same area in different spectral regions, e.g., for ratiometric imaging using FRET-based dyes (e.g., [2]). In our lab, we mainly use VScope in conjunction with voltage-sentive dyes (VSDs), but naturally, it can equally well be used with calcium dyes. VScope can be set up to automatically start trials at fixed intervals, which can be used for timed behavioral experiments and also for time-lapse imaging. VScope incorporates a basic scripting language that can be used to programmatically change acquisition parameters between trials.

In addition to data acquisition, VScope also facilitates preliminary data analysis within its graphical user interface. Users can define regions of interest (ROIs) on the acquired image sequences; VScope then extracts optical signals (ratiometric or simple) from those ROIs and can display those along with any simultaneously recorded electrophysiological signals (Figure 1). This is particularly useful as it enables the use of voltage-sensitive or calcium dye imaging to target specific neurons for subsequent intracellular recording [3]. VScope can also apply coherence analysis [4] to the optical traces, using either an optical or an electrophysiological signal as a reference, and display results either on a polar plot or as a color map overlaid on the camera images, while the preparation is still alive. To facilitate more in-depth data analysis, VScope comes with an extensive library of Matlab (The Mathworks, Natick, MA) functions (all of which are 100% compatible with Octave [5]). A typical workflow ends up looking like this:

Figure 1 

A screenshot from VScope (reproduced from its user guide). Top left: A frame from a VSD recording with overlaid ROIs. Top right: Neuronal signals. Top to bottom: optical trace from the selected ROI (blue trace; outlined in red on the left); an intracellular trace (black trace), and other selected optical traces extracted from the VSD recording. (The red trace is a copy of the blue trace, to allow scale comparison.) Bottom: Touch screen–optimized user interface for recording and analysis.

Many neuroscience experiments involve recording responses to stimuli. VScope can generate electrical stimuli in a variety of shapes natively and has also been extended to drive external stimulators and video displays [6] (manuscript in preparation). VScope’s scripting language makes it straightforward to setup experiments involving multiple trials at predermined intervals with parameters that may vary between trials.

Naturally, VScope can also be used for experiments that only involve electrophysiology (e.g., [7]), although other software (e.g., pClamp (Molecular Devices, Sunnyvale CA)) exists that is more specialized for that goal. Conversely, VScope can be used for experiments that only involve imaging. While most camera manufacturers either sell software for this purpose or provide it for free with their cameras (e.g., PVCam (Photometrics, Tucson AZ)), these programs typically do not offer online ratiometric analysis of fluorescence signals.

Implementation and architecture

VScope was written in C++ using the Qt framework (https://www.qt.io/). The distribution additionally includes a library of functions to handle VScope data files in Octave or Matlab.

Quality control

VScope has been in continuous development since 2008 and has been in daily use in our lab since early 2009. Although no formal test suite exists for VScope, its architecture is such that it is extremely unlikely to damage your data files. The correctness of its acquired electrical data has been verified by comparing with oscilloscope recordings; the correctness of its acquired optical data has been verified by recording scenes with known properties (a stopwatch and a microscope ruler). Built-in data analysis algorithms have been verified against Matlab implementations of the same algorithms.

(2) Availability

Project homepage

http://www.danielwagenaar.net/vscope.html. Please be sure to read the user guide, available at: https://zenodo.org/record/437901/files/userguide.pdf, which contains complete details on installation, including how to install required dependencies, as well as an example setup file for two-camera recording.

Operating system

VScope is fully compatible with Windows 10. (On 64-bit Windows, it runs as a 32-bit executable because of NI-DAQ issues). It is likely to work on older versions of Windows, provided its other dependencies can be met. VScope also runs under Linux, though only for data analysis. (Data acquisition regrettably cannot be supported due to lack of O.S. support by Photometrics and National Instruments). A binary package is available for Ubuntu 16.10; compilation from source is straightforward. At this time, no Mac OS version is available.

Programming language

The Octave/Matlab library that accompanies VScope is compatible with Octave 4.0 or later as well as Matlab R2013 or later.

Additional system requirements

For data acquisition, VScope requires one or more PVCam-compatible cameras and a National Instruments DAQ card. PVCam-compatible cameras include all cameras made by Photometrics (http://photometrics.com) and QImaging (http://qimaging.com) as well as many by Princeton Instruments (http://princetoninstruments.com).


VScope requires the PVCAM library (Photometrics/QImaging, version 3.3.1 or later), available at http://photometrics.com/support/software, as well as the NI-DAQmx library (National Instruments, version 16.0 or later), available through the “Download NI-DAQmx” link at http://ni.com/dataacquisition/nidaqmx.html. To compile VScope from source, you will need the Qt libraries (version 5.6 or later), available at https://www.qt.io/download/ as well as Cygwin (version 2.7 or later), available at https://www.cygwin.com/. Most users, however, will not need to compile VScope themselves, and will not need to download Qt or Cygwin.

List of contributors

Daniel Wagenaar wrote the software and is its current maintainer.

Software location


  • Name: Zenodo Research Archive
  • Title: VScope
  • Persistent identifier:https://doi.org/10.5281/zenodo.437901
  • Licence: GPL-3
  • Publisher: Daniel Wagenaar
  • Version published: 1.0.0
  • Date published: 3/27/2017

Code repository



(3) Reuse potential

Portions of the Octave/Matlab library that comes with VScope may have reuse potential. For instance, the “vscope_coherence” function can be used to perform coherence analysis on arbitrary data, not just recordings made with VScope. Since VScope is licensed under the GPL, anyone is free to reuse portions of the code in their own projects (under the conditions of the GPL, which are easy to satisfy in most academic contexts). If you are interested in contributing improvements to VScope, please contact the author at daw@caltech.edu or through http://danielwagenaar.net. No formal support mechanisms exist for VScope, but the author is interested in receiving bug reports and is committed to fixing bugs and adding requested features as time permits.