Skip to content

Phase 2: clean_rawdata and FIRFilt bundled-plugin completion #159

Description

@suraj-ranganath

🤖 Phase 2 completes the in-repo cleaning and filtering plugin depth that researchers use in preprocessing workflows.

Summary

Finish useful standalone parity for bundled clean_rawdata and firfilt workflows. This phase should not port Manopt or every MATLAB private helper blindly; it should deliver user-visible cleaning/filtering behavior, diagnostics, reports, boundary behavior, progress output, GUI parity, and tests.

Scope

  • clean_rawdata:
    • Riemannian ASR behavior decisions and implementation where feasible.
    • asr_calibrate_r / asr_process_r equivalents or explicit optional-dependency limitation if not maintainable.
    • vis_artifacts-style diagnostics integrated with EEGPrep/EEGBrowser where useful.
    • EEGLAB-like progress messages for GUI plus eegprep-console users.
    • Nonfinite data handling and sample-data regression coverage.
  • firfilt:
    • findboundaries, firfilt, firfiltsplit, firfiltreport, fir_filterdcpadded behavior where useful.
    • Order/window helpers: kaiserbeta, invkaiserbeta, invfirwsord, minphaserceps, windows.
    • Order dialogs/wrappers: pop_firpmord, pop_firwsord, pop_kaiserbeta, pop_xfirws if user-facing in EEGLAB.
    • Frequency-response plotting/reporting through native Python/Qt/matplotlib where appropriate.

Acceptance Criteria

  • Cleaning/filtering workflows operate on continuous and epoched data, respect boundary events, and invalidate/reactivate ICA consistently with EEGLAB expectations.
  • GUI dialogs and reports match EEGLAB layout, labels, defaults, enabled states, and workflow where applicable.
  • eegprep-console receives replayable commands and progress output in the right order.
  • MATLAB parity tests cover deterministic filter/order/helper outputs.
  • Sample-data integration tests cover realistic cleaning/filtering flows.
  • No broad Manopt port is added unless it is directly needed and justified.

Required References

  • AGENTS.md
  • src/eegprep/eeglab/plugins/clean_rawdata/
  • src/eegprep/eeglab/plugins/firfilt/
  • src/eegprep/plugins/clean_rawdata/
  • src/eegprep/plugins/firfilt/
  • .agents/skills/eegprep-feature-development/SKILL.md
  • .agents/skills/eeglab-gui-visual-parity/SKILL.md
  • .agents/skills/gui-agent-flow-qa/SKILL.md

/goal

/goal Complete standalone EEGPrep parity for useful clean_rawdata and firfilt bundled-plugin workflows. Use EEGLAB plugin source as the oracle, implement user-facing cleaning/filtering/report/diagnostic behavior without stale Manopt bloat or runtime EEGLAB dependency, preserve GUI plus eegprep-console synchronization, add MATLAB parity tests for deterministic helpers, sample_data integration tests, visual parity screenshots for dialogs/reports, progress-output tests, ruff/format/ty, non-slow pytest, and pre-commit. Fix review findings unless they are explicit scope creep and report any accepted limitations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    phaseEpic implementation phase

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions