Skip to content

nigeLab_Concepts_Field

Max-Home-Tower edited this page Jul 1, 2020 · 1 revision

Field

(Current as of 2019-11-23)
These are the main categories of data that are held by a Block object. Because Properties cannot be assigned dynamically to a Class after construction, we chose to create a few "hard-coded" FieldTypes that are struct Properties of the Block class. Each Field, which describes a type of data that you may wish to associate with your experiment or recording, is assigned to a FieldType. The choice of FieldType associated with a Field depends upon the type of data for that Field. At present, there are twenty default values of Field, although not all may be used in each recording.

Note: if you are developing methods for nigeLab that require reference to a particular Field that is not linked dynamically (the field name is "hard-coded" into the method), then please use the checkCompatibility method and reference the "hard-coded" field as a check.


Field Defaults

A list of Fields in use by default for the KUMC & IIT collaboration.

Contents

  1. Raw
  2. Filt
  3. CAR
  4. LFP
  5. Artifact
  6. Spikes
  7. SpikeFeatures
  8. Clusters
  9. Sorted
  10. DigIO
  11. AnalogIO
  12. DigEvents
  13. VidStreams
  14. Stim
  15. DC
  16. Time
  17. Notes
  18. Probes
  19. Video
  20. ScoredEvents

Each element of Raw corresponds to the anti-aliased, but otherwise unfiltered, "raw" electrophysiological recording data taken using high-gain bioamplifiers such as provided by Intan or TDT. A single element contains data from one electrode channel.

Each element of Filt corresponds to the unit-filtered (300-5,000 Hz bandpass) electrophysiological recording data taken using high-gain bioamplifiers such as provided by Intan or TDT. A single element contains data from one electrode channel.

Each element of CAR corresponds to the unit-filtered (300-5,000 Hz bandpass) electrophysiological recording data taken using high-gain bioamplifiers such as provided by Intan or TDT. A single element contains data from one electrode channel. CAR is identical to Filt, except that it has the common mode noise (estimated as the ensemble average for all channels on an array) removed from each element.

Each element of LFP corresponds to the decimated (fs = 1,000 Hz), anti-aliased electrophysiological recording data taken using high-gain bioamplifiers such as provided by Intan or TDT. A single element contains data from one electrode channel. CAR is identical to Filt, except that it has the common mode noise (estimated as the ensemble average for all channels on an array) removed from each element. An example of modifying the decimation cascade parameters is located here.

Artifact (back to list)

Event data that indicates when detected spike parameters met thresholds for automatic artifact rejection.

  • FieldType: Channels
  • FileType: Event
    • type: 0 (Channel-Related Event)
    • value: Amplitude of the artifact event
    • ts: Time stamp (seconds) of event occurrence relative to start of Channels recording

Spikes (back to list)

Event data that indicates the timing of putative extracellular-detected action potentials from nearby cells.

  • FieldType: Channels
  • FileType: Event
    • type: 0 (Channel-Related Event)
    • value: Integer denoting spike cluster
    • tag: Integer key to qualitative descriptor (e.g. "Large Single Unit," etc.)
    • ts: Time stamp (seconds) of event occurrence relative to start of Channels recording
    • snippet: CAR samples from 0.4 ms prior to 0.8 ms after the spike peak

SpikeFeatures (back to list)

Event data for the computed features of channel-related spiking activity. Has same dimensions as Spikes.

  • FieldType: Channels
  • FileType: Event
    • type: 0 (Channel-Related Event)
    • snippet: Coefficients describing Spikes waveforms, using methods such as PCA or wavelet decomposition.

Clusters (back to list)

Event data for the auto-clustering results performed after spike detection. Has same dimensions as Spikes.

  • FieldType: Channels
  • FileType: Event
    • type: 0 (Channel-Related Event)
    • value: Integer for automatic assignment of Spikes value

Sorted (back to list)

Event data for the results of manual spike cluster curation. Has same dimensions as Spikes.

  • FieldType: Channels
  • FileType: Event
    • type: 0 (Channel-Related Event)
    • value: Integer for curated assignment of Spikes value

DigIO (back to list)

Data streams that take discrete states (typically, from TTL inputs or outputs) and are synchronously acquired during the electrophysiological recordings (e.g. thresholded beam breaks; button press states; logic signals from pulse generator such as Master-8 or Master-9; etc.)

