This repository is meant to centralize and standardize Matlab-specific tools for interacting with the Open Ephys GUI.
It consists of three modules:
-
analysis- loads data in every format supported by the GUI, using a common interface -
control- allows a Matlab process to control the GUI, locally or over a network connection -
streaming- (under development) receives data from the GUI for real-time analysis and visualization in Matlab
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.
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 1.0, or
KWIK.
Each recording object has the following fields:
continuous: continuous data for each subprocessor in the recordingspikes: spikes for each electrode groupevents: PandasDataFrameMatlab analog of event times and metadata
More details about continuous, spikes, and events objects can be found in the analysis module README file.
url = '10.128.50.10' % IP address of the computer running Open Ephys
port = 2000
gui = NetworkControl(url, port)
gui.startAcquisition %starts acquisition(coming soon)
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.
