Neuropype Version: 2021.0.3
- Reinstate some deprecated nodes that were removed prematurely
- Bugfix in ArtifactRemoval node
Neuropype Version: 2021.0.2
- Build-related bugfix
Neuropype Version: 2021.0.1
- Update LSLInput, LSLOutput nodes to handle LSL stream format from certain devices
- Fix Windows 11 compatibility issue
Neuropype Version: 2021.0.0
Installation Notes:
- Windows 10 and up are officially supported. (There may be an issue installing Neuropype on certain Windows 7 versions. Windows 7 may or may not be fully supported going forward.)
Node packages:
- New
NIRS
package with nodes specific to NIRS signal data
New Nodes:
- Connectivity package:
- Efficiency: Calculate the (global or local) efficiency parameters of a weighted-directed network.
- Diagnostics package:
- DataCounter: Counts data passing through the node in a given stream, and prints a log message every n seconds (configurable) with the number of samples received (along the time axis), since last check as well as total so far.
- EegQualityMetrics: Computes various quality metrics for an EEG dataset/file.
- NirsIntensityQualityMetrics: Compute various quality metrics from NIRS "raw" Intensity signal data.
- NirsOpticalDensityQualityMetrics: Computes various quality metrics from NIRS data that has been converted to optical density.
- SignalToNoise: Signal to noise, computed as the log ratio of signal (filtered) and noise (unfiltered - filtered) data segments, with a baseline removed.
- ConditionalReplaceValues: Replace values that meet a given criteria.
- Round: Round each element.
- Feature_extraction package:
- CovarianceTangentSpace: Project covariance matrices into a tangent space around their mean.
- File_system package:
- ImportNirs: Import data from a .nirs file.
- Formatting package:
- FuseStreams: Fuse the streams in the given data into a single multi-channel stream.
- SeparateSignalStreams: Separate the signal streams from the non-signal streams.
- SetInstanceDetails: Set metadata for each instance (trial) in the data.
- Machine_learning package:
- CovarianceMDM: Classify covariance matrices based on a Riemannian minimum-distance-to-mean criterion.
- LinearToProbabilities: Convert linear predictions to (two-class) probabilities.
- Markers package:
- CalculateMarkerTimeDifference: Calculate time differences between markers and a provided list of timestamps.
- Network package:
- MIDIOutput: Send data stream to a MIDI Output Port.
- Nirs package:
- AddProbeLocations: Assign probe locations to channels from a NIRS device.
- BaselinePCA: Perform Baseline PCA artifact removal.
- CBSI: Apply the Correlation-Based Signal Improvement method to enhance the HbO/HbR contrast and downweight artifacts.
- EstimateConcentrations: Estimate chromophore concentrations (HbO, HbR) from delta-optical density (OD) at multiple wavelengths.
- IntensityToOpticalDensity: Convert light intensity to delta-optical density (OD).
- SeparateChannelsByDistance: Calculate the distance between channels and separate/remove those which fall below/above a threshold.
- TDDR: Apply the TDDR method for fNIRS motion artifact reduction.
- ReadEnvironmentVariable: Reads in an environment variable from the system.
- Signal_processing package:
- ArtifactRegression: Remove artifacts by regression from data using specified reference channels.
- CenterOfMass: Find the center of mass or centroid along an axis.
- ChannelSubset: Select a fraction or number of channels to retain in the data.
- DelaySignal: Delay signal by a given number of samples.
- DetectLineNoise: Detects the line noise (mains) frequency of raw signal data.
- GuessSamplingRate: Finds the estimated sampling rate of streamed data.
- IncrementalWhitening: Perform a whitening (sphering) transform of the signal incrementally.
- InterpolateGaps: Finds and interpolate gaps in data.
- SpectrallyWhitenTimeSeries: IIR filter a time series to produce a flat spectrum.
- Source_localization package:
- CoregisterExistingLocations: Coregister the locations in the given data with the NeuroPype internal coordinate system.
- ROIsToVertices: Expand ROI activations such that each ROI gets broadcast to all of its vertices.
- DateOperation: Perform one out of a range of supported date-related operations.
- CovarianceTaper: Compute a spatial taper matrix for covariance regularization.
- LinearTrend: Calculate the linear trend over a given axis.
- OverlappedLinearModel: Estimate a linear model with temporally overlapped responses.
- ParseStatsTable: Extract data from stats stream returned by a stats node.
- Tensor_math package:
- SetAxisValues: Set or replace values for an axis.
- ExtractStreamProperty: Extract a given property from one of the streams of the given input data packet.
- FusePredictionsAndMarkers: Fuse a set of BCI predictions and markers together into a stream that can be evaluated by MeasureLoss.
- InterpolateMissingTimestamps: Interpolate data to repair gaps and jitter in the timestamps.
- RenameAxisValues: Rename the values in an array of an axis.
- RetainChannelMetadata: Store and recover space axis (channel) meta-data upon save/load of a model.
- SetAxisLabel: Set a custom label on a given axis.
- SetStreamProperties: Set (override or add) meta-data properties of a given stream.
- Visualization package:
- TimeSeriesSweepPlot: Plot a multi-channel continuous time series.
New Resources:
- AdultMNI152 headmodel plus support for .mshs headmodels
- Example pipelines for use of Gaze nodes
Engine updates:
- Axis: allow ad-hoc addition of arrays to axis subclasses
- Axis: axis arrays now support non ndarray values (i.e., lists), support for
[]
indexing ability - Axis: find axis by
custom_label
using axis.custom_label syntax - Axis: new
.items
property to make arrays & props easier to find in an axis - Axis: support for initialization of an axis array whose shape differs in extra dimensions
- SpaceAxis: added
positions_source
array for positions of sources (positions
used for detectors) (NIRS) - New NamedAxis base class (provides .names field to SpaceAxis, FeatureAxis)
- InstanceAxis: support for struct arrays and/or arrays of recs.
- Block: new splat syntax (i.e.
..., *space[:5], ...
expands to all space axes in the block) - Block: new
+
operator for axis concatenation - Block: colon index
:
returns a view not a copy - Block: indexing no longer copies non-mutated axes (memory optimization)
- Block: support for backends other than numpy
- Added limited copy-on-write support to Packet data structure and its components
- Added support for declaring custom axis types
- Expanded constants.py with NIRS-related constants and others
- Port: added
ComboPort
property - DataPort can now automatically wrap/unwrap plain Chunks and/or Blocks to Packets, allowing nodes to be seamlessly callable on these object types
- Many usability improvements
Breaking changes:
- Opening a pipeline that was created with Pipeline Designer 2021 (a separate application that is distributed with the Neuropype Suite) in older versions Pipeline Designer (2020 or older), will revert the nodes to their custom settings. Install Neuropype 2021 to ensure ongoing compatibility.
- Block: indexing a Block axis using an integer index or a single index value produces a view (indexing a block axis with a 1-element list produces a copy as before)
Node Features:
- All: Memory performance optimizations by avoiding copying of non-mutated axes when passing through a node
- Cardiac: option to wait for buffer (time or samples) to fill before outputting values
- ChannelDiagnostics: added
line_noise_frequency
andmin_corr
properties - CopyData: now copies data of any type, not just Packet
- EstimateLag: add
threshold
property, window popup (optional), and output lag values through separate port - NoDataAlert: add
popup_window
property to allow/suppress popup window - ExportH5 / ImportH5: support for chunked storage and compression, can specify chunk size
- ExportMDA: support MDA file format
- ExportNWB: add I/O for NWB:N file format
- ExportStructure: Uses pickle protocol 4 by default (removes 4G limit)
- ImportCSV: add properties to specify unit, skip empty rows, custom delimiter; support import of marker data only
- Import/ExportSET: support for Matlab 7.3+
- ImportFile: support for python pickle (.pkl) format
- ImportEDF / ImportVHDR: added support for stim_channel param
- ImportXDF: support for source/detector positions and wavelengths (NIRS)
- ExtractStreams: allow selection of streams by stream props
- RenameStreams: wildcard support
- SelectInstances: added support for an additional string "condition" clause that combines with the programmatic criteria
- StreamData: data dtype conversion now optional (default float64 for backward compat)
- ExtractGazeEvents: add
has_markers
flag - AssignTargets: support use of formulas to calculate the target value (
conditions
mapping format) - BalanceClasses: handle case of more than one eligible stream
- BayesianGaussianMixtureClassification: added VBGMM classifier mode
- LarsRegression: support for leave-one-X-out where X is identified by an Instance axis field
- CovarianceMDM: example for writing a non-sklearn based machine learning node
- LinearDiscriminantAnalysis: support for robust estimation, MCD method, orthogonal dimensionality reduction
- LogisticRegression: support for elasticnet regularizer, feature scaling; updated solvers
- SupportVectorClassification: add
cond_field
,feature_selection
properties - AddEventMarker: add
match_first_event_only
param to only create new marker for first matched event in trial - InsertMarkers: support for condition expressions for the anchor markers and the excepted markers
- TrimMarkerSegment: add
before_start
andafter_end
properties; allow*
to indicate any start/end marker; support for dropping markers - LSLInput/Output: add support for metadata in
field; relay metadata including channel positions and unit; buffer optimizations; accommodate common stream header errors; separator
property for joining tensor axes; make stream same data type as incoming block data; addednumeric_marker_precision
property,marker_field
property to select field to use to populate marker stream - BadChannelRemoval: store list of bad channels removed in props.diagnostics.bad_channels
- ChannelRepair: added support for .positions_source field in the space axis
- FixSignalUnit: significantly faster
- InterpolateMissingChannels: support for NIRS; support for preventing rank-deficient data using additive noise;
montage_type
property - RemoveBadTimeWindows: store percent (ratio) of data removed in props.diagnostics.dropped_samples_ratio
- RemoveOutlierTrials: New artifact features for NIRS
- ApplyLinearTransformation: added support for pre/post pending an intercept feature
- MovingWindow: re-emit last most recent output Packet if input is None
- PeakAmplitude: add
direction
property where==either
finds either the negative or positive peak (whichever is greater) - PruneFlatlineChannels: store list of pruned channels in props.diagnostics.flatline_channels; support for detecting channels that are flat the whole recording
- RobustRectangularStandardization: support for half-normal distribution (e.g. rectified)
- SignalWhitening: support for riemannian whitening; ability to do offline chunk-by-chunk with multiprocessing; support for backing up state
- ROIActivations: support for fnmatch syntax in
subset
param; addfill_with_nan
property; added ROI groupings for specific networks (MNN, salience, DMN) - RemoveUnlocalizedChannels: support for protecting channels from removal; additional data output for unlocalized data
- Averages: add
bandwidths
array to frequency axis - ConcatInputs: use first nonempty dataport as reference; match
properties
to non-empty dataports; allow custom_label to be assigned to new axis - OverrideAxis: refactor for special cases
- OverrideTimestamps: always set srate to 1.0 if only one timestamp; handle case where no nominal_rate specified; support for marker streams
- ShiftTimestamps:
beginning_from_zero
now works with streaming data; adduse_time_axis
property to force use of time axis - BarPlot: add
auto_bar_colors
property to auto assign colors from colormap, addfont_size
property for plot text - TimeSeriesPlot: add
font_size
property for plot text - TopoPlotViewer: add
background_color
param - ParameterPort: remove
enum
as a value_type; addlimits
andcombo
as values forselect
property; domain support for subtypes (i.e.,list[int]
)
Renamed Nodes:
- SeparateSignalChunks --> SeparateSignalStreams
- OverrideProperties --> SetStreamProperties
- QualityMetricsCompute --> EegQualityMetrics
- OverrideAxisLabel --> SetAxisLabel
- ExtractChunkProperty --> ExtractStreamProperty
- ExtractStream --> ExtractStreams
- StringFormat --> FormatString
- ListConstant --> ConstantList
- StringConstant --> ConstantString
Deprecated Nodes:
- AccumulateCalibrationDataMultiEmit --> use AccumulateCalibrationData
- FileIterator --> use PathIterator
- ConditionalMean --> use GroupedMean
- RenameChannels --> use SetAxisValues
- MovingWindowMultitaperSpectrum --> use MovingWindow and MultitaperSpectrum in succession
- MovingWindowWelchSpectrum --> use MovingWindow and WelchSpectrum in succession