Skip to content

CLASS ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2

  NDI_DAQREADER_MFDAQ_STIMULUS_VHLABVISSPIKE2 - Device object for vhlab visual stimulus computer

  This device reads the 'stimtimes.txt', 'verticalblanking.txt', 'stims.mat', and 'spike2data.smr' files
  that are present in directories where a VHLAB stimulus computer (running NewStim/RunExperiment)
  has produced triggers that have been acquired on a CED Spike2 system running the VHLAB Spike2 script.

  This device produces the following event channels in each epoch. They are not read from the CED SMR
  file but instead are read from the .txt files that are generated by the vhlab scripts.

  Channel name:   | Signal description:
  ----------------|------------------------------------------
  mk1             | stimulus on/off
  mk2             | stimid 
  e1              | frame trigger
  e2              | vertical refresh trigger
  e3              | pretime trigger


Superclasses

ndi.daq.reader.mfdaq.cedspike2, ndi.daq.reader.mfdaq, ndi.daq.reader, ndi.ido, did.ido, ndi.documentservice

Properties

Property Description
identifier

Methods

Method Description
cedspike2filelist2smrfile Identify the .SMR file out of a file list
cedspike2headertype2mfdaqchanneltype Convert between Intan headers and the ndi.daq.system.mfdaq channel types
channel_types what channel types are possible in an ndi.daq.reader.mfdaq ?
channelsepoch2timechannelinfo look up time channel info
epochclock return the ndi.time.clocktype objects for an epoch
epochclock_ingested return the ndi.time.clocktype objects for an ingested epoch
eq tests whether 2 ndi.daq.reader objects are equal
getchannelsepoch List the channels that are available on this device
getchannelsepoch_ingested List the channels that were sampled for this epoch
getingesteddocument return the ndi.document with the data for an ingested epoch
id return the identifier of an DID.IDO object
ingest_epochfiles create an document that describes the data read by an ndi.daq.reader
newdocument create a new ndi.document for an ndi.daq.reader object
readchannels_epochsamples read the data based on specified channels
readchannels_epochsamples_ingested read the data based on specified channels
readevents_epochsamples read events, markers, and digital events of specified channels for a specified epoch
readevents_epochsamples_ingested read events, markers, and digital events of specified channels for a specified epoch
readevents_epochsamples_native read events or markers of specified channels for a specified epoch
samplerate
samplerate_ingested GET THE SAMPLE RATE FOR SPECIFIC CHANNEL
searchquery create a search for this ndi.daq.reader object
standardize_channel_types return standard channel type names
t0_t1 return the t0_t1 (beginning and end) epoch times for an epoch
t0_t1_ingested return the t0_t1 (beginning and end) epoch times for an ingested epoch
underlying_datatype get the underlying data type for a channel in an epoch
unique_id Generate a unique ID number for DID databases (Static method)
verifyepochprobemap Verifies that an EPOCHPROBEMAP is compatible with a given device and the data on disk
vhlabvisspike2 Create a new multifunction DAQ object

Methods help

cedspike2filelist2smrfile - Identify the .SMR file out of a file list

FILENAME = CEDSPIKE2FILELIST2SMRFILE(FILELIST)

  Given a cell array of strings FILELIST with full-path file names,
  this function identifies the first file with an extension '.smr' (case insensitive)
  and returns the result in FILENAME (full-path file name).

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.cedspike2filelist2smrfile is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

cedspike2headertype2mfdaqchanneltype - Convert between Intan headers and the ndi.daq.system.mfdaq channel types

CHANNELTYPE = CEDSPIKE2HEADERTYPE2MFDAQCHANNELTYPE(CEDSPIKE2CHANNELTYPE)

  Given an Intan header file type, returns the standard ndi.daq.system.mfdaq channel type

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.cedspike2headertype2mfdaqchanneltype is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

channel_types - what channel types are possible in an ndi.daq.reader.mfdaq ?

[TYPES, ABBREV] = ndi.daq.reader.mfdaq.channel_types()

   Returns a cell array of possible channel types in TYPES, and a corresponding
   short abbreviation in the cell array ABBREV.

  ----------------------------------------------------------------------------
  | CHANNEL TYPE       | ABBREV  | Description                               |
  |--------------------|---------|-------------------------------------------|
  | 'analog_in'        | 'ai'    | Analog input                              |
  | 'analog_out'       | 'ao'    | Analog output                             | 
  | 'auxiliary_in'     | 'ax'    | Auxiliary channels                        |
  | 'digital_in'       | 'di'    | Digital input                             | 
  | 'digital_out'      | 'do'    | Digital output                            | 
  | 'event'            | 'e'     | Event trigger (returns times, codes of    |
  |                    |         |    event trigger activation)              |
  | 'marker'           | 'mk'    | Mark channel (contains value at specified |
  |                    |         |    times)                                 |
  | 'text'             | 'tx'    | Text channel (contains text at specified  |
  |                    |         |    times)
  | 'time'             | 't'     | Time samples                              |
  |--------------------|---------|-------------------------------------------|

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.channel_types is inherited from superclass ndi.daq.reader.mfdaq

channelsepoch2timechannelinfo - look up time channel info

TC = CHANNELSEPOCH2TIMECHANNELINFO(CHANNELSEPOCH, CHANNELTYPE, CHANNELNUMBER)

  Given a CHANNELSEPOCH struct returned from GETCHANNELSEPOCH, find the time
  channel number that corresponds to the channel specified by CHANNELTYPE and
  CHANNELNUMBER.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.channelsepoch2timechannelinfo is inherited from superclass ndi.daq.reader.mfdaq

epochclock - return the ndi.time.clocktype objects for an epoch

EC = EPOCHCLOCK(NDI_DAQREADER_MFDAQ_STIMULUS_VHLABVISSPIKE2_OBJ, EPOCHFILES)

  Return the clock types available for this epoch as a cell array
  of ndi.time.clocktype objects (or sub-class members).

  This returns a single clock type 'dev_local'time';

  See also: ndi.time.clocktype

epochclock_ingested - return the ndi.time.clocktype objects for an ingested epoch

EC = EPOCHCLOCK_INGESTED(NDI_DAQREADER_OBJ, EPOCHFILES, S)

  Return the clock types available for this epoch as a cell array
  of ndi.time.clocktype objects (or sub-class members).

  See also: ndi.time.clocktype

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/epochclock_ingested is inherited from superclass ndi.daq.reader

eq - tests whether 2 ndi.daq.reader objects are equal

B = EQ(NDI_DAQREADER_OBJ1, NDI_DAQREADER_OBJ2)

  Examines whether or not the ndi.daq.reader objects are equal.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/eq is inherited from superclass ndi.daq.reader

getchannelsepoch - List the channels that are available on this device

CHANNELS = GETCHANNELSEPOCH(THEDEV, EPOCHFILES)

  This device produces the following channels in each epoch:
  Channel name:   | Signal description:
  ----------------|------------------------------------------
  mk1             | stimulus on/off
  mk2             | stimid 
  mk3             | stimulus open/close
  e1              | frame trigger
  e2              | vertical refresh trigger
  e3              | pretime trigger

getchannelsepoch_ingested - List the channels that were sampled for this epoch

CHANNELS = GETCHANNELSEPOCH_INGESTED(NDI_DAQREADER_MFDAQ_OBJ, EPOCHFILES, S)

   Returns the channel list of acquired channels in these EPOCHFILES

   The channels are of different types. In the below, 
   'n' is replaced with the channel number.
   Type       | Description
   ------------------------------------------------------
   ain        | Analog input (e.g., ai1 is the first input channel)
   din        | Digital input (e.g., di1 is the first input channel)
   t          | Time - a time channel
   axn        | Auxillary inputs

  CHANNELS is a structure list of all channels with fields:
  -------------------------------------------------------
  'name'             | The name of the channel (e.g., 'ai1')
  'type'             | The type of data stored in the channel
                     |    (e.g., 'analog_input', 'digital_input', 'image', 'timestamp')
  'time_channel'     | The number of the time channel that contains the time information
                     |    for the channel. Can be NaN when not applicable.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/getchannelsepoch_ingested is inherited from superclass ndi.daq.reader.mfdaq

getingesteddocument - return the ndi.document with the data for an ingested epoch

D = GETINGESTEDDOCUMENT(NDI_DAQREADER_MFDAQ_OBJ, EPOCHFILES, S)

  Returns the document D that contains the ingested ndi.daq.reader.mfdaq data for
  the epoch described by EPOCHFILES. EPOCHFILES should be an ingested epoch.
  S is the ndi.session for the dataset.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/getingesteddocument is inherited from superclass ndi.daq.reader

id - return the identifier of an DID.IDO object

IDENTIFIER = ID(DID.IDO_OBJ)

  Returns the unique identifier of an DID.IDO object.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/id is inherited from superclass did.ido

ingest_epochfiles - create an document that describes the data read by an ndi.daq.reader

D = INGEST_EPOCHFILES(NDI_DAQREADER_OBJ, EPOCHFILES, EPOCH_ID)

  Creates an ndi.document of type 'daqreader_epochdata_ingested' that contains the data
  for an ndi.daq.reader object. The document D is not added to any database.

  Example:
     D = mydaqreader.ingest_epochfiles(epochfiles,epoch_id);

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/ingest_epochfiles is inherited from superclass ndi.daq.reader.mfdaq

newdocument - create a new ndi.document for an ndi.daq.reader object

DOC = NEWDOCUMENT(NDI_DAQREADER_OBJ)

  Creates an ndi.document object DOC that represents the
     ndi.daq.reader object.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/newdocument is inherited from superclass ndi.daq.reader

readchannels_epochsamples - read the data based on specified channels

DATA = READ_CHANNELS(MYDEV, CHANNELTYPE, CHANNEL, EPOCHFILES, S0, S1)

   CHANNELTYPE is the type of channel to read (cell array of strings, one per
      channel, or single string for all channels)

   CHANNEL is a vector of the channel numbers to read, beginning from 1

   EPOCHFILES is the cell array of full path filenames for this epoch

   DATA is the channel data (each column contains data from an indvidual channel)

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/readchannels_epochsamples is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

readchannels_epochsamples_ingested - read the data based on specified channels

DATA = READ_CHANNELS_EPOCHSAMPLES_INGESTED(NDI_DAQREADER_MFDAQ_OBJ, CHANNELTYPE, ...
     CHANNEL, EPOCHFILES, S0, S1, S)

   CHANNELTYPE is the type of channel to read

   CHANNEL is a vector of the channel numbers to read, beginning from 1

   EPOCHFILES is the set of epochfiles to read from

   S0 is the sample where reading should start, and S1 is sample where reading should end.

   DATA will have one column per channel.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/readchannels_epochsamples_ingested is inherited from superclass ndi.daq.reader.mfdaq

readevents_epochsamples - read events, markers, and digital events of specified channels for a specified epoch

[TIMESTAMPS, DATA] = READEVENTS_EPOCHSAMPLES(NDR_READER_OBJ, CHANNELTYPE, CHANNEL, ...
      EPOCHFILES, T0, T1)

   Returns TIMESTAMPS and DATA corresponding to event or marker channels. If the number
   of CHANNEL entries is 1, then TIMESTAMPS is a column vector of type double, and DATA is
   also a column of a type that depends on the type of event that is read.  If the number
   of CHANNEL entries is more than 1, then TIMESTAMPS and DATA are both columns of cell
   arrays, with 1 column per channel.

   CHANNELTYPE is a cell array of strings, describing the type of each channel to read:
       'event'  - TIMESTAMPS mark the occurrence of each event; DATA is a logical 1 for
                     each timestamp
       'marker' - TIMESTAMPS mark the occurence of each event; each row of DATA is the
                     data associated with the marker (type double)
       'text'   - TIMESTAMPS mark the occurence of each event; DATA is a cell array of
                     character arrays, 1 per event
       'dep'    - Create events from a digital channel with positive transitions.
                     TIMESTAMPS mark the occurence of each event and DATA entries are 1
       'dimp'   - Create events from a digital channel by finding impulses that exhibit
                     positive then negative transitions. TIMESTAMPS mark the occurrence
                     of each event, and DATA indicates whether the event is a positive
                     transition (1) or negative (-1) transition.
       'den'    - Create events from a digital channel with negative transitions.
                     TIMESTAMPS mark the occurrence of each event and DATA entries are -1.
       'dimn'   - Create events from a digital channel by finding impulses that exhibit
                     negative then positive transitions. TIMESTAMPS mark the occurence of
                     each event, and DATA indicates whether the event is a negative
                     transition (1) or a positive transition (-1).

   CHANNEL is a vector with the identity(ies) of the channel(s) to be read.

   EPOCHSFILES is a cell array of full path file names

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/readevents_epochsamples is inherited from superclass ndi.daq.reader.mfdaq

