Neuropype Version: 2022.0.3

  • AccumulateCalibrationData: Reset begin/end buffer times after emitting calibration buffer; fix edge case where current chunk ends of the end calibration marker; calibration data now includes very first and last sample of calibration data
  • ImportXDF: use_streamnames reverted to False by default
  • NWayPassthrough: Move spammy log message to verbose
  • CognionicsInput: More robust impedance check on/off, additional logging, support for Linux
  • NoDataAlert: Send notifs as markers ('no-data' or 'data-ok') (can send over LSL)

Neuropype Version: 2022.0.2

  • LSLInput: Bugfix in handling query with localhost and name
  • TopoPlotViewer: Change default disc_scale setting
  • ChannelDiagnostics: Add output ports for diagnostics data (can send over LSL)
  • ComputeImpedance: Fix case where Origin.device_model is unspecified
  • TimeSeriesPlot: Change colormap to brg, fix exception when expanding window to fullscreen
  • RDetection: Suppress spammy benign index out of range message
  • SpectrumPlot: Add auto_line_colors option
  • Add timestamp to log messages

Neuropype Version: 2022.0.1

  • Support for CGX headset Quick-20r-v2
  • LSLInput: Add new use_streamnames property; fix case where query is name=''
  • FuseStreams: Add new drop_original_streams property; bugfix
  • MarkerStreamWindow: Fix case where window did not close when pipeline was terminated
  • ImportXDF, ImportFile: use_streamnames is now True by default
  • Preprocess: Fix bug where montage file was not correctly retrieved

Neuropype Version: 2022.0.0

New Nodes:

  • Diagnostics package:
    • GateCheck: Check that the data packet meets certain criteria before allowing it to pass through.
    • OperateElementwise: Apply an operation to the data, where the data block of the first and second inputs are operands.
  • Feature_extraction package:
    • DemixingPCA: In addition to systematically capturing the majority of the variance of the data, dPCA also exposes the dependence of the neural representation on task parameters such as stimuli, decisions, or rewards.
  • File_system package:
  • Markers package:
  • Neural package:
    • PhaseAmplitudeCoupling: Calculates the degree of dependence of the amplitude signal on the phase of the phase signal.
    • PreprocessEEG: A meta-node that performs a standard EEG preprocessing chain including high/low pass filtering, artifact and bad channel removal, referencing, etc.
  • Nirs package:
  • Source_localization package:
    • ComputeRegions: Perform source localization for given ROIs and optionally groups them based on a mapping
  • Signal_processing package:
  • Spectral package:
    • LombScargleSpectrum: Calculate the power spectrum of the given data using the Lomb-Scargle method, which is intended for unevently sampled data.
    • Centroid: Compute a (typically robust) centroid of the given data points enumerated by an axis.
    • Histogram: Compute a histogram of data for each element along a given axis.
  • Tensor_math package:
    • Reverse: Reorder the elements along an axis, and the corresponding data slices, so they are in reverse order.
    • GetTimeShifts: Retrieve the time shifts between a chunk's time axis and another set of timestamps.
    • MoveToBackend: Move the data to the specified compute backend.
    • OverrideDataType: Override the data precision type of the given data.
    • PipelineDone: Force a streaming pipeline that also has one or more offline components to declare itself finished when set to True.
    • PropagateNaNs: Propagate NaNs within a data packet following a specified rule.
  • Visualization package:
    • InspectPacket: Shows the contents of a Packet, including data tensor values, axes, streams, and markers.

Renamed Nodes:

The old names are retained as alias nodes in the deprecated package:

  • InspectData --> InspectPacket
  • PeakFinding --> PeakFindingWavelet

Deprecated Nodes:

  • FindROIs (use SelectROIs instead)

Experiment Recorder

Experiment Recorder is a client application for presenting cognitive tasks (similar to PsychoPy) and saving

