Skip to content

v1.6.0

Choose a tag to compare

@edeno edeno released this 16 Oct 16:38
· 14 commits to master since this release

[1.6.0] - 2025-10-16

Added

  • Critical UX Improvements: Comprehensive input validation to prevent common user errors

    • Speed units validation: Warns when speed appears to be in m/s instead of cm/s, preventing silent data loss
    • Time units validation: Errors when time array appears to be in samples instead of seconds
    • Sampling frequency validation: Warns when time step doesn't match expected sampling rate
    • Array shape validation: Clear error messages for wrong LFP dimensions (1D, 0D, >2D arrays)
    • Array length validation: Detailed error showing exact sample counts when arrays don't match
    • Data length validation: Checks minimum data length required for filtering (954 samples)
    • Filter sampling frequency validation: Prevents crashes with incompatible sampling rates (<1200 Hz)
  • Enhanced Documentation

    • Added comprehensive Troubleshooting section to README with solutions for common errors
    • Added Parameter Selection Guide table with recommended adjustment strategies
    • Added complete workflow example to Kay_ripple_detector docstring showing filtering → detection steps
    • Clarified that multiunit_HSE_detector accepts both binary (0/1) and spike count formats
    • Added amplitude units documentation to simulate_LFP (arbitrary units with SNR guidance)
    • Bolded all unit specifications in docstrings (seconds, cm/s, Hz) for clarity
  • Improved Error Messages

    • All new error messages follow WHAT/WHY/HOW pattern with actionable solutions
    • Errors include working code examples for fixing issues
    • Validation errors provide specific details (array shapes, sample counts, expected values)

Changed

  • BREAKING: _preprocess_detector_inputs() now requires sampling_frequency and speed_threshold parameters for validation (internal function, unlikely to affect users)
  • Enhanced parameter descriptions across all detector functions with clearer units and adjustment guidance
  • Improved filter_ripple_band() error handling to catch issues before scipy crashes

Fixed

  • Prevented cryptic numpy errors (axis 1 is out of bounds, operands could not be broadcast) with clear validation errors
  • Fixed misleading filter warning-then-crash behavior for incompatible sampling frequencies
  • Improved empty result guidance - docstrings now suggest specific parameter adjustments