readevents_epochsamples_ingested - read events, markers, and digital events of specified channels for a specified epoch

[TIMESTAMPS, DATA] = READEVENTS_EPOCHSAMPLES_INGESTED(NDR_READER_OBJ, CHANNELTYPE, ...
      CHANNEL, EPOCHFILES, T0, T1)

   Returns TIMESTAMPS and DATA corresponding to event or marker channels. If the number
   of CHANNEL entries is 1, then TIMESTAMPS is a column vector of type double, and DATA is
   also a column of a type that depends on the type of event that is read.  If the number
   of CHANNEL entries is more than 1, then TIMESTAMPS and DATA are both columns of cell
   arrays, with 1 column per channel.

   CHANNELTYPE is a cell array of strings, describing the type of each channel to read:
       'event'  - TIMESTAMPS mark the occurrence of each event; DATA is a logical 1 for
                     each timestamp
       'marker' - TIMESTAMPS mark the occurence of each event; each row of DATA is the
                     data associated with the marker (type double)
       'text'   - TIMESTAMPS mark the occurence of each event; DATA is a cell array of
                     character arrays, 1 per event
       'dep'    - Create events from a digital channel with positive transitions.
                     TIMESTAMPS mark the occurence of each event and DATA entries are 1
       'dimp'   - Create events from a digital channel by finding impulses that exhibit
                     positive then negative transitions. TIMESTAMPS mark the occurrence
                     of each event, and DATA indicates whether the event is a positive
                     transition (1) or negative (-1) transition.
       'den'    - Create events from a digital channel with negative transitions.
                     TIMESTAMPS mark the occurrence of each event and DATA entries are -1.
       'dimn'   - Create events from a digital channel by finding impulses that exhibit
                     negative then positive transitions. TIMESTAMPS mark the occurence of
                     each event, and DATA indicates whether the event is a negative
                     transition (1) or a positive transition (-1).

   CHANNEL is a vector with the identity(ies) of the channel(s) to be read.

   EPOCHSFILES is a cell array of full path file names

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/readevents_epochsamples_ingested is inherited from superclass ndi.daq.reader.mfdaq

readevents_epochsamples_native - read events or markers of specified channels for a specified epoch

[TIMESTAMPS, DATA] = READEVENTS_EPOCHSAMPLES(SELF, CHANNELTYPE, CHANNEL, EPOCHFILES, T0, T1)

   SELF is the NDI_DAQSYSTEM_MFDAQ_STIMULUS_VHVISSPIKE2 object.

   CHANNELTYPE is a cell array of strings describing the the type(s) of channel(s) to read
   ('event','marker', etc). If CHANNELTYPE is a string, it is
   assumed to apply to all channels.

   CHANNEL is a vector with the identity of the channel(s) to be read.

   EPOCH is the cell array of file names associated with an epoch

   DATA is a two-column vector; the first column has the time of the event. The second
   column indicates the marker code. In the case of 'events', this is just 1. If more than one channel
   is requested, DATA is returned as a cell array, one entry per channel.

samplerate - **

SAMPLERATE - GET THE SAMPLE RATE FOR SPECIFIC CHANNEL

  SR = SAMPLERATE(DEV, EPOCHFILES, CHANNELTYPE, CHANNEL)

  SR is an array of sample rates from the specified channels

 so, these are all events, and it doesn't much matter, so
  let's make a guess that should apply well in all cases

samplerate_ingested - GET THE SAMPLE RATE FOR SPECIFIC CHANNEL

SR = SAMPLERATE_INGESTED(NDI_DAQREADER_MFDAQ_OBJ, EPOCHFILES, CHANNELTYPE, CHANNEL, S)

  SR is an array of sample rates from the specified channels

  CHANNELTYPE can be either a string or a cell array of
  strings the same length as the vector CHANNEL.
  If CHANNELTYPE is a single string, then it is assumed that
  that CHANNELTYPE applies to every entry of CHANNEL.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/samplerate_ingested is inherited from superclass ndi.daq.reader.mfdaq

searchquery - create a search for this ndi.daq.reader object