(Features accessible through the Neuropype menu in the Window Taskbar)

  • A new Neuropype Control Panel client app, which can be used to launch multiple pipelines, view/start/stop all running pipelines (regardless of how they were launched), and view all LSL streams (with an indicator if whether a stream is presently streaming data). These functions are available from the Run Pipeline, View Running Pipelines, and View LSL Streams menu items.
  • Show Logs: Access the folder with your Neuropype session logs
  • Report Bug/Feedback: Direct link to our support forum for reporting a bug or asking a question ( (requires a login to your neuropype.io account)

Engine Features:

  • A separate log file is created for each Neuropype session (in ~/.neuropype/logs), and log files older than 30 days (configurable) are automatically purged on startup.
  • StatisticAxis: added labels property for storing error type (i.e., sem) etc.
  • New is_calibrated flag (can be set by a node to indicate stream has been calibrated)
  • Many enhancements and performance improvements for machine learning operations, support for GPU computations, and support for non-EEG signals (i.e., NIRS).

Node Features:

  • BarPlot: check for non-singleton axes other than the plotting axis; skip empty packets, use_last_instance property deprecated
  • ChannelRepair: optimizations for high-channel data, can now run on GPU or multi-core CPU efficiently
  • CognionicsInput: added support for Quick-20m, AIM devices
  • Covariance, Mean: added GPU/multicore support
  • CumulativeSum: now works with either streaming or offline data
  • ExponentialMovingAverage: support for forget_factor
  • ExportMarkers: export multiple marker streams into their own CSV files
  • ExtractStreamProperty: support for extracted nested tags
  • GroupedMean: store the mean_type, error_type in the Stastistic.labels field
  • ImportFile: skip if file doesn't exist.
  • ImportXDF: restore experiment, subject, cap, acquisition and metadata tags, if present in the XDF file, as stream props on import. Also import Space.positions and .positions_source.
  • IncrementalWhitening: grouping features and selective updating
  • InsertMarkers: make ExtraLimits default [] and ignore if empty
  • InterpolateMissingChannels: added GPU/multicore support, statistical interpolation
  • MovingAverage: added subtract option
  • ParameterPort: add support for nested value types: list[list], list[dict], dict[str,list], dict[str,dict]; default param changed from StringPort to Port/object to allow passing/validating non-stringified params
  • ParseStatsTable: handle stats in Statistic axis
  • PathIterator: support recursive searching on local filesystem, including ** syntax for multi-level folder search; add sort_by param that can be alphabetical or chronological based on timestamp in filename; BIDS handling now outputs dataset level variables
  • QuantileStandardization: added axis parameter to allow for data with instance axis instead of time axis
  • RandomSubset: added fraction property to obtain a random subset that's a fraction of the original data
  • RecordToXDF: save top-level tags from the LSL/XDF spec ('experiment', 'subject', 'cap', 'acquisition') to XDF (i.e., these can added upstream to an incoming LSL stream or imported file using SetStreamProperties); save user-defined metadata in the metadata stream property (which can be set in with SetStreamProperties) to XDF; save Space.positions and Space.positions_source to XDF files
  • RectangularMovingWindowStandardization: option to apply one stream's scaling to another stream; also made epsilon configurable
  • Resample: configurable padding type
  • RobustRectangularStandardization: added caching support
  • ScrollPlot: increased max # of plottable lines; plot scale no longer thrown off by outlier channels
  • SetStreamProperties: set only_signals default to False
  • SignalWhitening: option to constrain the whitening; can perform univariate scaling per channel; can lock scales across all channels (useful for comparisons)
  • Spectrogram: no longer tries to imply unit (backward compatible)
  • Standardization: support for streaming data; support for pooling stats across multiple axes
  • TTest: store the statistic-types in a Statistic axis instead of a Feature axis with legacy_mode property for backward compatibility
  • TimeSeriesPlot: added max_channels property; support page-up/page-down keys to show prev/next set of k channels
  • TopoPlotViewer: new options: control disk opacity, not show channel labels, exit if plot closed
  • TrimMarkerSegment: add on_missing_events property for handling missing event markers, and trim_marker_streams and stream_name properties; deprecate drop_marker_in_trimmed_span property
  • WelchSpectrum, MultitaperSpectrum: average_over_time_window param deprecated
  • ZScoring: added support for constraining the scale/offset along 1 or 2 additional axes; support for GPU computation
  • ZTest: store the statistic-types in a Statistic axis instead of a Feature axis with legacy_mode property for backward compatibility
  • Many bug fixes and updates to node docs and log messages