Public Documentation
Documentation for exported functions and types for OpenEphysLoader.jl
OpenEphysLoader — Module.Module to read the binary data files created by the OpenEphys GUI
Provides array interfaces to file contents, without loading the entire file into memory
Array types
All array types are subtypes of the abstract type OEArray, and data from continuous files are subtypes of the abstract type OEContArray.
OpenEphysLoader.OEArray — Type.Abstract array for file-backed OpenEphys data.
All subtypes support a ready-only array interface and should be constructable with a single IOStream argument.
OpenEphysLoader.OEContArray — Type.Abstract array for file-backed continuous OpenEphys data.
Will throw CorruptedException if the data file has a corrupt OriginalHeader, is not the correct size for an .continuous file, or contains corrupt data blocks.
Subtype of abstract type OEArray are read only, and have with the following fields:
Fields
contfile ContinuousFile for the current file.
block buffer object for the data blocks in the file.
blockno the current block being access in the file.
check Bool to check each data block's validity.
The following array types can be used to access different aspects of the data:
OpenEphysLoader.SampleArray — Type.SampleArray([type::Type{T},] file::Union{IO, String}, [check::Bool, filepath::String])Subtype of OEContArray to provide file backed access to OpenEphys sample values. If type is a floating point type, then the sample value will be converted to voltage (in uV). Otherwise, the sample values will remain the raw ADC integer readings.
OpenEphysLoader.TimeArray — Type.TimeArray([type::Type{T},] file::Union{IO, String}, [check::Bool, filepath::String])Subtype of OEContArray to provide file backed access to OpenEphys time stamps. If type is a floating point type, then the time stamps will be converted to seconds. Otherwise, the time stamp will be the sample number.
OpenEphysLoader.RecNoArray — Type.RecNoArray([type::Type{T},] file::Union{IO, String}, [check::Bool, filepath::String])Subtype of OEContArray to provide file backed access to OpenEphys numbers.
Alternatively, all three aspects can be accessed simultaneously:
OpenEphysLoader.JointArray — Type.JointArray([type::Type{T},] file::Union{IO, String}, [check::Bool, filepath::String])Subtype of OEContArray to provide file backed access to OpenEphys data. Returns a tuple of type type, whose values represent (samplevalue, timestamp, recordingnumber). For a description of each, see SampleArray, TimeArray, and RecNoArray, respectively.
Information types
The following types provide information about OpenEphys files
OpenEphysLoader.OriginalHeader — Type.OriginalHeader(io::IOStream)Data in the header of binary OpenEphys files.
Will throw CorruptedException if header is corrupt, not an "OpenEphys" data format, or not version 0.4 of the data format.
Fields
format is the name of the data format.
version is the version number of the data format.
headerbytes is the number of bytes in the header.
description is a description of the header.
created is the date and time the file was created.
channel is the name of the channel used to acquire this data.
channeltype is the type of channel used to acquire this data.
samplerate is the sampling rate in Hz.
blocklength is the length in bytes of each block of data within the file.
buffersize is the size of the buffer used during acquisition, in bytes.
bitvolts are the Volts per ADC bit.
OpenEphysLoader.ContinuousFile — Type.ContinuousFile(io::IOStream)Type for an open continuous file.
Fields
io IOStream object.
filepath Path to underlying file, possibly empty
nsample number of samples in a file.
nblock number of data blocks in a file.
header OriginalHeader of the current file.
Recording metadata
Information about the recording session can be gathered from the settings.xml and Continuous_Data.openephys files by using the metadata function. The contents of the metadata files are contained in the OEExperMeta datatype.
OpenEphysLoader.metadata — Function.metadata([dirpath::AbstractString = pwd()]; settingsfile = "settings.xml", continuousmeta="Continuous_Data.openephys")Top-level function to read a directory and parse the settings.xml and Continuous_data.openeephys files.
returns a OEExperMeta.
OpenEphysLoader.OEExperMeta — Type.OEExperMeta{S<:AbstractString, T<:OEProcessor}(s::OESettings, exper::LightXML.XMLElement)Type to represent the Experiment metadata in Continuous_Data.openephys.
Construct with the OESettings from settings.xml and XML experiment element.
Fields
file_version VersionNumber continuous file format version
experiment_number Int experiment number
separate_files Bool true if files are separate
recordings Vector{OERecordingMeta{T}} Vector of each OERecordingMeta within the experiment
settings OESettings of the settings.xml file
OpenEphysLoader.OESettings — Type.OESettings{S<:AbstractString, T<:OEProcessor}(xdoc::LightXML.XMLDocument)Type to represent information in the settings.xml file made by the Open Ephys GUI.
Construct with the XML document for settings.xml
Fields
info OEInfo GUI info.
recording_chain OESignalTree Signal tree that leads to recording processors.
OpenEphysLoader.OEInfo — Type.OEInfo{T<:AbstractString}(info_e::LigthXML.XMLElement)Type to represent the info element in settings.xml made by Open Ephys.
Construct with the XML info element.
Fields
gui_version VersionNumber GUI version
plugin_api_version VersionNumber plugin API version. If gui_version is less than 0.4.0 then this will be 0
datetime DateTime date and time that settings.xml was made
os T Operating system of computer running GUI
machine T hostname of computer running GUI
OpenEphysLoader.OERecordingMeta — Type.OERecordingMeta{T<:OEProcessor}(settings::OESettings, rec_e::LightXML.XMLElement)Type that represents recording metadata in Continuous_Data.openephys file made by the Open Ephys GUI.
Construct with a OESettings from the settings.xml file, and the XML recording element of the Continuous_Data.openephys file.
Fields
number Int Recording number
samplerate Float64 Sampling rate
recording_processors Vector{T} list of recording processors
OpenEphysLoader.OEProcessor — Type.OEProcessor{T<:AbstractString}Abstract type for recording Open Ephys processors.
OERhythmProcessor{T<:AbstractString}(proc_e::LightXML.XMLElement)Type for Rhythm processor metadata, subtype of OEProcessor.
Construct with XML element for processor.
Fields
id Int of processor ID in GUI
lowcut Float64 of low pass filter cutoff on headstages
highcut Float64 of high pass filter cutoff on headstages
adcs_on Bool true if ADCs on
noiseslicer Bool true if noiseslicer used for ADC
ttl_fastsettle Bool true if TTL fast settle used
dac_ttl Bool true if dac ttl is on
dac_hpf Bool true if dac hpf is on
dsp_offset Bool true if headstage DSP offset removal is used
dsp_cutoff Float64 of DSP high pass filter cutoff
channels Vector{OEChannel{T}} list of OEChannel in Rhythm processor
OpenEphysLoader.OEChannel — Type.OEChannel{T<:AbstractString}Type for continuous recording channel metadata
Fields
name T of channel name
number Int of channel number in GUI
bitvolts Float64 of volts per ADC bit
position Vector{Int} vector of start position in the file for each recording's data.
filename T name of associated .continuous file
Exceptions
Exception type to indicate a malformed data file