IMPORTANT: The Open Ephys GUI documentation has migrated to a new site – please visit https://open-ephys.github.io for the most up-to-date information.

The MATLAB Interface is designed to stream live data from Open Ephys to a MATLAB session on the same network. This plugin is still in early development stages and currently only supports streaming a single channel of data at a time.

 

Function

The MATLAB Interface currently streams a single channel of data from the Open Ephys GUI to a running MATLAB session. The streaming channel can be switched on the fly during acquisition. This is particularly useful when setting up experiments using high-channel count electrodes, such as Neuropixels probes, and running basic tests without having to build a separate Open Ephys plugin. Instead, only the MATLAB script needs to be modified to alter how the incoming data is processed. A MATLAB API along with examples is included with the source code. A MATLAB template class is included below:

classdef MyClass < GenericProcessor

    properties
        %define any variables you want to keep track of here (see examples)
    end

    methods 

        function self = MyClass(host, port)
            
            self = self@GenericProcessor(host, port);

            %Initialize any variables here (see examples)

            self.process();

        end

    end

    methods (Access = protected)

        function process(self)
            
            while (true) 

                process@GenericProcessor(self); 

                numSamples = self.dataIn.numSamplesFetched;
                
                data = self.dataIn.continuous(1:end);

                %Do whatever you want with the data here (see examples)

            end

        end

    end

end

Parameters saved

none for now.

Upgrades needed

Attribution

Developed and maintained by Pavel Kulik (pavel@open-ephys.org)