Throughout this entire documentation, it’s refered to a series of terms like Section or Datafile, which are intended to have specific meanings.
A permanent link to an object, similar to the URL. Every object in this context has a permalink. For example, a Datafile could have a permalink likehttps://portal.g-node.org/data/datafiles/3ABETEVKFI/
Every object has base 32 string ID of a length 10 (like 3ABETEVKFI), unique within the object type namespace, used to identify this object. It is also used in permalinks to access an object. There is also a “global” unique ID (guid) - a 40 symbols hash code (like c30fb5dee94e44930abc572e1b3e4847a0f51dd3), used to identify a certain version of the same object.
ePhys Objects are used to represent the recorded (raw) electrophysiological data in a flexible, but consistent way. ePhys Objects represent data structure with data as arrays of numerical values with associated mandatory attributes (units, sampling frequency, etc.). These objects are based on NEO data model (an original concept is described here ), we provide all descriptions down below for convenience. A good example explaining supported electrophisyology objects is described in the overview.
The following objects in the domain of electrophysiology are supported:
Every object serves a specific purpose to organize your electrophysiological data. Block mainly represents one experiment (or the whole data, recorded within one experiment). A Segment represents an experimental trial, a “time frame” within an experiment with unique experimental conditions. Blocks may contain several segments, like an experiment consists of several trials. A segment may contain AnalogSignal, Event or Epoch objects, which are used to organize recorded signals, single time events, or events with duration inside one experimental time-frame. Segment may also contain SpikeTrain objects to accommodate the spike data. For every block one may define a set of Recording Channels according to the experimental setup. These channels can be organized under a RecordingChannelGroup, to keep track of tethrodes. AnalogSignals can be linked to the appropriate RecordingChannels to make the dataset consistent. The whole NEO concept at its best is described here.
Having ePhys Objects is usually not enough to describe the experiment or even more the whole project. For other information, like the description of an Animal or a Stimuli, a set of Metadata objects is used.
In this context metadata is any information about an experiment, excluding the information, described using ePhys Objects. Our metadata concept is based on odML, which is essentially a flexible way to describe experimental parameters using Section (simple container) tree with Properties with Values (key-value pairs). Take a look on the example in the overview.
Data annotation is the process of assinging metadata to the data, when some special connection is required. It is needed basically in order to establish a connection between data and metadata for easy search and generic access. A good example could be a case with an experiment having stimulus changing its property (say, color for visual stimuli), when for every trial the appropriate stimulus color has to be indicated. In this case, data annotation means establishing a link between particular time segments (trials) and particular values of the color property, stored in the stimuli-type odML section.
Access Control List (ACL) is a property of an object that is used to keep a list of users, having access to the object. Every user in this list can have either read-only or read-write permissions. Besides defined ACL and object has its own publication state, which indicates whether an object is open for all other users or not (private by default). ACL is independent from a publication state: if an object is private, people, listed in the ACL, will be able to access an object. Not all objects can have ACLs, here is a list of objects with ACL support:
- all ePhys objects: * AnalogSignal * IrSaAnalogSignal * AnalogSignalArray * SpikeTrain * Spike * Event * EventArray * Epoch * EpochArray * Block * Segment * Unit * RecordingChannelGroup * RecordingChannel
- metadata Section * Section
- and any file * Datafile