open-ephys-matlab-tools

Matlab code for interacting with the Open Ephys GUI.
364 Downloads
Updated 22 Jun 2023

Open Ephys Matlab Tools

Overview

This repository is meant to centralize and standardize Matlab-specific tools for interacting with the Open Ephys GUI.

It consists of three modules:

  1. analysis - loads data in every format supported by the GUI, using a common interface

  2. control - allows a Matlab process to control the GUI, locally or over a network connection

  3. streaming - (under development) receives data from the GUI for real-time analysis and visualization in Matlab

Installation

Latest version always available for download:

View open-ephys-matlab-tools on File Exchange

All scripts and classes are available in the open-ephys directory. Make sure the open-ephys directory and the data to be analyzed are both on the Matlab search path.

See the control module README file for how to setup zmq with Matlab.

Using the OpenEphysHTTPServer class is recommended for remote control of the GUI in v0.6+.

Usage

Example scripts are included in the examples directory. The following sections provide a brief overview of the functionality of each module.

analysis

directory = '/path/to/data/2020-11-10_09-28-30' % for example

session = Session(directory) 

If the directory contains data from one more Record Nodes (GUI version 0.5+), the session object will contain a list of RecordNodes, accessible via session.recordNodes[N], where N = 1, 2, 3,, etc.

If your directory just contains data (any GUI version), individual recordings can be accessed via session.recordings. The format of the recordings will be detected automatically as either Binary, Open Ephys, NWB 2.0.

(KWIK is no longer supported)

Each recording object has the following fields:

  • continuous : continuous data for each subprocessor in the recording
  • spikes : spikes for each electrode group
  • events : Pandas DataFrame Matlab analog of event times and metadata
  • messages : text messages sent to the GUI during recording

More details about continuous, spikes, and events objects can be found in the analysis module README file.

control

host = '127.0.0.1' % IP address of the computer running Open Ephys
port = 37497 % EPHYS on a phone keypad 

gui = OpenEphysHTTPServer(host, port)

gui.acquire() % start acquisition
gui.record() % start recording
gui.idle() % stop recording and/or acquisition
gui.quit() % quit the GUI

See all API endpoints in the control module README file.

streaming

(coming soon)

Contributing

This code base is under active development, and we welcome bug reports, feature requests, and external contributions. If you're working on an extension that you think would be useful to the community, don't hesitate to submit an issue.

Cite As

Pavel Kulik (2024). open-ephys-matlab-tools (https://github.com/open-ephys/open-ephys-matlab-tools/releases/tag/v1.3.0), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Electrophysiology in Help Center and MATLAB Answers
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

examples

open_ephys/analysis

open_ephys/analysis/formats/BinaryRecording

open_ephys/analysis/formats/NwbRecording

open_ephys/analysis/formats/OpenEphysRecording

open_ephys/analysis/formats/helpers

open_ephys/control

open_ephys/control/matlab-zmq

open_ephys/control/matlab-zmq/examples

open_ephys/control/matlab-zmq/lib/+zmq/+core

open_ephys/control/matlab-zmq/lib/+zmq/@Context

open_ephys/control/matlab-zmq/lib/+zmq/@Socket

open_ephys/control/matlab-zmq/tests

open_ephys/control/matlab-zmq/tests/support

Version Published Release Notes
1.3.0.0

See release notes for this release on GitHub: https://github.com/open-ephys/open-ephys-matlab-tools/releases/tag/v1.3.0

1.0.2.0

See release notes for this release on GitHub: https://github.com/open-ephys/open-ephys-matlab-tools/releases/tag/v1.0.2

1.0.1.0

See release notes for this release on GitHub: https://github.com/open-ephys/open-ephys-matlab-tools/releases/tag/v1.0.1

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.