Color Scale in 1D Data Viewer

In NeuroExplorer 1D Data Viewer, timestamps are shown as tick marks:

1D Data Viewer

If you zoom out the time scale (you can do this by rotating the mouse wheel while pressing Ctrl button), NeuroExplorer uses color to indicate the number of tick marks in each pixel:

1D Viewer with colors (old)

Several NeuroExplorer users asked me what is the color scale used in 1D Viewer. Starting with version 5.110 (released in December, 2017),  NeuroExplorer displays the appropriate color scale:

1D Viewer with Color Scale

The color scale values are spikes per second. You can set the color scale options using Edit Color Scale Properties context menu command (right-click in 1D Viewer to invoke its context menu).

Calculating Average of Continuous Channels

One of the frequently asked questions is how to calculate the average of multiple continuous channels in NeuroExplorer. Prior to NeuroExplorer version 5.104, we had to use a rather cumbersome function LinearCombinationOfContVars. For example, to calculate the average of channels FP01 and FP02 we would execute this script line:

nex.LinearCombinationOfContVars(doc, "average of FP01 and FP02", doc["FP01"], 0.5, doc["FP02"], 0.5)

Fortunately, Python is a very flexible language. After an update of NeuroExplorer internal Python code (that uses new functions  ContAdd, ContMult and ContAddCont), it is now possible to use arithmetic expressions using continuous channels:

import nex
doc = nex.GetActiveDocument()

# average of two channels
doc["average of FP01 and FP02"] = (doc["FP01"]+doc["FP02"])/2.0

# subtract constant baseline
baseline = 100
doc["FP01 with baseline subtracted"] = doc["FP01"]-baseline

# subtract reference channel
referenceChannelName = 'FP16'
doc["FP01 with ref. channel subtracted"] = doc["FP01"]-doc[referenceChannelName]

# average of all continuous channels containing FP in channel name
count = 0
for i in range(nex.GetVarCount(doc, 'continuous')):
 name = nex.GetVarName(doc, i+1, 'continuous')
 if 'FP' in name:
   if count == 0:
     doc['FP average'] = doc[name]
   else:
     doc['FP average'] += doc[name]
   count += 1
 
if count > 0:
 doc['FP average'] = doc['FP average']/float(count)

Matlab 2017 and NeuroExplorer Version 4

Several NeuroExplorer version 4 users reported that they were unable to get data from Matlab when using Matlab 2017a and later. The following error messages are displayed by NeuroExplorer:

"Matlab variable n_1 does not exist of variable is not a matrix"

and

"Matlab workspace contains no matrices. Please load or generate some data in Matlab and try again."

The problem is in the breaking change in Matlab. To determine the type of Matlab object x, NeuroExplorer executes the following Matlab command:

class(x)

In the previous versions of Matlab, the following was returned by Matlab (after removing line breaks and spaces):

ans=double

In Matlab version 2017a and later, the result is:

ans='double'

NeuroExplorer version 4 checks for the result double without quotes. Unfortunately, Matlab made a breaking change and the result is ‘double’ (with quotes), so NeuroExplorer version 4 determines that x is not a double matrix.

NeuroExplorer version 5 does not have this problem.

If you are using NeuroExplorer version 4, you have the following options:

1) Uninstall Matlab 2017a or later and install an earlier version of Matlab
2) Upgrade your NeuroExplorer license to version 5 (please contact [email protected] for an upgrade quote)
3) Save your data in Matlab to .nex file and open .nex file in NeuroExplorer (use the scripts from HowToReadAndWriteNexAndNex5FilesInMatlab.zip to save Matlab data in .nex file)
4) Use the following scripts:
– use GetMatlab2ColumnMatrixAsContVarWithTs.nsc to import a 2-column matrix with timestamps and continuous values as a continuous variable
– use GetMatlabVectorAsContVar.nsc to import a 1-column matrix with continuous values as a continuous variable
– use GetMatabTimestampVector.nsc to import a 1-column matrix with timestamps as an event variable

Download the scripts to C:\ProgramData\Nex Technologies\NeuroExplorer\Scripts folder and open a script using Script | Open Script menu command.

 

NeuroExplorer Adds Support for 64-bit Timestamps

The timestamps in NeuroExplorer are stored as signed integers. These integers are usually the timestamps recorded by the data acquisition system and they represent time in the so-called time ticks. For example, the typical time tick for the Plexon system is 25 microseconds, so an event recorded at 1.5 sec will be stored internally as 60000.

Prior to version 5.100, NeuroExplorer used 32-bit integers to store timestamps. Maximum 32-bit signed value is 2,147,483,647. If the data acquisition sampling rate is 40,000 Hz (the time tick is 25 microseconds), the maximum 32-bit integer value corresponds to the timestamp equal to 53687.09118 seconds or 14.913 hours. This means that if we are using 32-bit timestamps, we cannot analyze recording sessions that are longer than 14 hours 54 minutes (when recording at 40 KHz).

Starting with version 5.100, NeuroExplorer stores timestamps internally as 64-bit integers. This means that NeuroExplorer can now analyze very long recording sessions and can work with data recorded with high sampling rates. NeuroExplorer can also now store and read 64-bit timestamps in .nex5 files (.nex files do not support 64-bit timestamps).

When saving data in .nex or .nex5 files, the following rules are used:

  • If maximum timestamp is less than 2,147,483,647, timestamps are saved as 32-bit integers (both in .nex and in .nex5 files)
  • If maximum timestamp exceeds 2,147,483,647, NeuroExplorer will save data only in .nex5 files and the timestamps will be saved as 64-bit integers

We updated all ‘How to read/write .nex/.nex5 files…’ documents and code samples (see downloads page). The new code samples can store and read 64-bit timestamps when using .nex5 files.

 

Import of Intan Technologies Files

NeuroExplorer 5.103 released on June 27, 2017, can import Intan Technologies .rhd files. If you saved the data in one file per signal type format or saved the data in one file per channel format, open info.rhd file in the corresponding directory and NeuroExplorer will import data from all the .dat files in this directory.