Port EEGLAB envtopo with ranking, maps, and click-to-enlarge - #307
Port EEGLAB envtopo with ranking, maps, and click-to-enlarge#307innaamogolonova wants to merge 12 commits into
Conversation
…a compframes EEG.data is single; average/back-project the MATLAB reference in double so it matches EEGPrep's float64 (rtol=1e-6 holds). EEGLAB's comptimes output double-applies the sort permutation (envtopo.m:731) and is misaligned, so derive the expected latency from MATLAB's correct compframes instead.
Return EnvtopoResult (compvarorder/compvars/compframes/comptimes/compsplotted/ sortvar + figure) with all four sortvar modes (mp/pv/pp/rp), limcontrib/subcomps/ compnums/compsplot semantics, and an EEGLAB-style figure; retarget pop_envtopo to the new signature. Verified 5/5 against MATLAB envtopo.
|
@claude please review this PR which brings envtopo up to parity with EEGLAB's implementations. Highlight any points of concern that should be addressed before merge. |
|
Claude finished @innaamogolonova's task in 5m 27s —— View job Review — PR #307: Port EEGLAB envtopo
OverallSolid, well‑tested port. The Points to address before merge
Nice things worth calling out
Test status
|
|
Summary of changes:
|
|
@claude can you check the updates to this PR |
|
Claude finished @innaamogolonova's task in 3m 31s —— View job Re-review — PR #307 follow-up on prior feedback
OverallAll four follow-up commits directly address the prior feedback and land the intended fixes. One small test-structure regression from Verified fixes
One nit to fix before mergeTest-structure regression in
Fix is a small reshuffle: move the "non-left button" block back under Test status
Once the test-structure nit is untangled, this looks ready to merge. |
Port EEGLAB envtopo: rank ICA component contributions (mp/pv/pp/rp), draw the summed and per-component envelopes with scalp maps, and return the six EEGLAB outputs, verified against MATLAB. Adds click-to-enlarge, the summed-metric label, vert markers, and a sumenv toggle. Also fixes pop_saveset writing empty channel coordinates as 0, which misplaced no-location channels on reload.
Visual parity:
