Custom Post-processing and Custom Graphics

I often get requests from NeuroExplorer users asking to add something to numerical results (for example, add location of the second peak in the spectrum to summary of numerical results). Another long-standing request is to be able to add custom graphics commands NeuroExplorer graphs.

Let’s consider a spectrum example. Here is a result of Power Spectral Densities analysis:

psd-nopeaks

It would be nice to be able to find the peaks in the spectra, draw ‘x’ marks at peak locations and add text labels showing peak frequencies:

 

psdpeaks

All this can now be done using new post-processing options in NeuroExplorer. Double-click in the graph to invoke Analysis Properties dialog, then go to Post-processing tab and click ‘Post-Processing Script Options’ button:

post-proc

Specify your script in the Post-Processing Script Options dialog:

post-processing-script-options

/downloads/Scripts.zip file contains PostProcPeaks.py script that was used to find peaks and add custom graphics commands shown above. Download Scripts.zip file and extract the scripts to C:\Users\<your__user__name>\Documents\NeuroExplorer 5\Scripts folder.

See also Analysis Functions/Set Property topic in NeuroExplorer help:

neuroexplorer-help-set-property

Python Scripting in NeuroExplorer

For many years, NeuroExplorer has had the capability to automate repetitive tasks:

  • Repeat analysis on all the data files in a folder,
  • Edit data or post-process analysis results without sending data or results to an external program

To support scripting, a custom NexScript language was developed. NexScript supports simple variables and has basic flow control capabilities. However, there are many limitations of NexScript that make writing scripts difficult. Adding new capabilities to NexScript (for example, adding support for arrays) would require a considerable effort. An alternative approach is to integrate existing programming language into NeuroExplorer.

We are pleased to announce that starting with version 5.022, NeuroExplorer scripts can also be written in Python.

NexScript - RepeatAnalysis2

Here are some of the benefits of using Python:

  • Python is very well documented
  • Shorter scripts
    • Access to NeuroExplorer data via Python lists eliminate many loops
    • User-defined functions replace repetitive code
  • Scripts can use thousands of Python functions

Old NexScript scripts can be automatically converted to Python using Tools | Convert to Python menu command in NexScript editor.

NeuroExplorer uses Python 2.7.10. There is no need to install Python. All the Python files needed for scripting are installed by NeuroExplorer setup program.

Dealing with Noise and Artifacts in Data Viewer

Often you can visually identify periods of noise or artifacts in 1D Data Viewer:

scratching artifact2

In NeuroExplorer version 5.014 or later, you can identify time intervals corresponding to artifacts using mouse:

– Right-click in 1D View to invoke context menu:

1dmenu1

– Specify ‘Select Interval Variable…’ menu command. NeuroExplorer will display the following dialog:

Specify Interval Variable to Add Intervals to

– Click ‘Create New Interval Variable…’ button:

New Variable Name

– Let’s create a new interval variable with the name noise. Type ‘noise’ (without quotes) and click OK to close this dialog, then click OK to close Select Interval Variable dialog.

– Note that the cursor now has ‘plus interval’ graphic:

intadd

– Press the left mouse button at the start of the noise interval, then drag the mouse until the end of the noise interval and release left mouse button. The new interval is added to noise interval variable:

added interval

– Add a second interval:

2intervals

– Hit ESC key to exit Add Interval mode

– We want to analyze data that is NOT in the noise intervals. To make this possible, right-click in 1D view again and select ‘Invert Interval Variable’ menu command:

invertintvar

– In the Invert Interval Variable dialog, select noise variable to be inverted:

Invert Interval Variable

– Now noise_inverted interval variable contains time intervals corresponding to our data without noise:

noiseinverted

– We can use noise_inverted variable in a Data Selection page of analysis properties dialog:

Analysis Properties data sel

and the data in noise intervals will be ignored.

There is also a faster way to get rid of noisy data — you can delete all the data in specified time intervals. To do this, right-click in 1D view and select ‘On Mouse Click and Drag, Delete…’ menu command:

deletemenu

– Now when you click and drag with the left mouse button, all the data in selected time interval are deleted:

deleted2

deleted3

Note that delete operation cannot be undone right away. You will need to reload the data file to restore original data.

 

How to Save and Restore Your Work in NeuroExplorer

When you work in NeuroExplorer, the program creates a number of data and analysis results windows.  By default, these windows are not restored when you close and reopen the program.  If you would like to save and restore all your current work in NeuroExplorer, use File | Save NeuroExplorer State and File | Restore NeuroExplorer State menu commands:

saverestorestate

You can also restore the last analysis of this or previous NeuroExplorer analysis session using File | Restore Last Analysis menu command.  The program will do the following:

  • Load the data file used in last analysis
  • Select the variables used in last analysis
  • Run the analysis

See also Working with Results Files.

 

Working with Results Files

NeuroExplorer can save both graphical and numerical results of the analysis in a NeuroExplorer results file. Since each result has both graphics and numerical values, the results are saved in a set of files with common file name and different extensions.

You can use SavedResults | Quick Save Results menu command to save all the current results:

quicksaveresultsmenu

For example, if you run Perievent Rasters analysis on data file TestD21.plx and select Quick Save Results, the results will be saved in the following 5 files:

  • TestD21_plx Perievent Rasters.nexresult (text file with links to other files of this result)
  • TestD21_plx Perievent Rasters numres.txt (text file with numerical results)
  • TestD21_plx Perievent Rasters numres summary.txt (text file with the summary of numerical results)
  • TestD21_plx Perievent Rasters.png (.png file with graphical analysis results)
  • TestD21_plx Perievent Rasters.ntp (template file with analysis parameters)

By default, these files be saved in the folder:
C:\Users\<your_user_name>\Documents\NeuroExplorer 5\Results.

The .nexresult file is the file containing description of the analysis and the links to other result files. You can open this file in NeuroExplorer using SavedResults | Open Saved Results File menu
command.

When you open results file, NeuroExplorer loads graphics and numerical results files and shows a window with 4 tabs:

savedresperiraster

This window looks similar to the Graphical results window, but the results are not ‘live’ — you cannot adjust analysis parameters and recalculate the results.

However, you can replicate the results saved in the results file. Use SavedResults | Restore Analysis in NeuroExplorer menu command:

restoresavedres

NeuroExplorer will do the following:

  • Open data file used in the calculation of results
  • Select variables for analysis exactly as they were selected in the saved results
  • Run the analysis used in the calculation of results (using the same analysis parameters)

You can also use SavedResults | Results Folder Summary menu command to view all the saved results in a grid:

ResFolderSummary1

In this Results Folder Summary view you can:

  • Sort results by any of the columns by clicking at the column header
  • Open results file by double-clicking the row representing the file
  • Convert selected results to PowerPoint slides using right-click and selecting Add Slides… context menu command
  • Select results using Find combo box in the NeuroExplorer toolbar. The text in all the columns will be used when filtering the results. For example, to view only results saved in 2015, type 2015 in Find box:

resfind2