Neuropype Version: 2020.0.6

  • ExtractTimestamps: restored

Neuropype Version: 2020.0.5

  • CCA: bugfix

Neuropype Version: 2020.0.4

  • OSCInput: updated

Neuropype Version: 2020.0.3

Bugfixes/Minor Changes:

  • LineNoise: added line_noise_frequency param
  • NWayPassthrough: add required_inputs param
  • CognionicsInput: support for Quick8r headset; additional diagnostic messages
  • New version check bugfix

Neuropype Version: 2020.0.2

Bugfixes/Minor Changes:

  • ImportEDF: Support for specifying marker field when not auto-detectable
  • ImportVHDR: Support for specifying marker field when not auto-detectable; Support for missing [Marker Infos] field in .vmrk file.
  • ImportCSV: Bugfix where importing events failed in some cases

Neuropype Version: 2020.0.1

  • Fixed tensorflow version incompatibility issue

Neuropype Version: 2020.0.0

New Nodes:

  • Cardiac package:
    • RespRate: Calculate the respiration rate from a detected R peak.
  • Device_io package:
    • CognionicsInput: Receive a data stream from a Cognionics (CGX) EEG device.
  • Diagnostics package:
    • ComputeImpedance: Compute channel impedance for Cognionics (CGX) EEG devices.
    • EstimateLag: Estimate the lag (delay) of the data in seconds
    • EstimateUpdateRate: Estimate the update rate of NeuroPype.
    • NoDataAlert: Alert if no data is present.
    • QualityMetricsCompute: A meta-node (a node that calls other nodes), which generates a set of quality metrics for each signal file.
    • SanityCheck: Check data coming from a file for certain criteria.
    • OperateConstant: Add, subtract, multiply or divide each element in the data by a given constant.
    • ReplaceValues: Use the input dictionary to replace the keys with the values of the dictionary in the data.
  • Feature_extraction package:
    • CCA: Perform Canonical Correlation Analysis (CCA) and calculate matrices of scores for CCA.
    • ExtractComponentWeights: Convert transformation matrix metadata into a data block.
  • File_system package:
  • Formatting package:
    • BatchInstances: Group and batch instances based on some some criterion along a new feature axis.
    • SelectInstances: Select instances (trials) based on metadata contained in the instance data field.
  • Gaze package:
  • Machine_learning package:
  • Markers package:
  • Neural package:
  • Signal_processing package:
    • AlignStreams: Aligns multiple streams in the time domain.
    • AlignWindows: Aligns signals in two data packets.
    • CumulativeSum: Calculate the cumulative sum of the data over the specified axis.
    • Interpolate: Interpolate the given data along a desired axis (offline/online).
    • InterpolateGaps: Finds and interpolate gaps in data.
    • MSeq: Generates m sequence time series for the given order (m).
    • RefSignals: Generates sinusoidal reference signals with given frequencies.
    • TRCA: Perform Task-Related Component Analysis (TRCA) of the input data.
    • CDF: Evaluate the cumulative distribution function for a given distribution with some fixed parameters element-wise.
    • CorrelationFromCovariance: Convert a covariance matrix into a matrix of correlations.
    • PDF: Evaluate the probability density function for a given distribution with some fixed parameters element-wise.
    • ZTest: Calculate a z-test.
  • Tensor_math package:
    • FiniteDifferencesCentral: Calculate the discrete n'th derivative of the given data along a chosen axis using central finite differences.
    • AlignInstances: Line up streams with instance axes such that their instances and their order match.
    • AssignStandardChannelNames: Assigns channel names to incoming channels based on known montages of specific EEG devices, which can be selected from a list.
    • DiscardInvalidData: Remove slices of the incoming packets that contain invalid data.
    • HoldLastPacket: Holds the most recently received packet.
    • InterpolateMissingTimestamps: Interpolate data to repair gaps and jitter in the timestamps.
  • Visualization package:
    • InspectData: Shows the contents of the data packet in a table, including values, axes, streams, and markers.

New Resources:

  • Added new headmodel: ICBM (339 channels, 5003 vertices)

Node Changes:

  • Added Set Breakpoint property to every node (to pause execution of pipeline on that node) (see also engine/breakpoints.py). See Debugging your Pipelines/Nodes for details.
  • HeartRate and HeartRateVariability: Now work with both offline and online (streaming) data.
  • RespRate: (Respiration Rate): Now works with both offline and online (streaming) data.
  • ExportH5: added rename_on_write option (default off)
  • ImportFile, ImportXDF: new use_streamnames option to retain original stream names on import (instead of renaming to 'eeg', 'eeg-1')
  • ImportXDF: support for max_marker_len option to separate out very long markers into a string table
  • PathIterator: added support for meta-data filter conditions as a Python expression string
  • ExtractStreams: added support for wildcards
  • FuseStreams: added stream_name support
  • MergeStreams: allow lexigraphic sort of chunks in packet
  • Segmentation: time axis stamps in sliding window segmentation case are now relative (vs absolute); no longer requires a marker stream to use "sliding" online segmentation mode
  • SetInstanceDetails: added support for transferring properties from chunk.props
  • AssignTargets: added new 'conditions' mapping format that takes python expressions; 'auto' mapping format renamed to 'compat'
  • MeasureLoss: added option to output two feature axes instead of one
  • AddEventMarker: added new trial_end property
  • RemoveIntersectingMarkers: added support for not flagging the locking marker itself as the marker to avoid, and for removing markers whose neighborhoods intersect specified other marker
  • BandPower: added option to use either Multitaper or Welch spectrum, added baseline removal option and max_gap_length for segmentation
  • EventRelatedPotential: added max_gap_length param for segmentation
  • LSLInput: added support for connectivity serialization over LSL
  • LSLOutput: added support for connectivity serialization over LSL; added optional ignore_signal_changed flag
  • RegulateChunkSizes: added reset_on_gap, also_reset_buffer properties
  • FixSignalUnit: log indicates whether computed factor is too large/small
  • CombineChannels: supports wildcards; returns an error message if a channel group resolves to no source channels
  • SelectRoiGroups: now works if exact syntax of the incoming ROIs differs from the predefined one (as long as region names are the same)
  • ChannelBaselineCalibration: added support for robust estimation
  • ZMQInput: now outputs None once timeout on socket is reached; closes zmq socket when blocking_read is set to False
  • GroupedMean: added allow_markers property
  • ConcatInputs: required_inputs property to require n inputs to contain data before concatenating
  • FoldIntoAxis: now supports a customizable separator character
  • OverrideAxis: only_signals now defaults to True; warns if no signal blocks found
  • ShiftTimestamps: added timestamp_pairs port to feed in timestamp pairs to shift by

Engine Changes:

  • Debugging!: breakpoints.py allows a breakpoint to be triggered on an exception when running Neuropype in --debug mode, and/or a breakpoint to be set on each node. See Debugging your Pipelines/Nodes for details.
  • Added support for writing Neuropype pipelines with Jupyter Notebooks.
  • InstanceAxis.append_fields field_data argument is now optional (defaults to all-nan)
  • New Axis.data_without_props, Axis.get_unique_fields_and_values methods
  • New --on_error=raise argument (to raise an Exception on error) to serve.py
  • New Chunk.is_marker_stream method (returns True if stream has as an instance axis and no time axis)
  • ListPort: a numpy array will validate as (and be converted to) a list
  • New AliasPort class: allows an alias to be created for a port, for backward compatibility when renaming a port on a node

Bug Fixes/Minor Tweaks:

  • Too many to list!