SQ = SEARCHQUERY(NDI_DAQREADER_OBJ)

  Creates a search query for the ndi.daq.reader object.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/searchquery is inherited from superclass ndi.daq.reader

standardize_channel_types - return standard channel type names

STDCHANNELTYPES = STANDARDIZE_CHANNEL_TYPES(CHANNELTYPES)

  Given a cell array of strings of CHANNELTYPES, replace any abbreviations with
  with the standard channel type name in ndi.daq.reader.mfdaq.channel_types()

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.standardize_channel_types is inherited from superclass ndi.daq.reader.mfdaq

t0_t1 - return the t0_t1 (beginning and end) epoch times for an epoch

T0T1 = T0_T1(NDI_DAQSYSTEM_MFDAQ_CEDSPIKE2_OBJ, EPOCHFILES)

  Return the beginning (t0) and end (t1) times of the EPOCHFILES that define this
  epoch in the same units as the ndi.time.clocktype objects returned by EPOCHCLOCK.


  See also: ndi.time.clocktype, EPOCHCLOCK

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/t0_t1 is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

t0_t1_ingested - return the t0_t1 (beginning and end) epoch times for an ingested epoch

T0T1 = T0_T1_INGESTED(NDI_DAQREADER_OBJ, EPOCH_NUMBER, S)

  Return the beginning (t0) and end (t1) times of the epoch EPOCH_NUMBER
  in the same units as the ndi.time.clocktype objects returned by EPOCHCLOCK.

  The abstract class always returns {[NaN NaN]}.

  See also: ndi.time.clocktype, EPOCHCLOCK

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/t0_t1_ingested is inherited from superclass ndi.daq.reader

underlying_datatype - get the underlying data type for a channel in an epoch

[DATATYPE,P,DATASIZE] = UNDERLYING_DATATYPE(DEV, EPOCHFILES, CHANNELTYPE, CHANNEL)

  Return the underlying datatype for the requested channel.

  DATATYPE is a type that is suitable for passing to FREAD or FWRITE
   (e.g., 'float64', 'uint16', etc. See help fread.)

  P is a polynomial that converts between the double data that is returned by
  READCHANNEL. RETURNED_DATA = (RAW_DATA+P(1))*P(2)+(RAW_DATA+P(1))*P(3) ...

  DATASIZE is the sample size in bits.

  CHANNELTYPE must be a string. It is assumed that
  that CHANNELTYPE applies to every entry of CHANNEL.

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/underlying_datatype is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

unique_id - Generate a unique ID number for DID databases (Static method)

ID = DID.IDO.UNIQUE_ID()

  Generates a unique ID character array based on the current time and a random
  number. It is a hexidecimal representation of the serial date number in
  UTC Leap Seconds time. The serial date number is the number of days since January 0, 0000 at 0:00:00.
  The integer portion of the date is the whole number of days and the fractional part of the date number
  is the fraction of days.

  ID = [NUM2HEX(SERIAL_DATE_NUMBER) '_' NUM2HEX(RAND)]

  See also: NUM2HEX, NOW, RAND

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2.unique_id is inherited from superclass did.ido

verifyepochprobemap - Verifies that an EPOCHPROBEMAP is compatible with a given device and the data on disk

B = VERIFYEPOCHPROBEMAP(NDI_DAQSYSTEM_MFDAQ_CEDSPIKE2_OBJ, EPOCHPROBEMAP, EPOCHFILES)

  Examines the ndi.epoch.epochprobemap_daqsystem EPOCHPROBEMAP and determines if it is valid for the given device
  epoch NUMBER.

  For the abstract class ndi.daq.system, EPOCHPROBEMAP is always valid as long as
  EPOCHPROBEMAP is an ndi.epoch.epochprobemap_daqsystem object.

  See also: ndi.daq.system, ndi.epoch.epochprobemap_daqsystem

Help for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/verifyepochprobemap is inherited from superclass ndi.daq.reader.mfdaq.cedspike2

vhlabvisspike2 - Create a new multifunction DAQ object

D = ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2(NAME, THEFILENAVIGATOR, DAQREADER)

   Creates a new ndi.daq.system.mfdaq object with NAME, and FILENAVIGATOR.
   This is an abstract class that is overridden by specific devices.

    Documentation for ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2/vhlabvisspike2
       doc ndi.setup.daq.reader.mfdaq.stimulus.vhlabvisspike2