...
/acquisition/timeseries/continuous/processor<*>/recording<**>processor<P>/recording<R>
./ancestry: ['TimeSeries', 'ElectricalSeries'] (text array attr)
...
./neurodata_type: 'TimeSeries' (text attr)
./source: processor name + number + subprocessor number if needed <P> (text attr)
./help: 'Stores acquired voltage data from extracellular recordings' (text attr)
...
./schema_id: 'openephys:extra_info/' (text attr)
./channel<****>channel<C>
./schema_id: 'openephys:<channel_info>/'
...
/acquisition/timeseries/spikes/electrode<***>/recording<**>electrode<E>/recording<R>
./ancestry: ['TimeSeries', 'SpikeEventSeries'] (text array attr)
...
./neurodata_type: 'TimeSeries' (text attr)
./source: processor name + number + subprocessor number if needed<P> (text attr)
./help: 'Snapshorts of spike events from data' (attr, text)
...
For writing messages, we use the NWB AnnotationSeries:
/acquisition/timeseries/messages/recording<**>/text<*****>events/text<T>/recording<R>
./ancestry: ['TimeSeries', 'AnnotationSeries'] (text array attr)
...
./neurodata_type: 'TimeSeries' (text attr)
./source: processor name + number + subprocessor number if needed<P> (text attr)
./help: 'Time-stamped annotations about an experiment' (attr, text)
...
/acquisition/timeseries/events/recording<**>/ttl<*****>ttl<T>/recording<R>
./ancestry: ['TimeSeries', 'IntervalSeries', 'TTLSeries'] (text array attr)
...
./neurodata_type: 'TimeSeries' (text attr)
./source: processor name + number + subprocessor number if neededsource: <P> (text attr)
./help: 'Stores the start and stop times for TTL events' (attr, text)
...
/acquisition/timeseries/events/recording<**>/binary<*****>binary<T>/recording<R>
./ancestry: ['TimeSeries', 'BinarySeries'] (text array attr)
...
./neurodata_type: 'TimeSeries' (text attr)
./source: processor name + number + subprocessor number if needed <P> (text attr)
./help: 'Stores arbitrary binary data' (attr, text)
./data: N events x M lenthlength of data, any kind of numeric type.
...
./identifier: metadata identifier (text attr)
* P = processorID_subprocessorID (e.g., 101_1, 102_1, etc.; if there is only one subprocessor, the subprocessor ID is omitted)
** R = index of recording (1, 2, 3, etc.)*
** E = index of electrode (1, 2, 3, etc.)
****C = index of recorded channel
*****T = index of recorded event of the specific type
...