AnalogIO (back to list)

Data streams that take "continuous" states and are synchronously acquired during the electrophysiological recordings (e.g. non-thresholded IR beam breaks; force-sensitive resistors; any amplifier channel routed to the DAC for use with the FSM Detector (paper link); etc.)

DigEvents (back to list)

Events parsed from DigIO or AnalogIO (e.g. timestamps of button presses, trials, etc.)

  • FieldType: Streams
  • FileType: Event
    • type: 1 (Recording-Associated Events)
    • value: Integer indicating some metadata about the trial
    • tag: Could be the same as value, this will depend on the workflow set-up
    • ts: Time stamp (seconds) of event occurrence relative to start of Channels recording
    • snippet: Empty by default, but could include things like spike rate estimates in epochs around each event.

VidStreams (back to list)

Like Video, the VidStreams Field is unique in that there is not actually any explicit struct field named 'VidStreams'. Instead, the VidStreams corresponding to the k-th Video can be accessed using the VidStreamsType object indexed at Block.Videos(k).at; this is because of the unique nature of this kind of data. Any streams that correspond 1:1 with video frames (e.g. some kind of value that is parsed directly from the video, such as a markerless tracking label) are parsed and added here if the configuration is set up correctly in nigeLab.defaults.Block and nigeLab.defaults.Video. Because high frame-rate/pixel-count videos (e.g. those taken using any of the GoPro Hero series) are automatically "chunked" into several files, there may be multiple videos for even a single camera source. Each Video does not necessarily have to contain any VidStreams, but could also contain multiple VidStreams such that the i-th VidStreams of the k-th Video is indexed at Block.Videos(k).at(i).data. For more information about VidStreams, see setting up VidStreams parsing.

For experiments involving the KUMC & IIT collaborations, there is often the involvement of closed-loop delivery of intracortical microstimulation (ICMS). Because each stimulus pulse has its own associated parameters, such as the total number of pulses delivered per trigger; the amplitude of current delivered; and the location of stimulus delivery, a separate Field was created to isolate Stim from DigEvents (although in theory they could be grouped together).

The Intan RHS headstages associated with the Intan Stimulation and Recording Controller have low-gain amplifiers that allow the low-resolution acquisition of DC potentials.

Although this is essentially a Streams type, because it should be present in every recording (as a "quick reference" for time so that various other streams can be synchronized easily), the Time Field gets its own unique entry as a Meta FieldType. This is typically a stream of times related to every amplifier sample, so it should have the same number of samples as any of the Channels or Streams elements.

Notes (back to list)

Metadata included in notes.txt. See formatting notes for more details.

  • FieldType: Meta
  • FileType: Other -- (e.g. *.txt)

Probes (back to list)

Metadata that relates to the probe spatial layout for microwire or microelectrode arrays. May include information that associates intracortical-microstimulation (ICMS) somatotopy with each channel, for example. See formatting probe layouts for more details.

  • FieldType: Meta
  • FileType: Other -- (e.g. *.csv, *.xls, *.xlsx, etc.)

Video (back to list)

Like VidStreams, the Video Field is unique in that there is not actually any explicit struct field named 'Video'. Instead, the k-th element of Video can be accessed using the VideosFieldType object indexed at Block.Videos(k).v; this is because of the unique nature of this kind of data. Any videos associated with the recording are parsed and added here if the configuration is set up correctly in nigeLab.defaults.Block and nigeLab.defaults.Video. Because high frame-rate/pixel-count videos (e.g. those taken using any of the GoPro Hero series) are automatically "chunked" into several files, there may be multiple videos for even a single camera source.

  • FieldType: Videos
  • FileType: Other -- (e.g. *.mp4, *.avi, etc.)

ScoredEvents (back to list)

Events parsed from Video Scoring or in some other "curated" manner (e.g. Grasp Onset from video frames, etc.)

  • FieldType: Streams
  • FileType: Event
    • type: 1 (Recording-Associated Events)
    • value: Integer indicating some metadata about the trial
    • tag: Could be the same as value, this will depend on the workflow set-up
    • ts: Time stamp (seconds) of event occurrence relative to start of Channels recording
    • snippet: Empty by default, but could include things like spike rate estimates in epochs around each event.
Clone this wiki locally