Version 0.6.0π
Enhancementsπ
Implement dynamic per-chunk percentile thresholding in continuous dual-stream deartifacting (matching MATLAB
clean_EEG.m), computing eigenvalue thresholds dynamically per epoch viaexp(T1 * prctile(log(|lambda|), percentile) - 100)in both NumPy and PyTorch backends (Tomas Ros).Add configurable channel sample constraint multiplier (default
k = 1.0) enforcing minimum chunk sample durationmin_samples = max(2^J, k * n_channels)to guarantee full rank of sample covariance matrices on high-density channel arrays (Tomas Ros).Support
GEDAI_CHANNEL_MULTIPLIERenvironment variable to tune or disable channel multiplier constraints on demand (Tomas Ros).Optimize adaptive MEG Gradiometer artifact subspace projection with restored artifact spectrum prescan, selecting optimal spatial component dimensionality (Tomas Ros).
Improve ENOVA calculation robustness across channels by computing temporal variance per channel before averaging, providing invariance to inter-channel DC sensor offsets (Tomas Ros).
Add decimal precision formatting for SENSAI and ENOVA metrics in
gedai.viz.sensai_viz.plot_sensai_visualization(Tomas Ros).
Bugsπ
API and behavior changesπ
Channel sample constraint multiplier defaults to
1.0, ensuring sample covariance matrices have at least as many samples as channels while avoiding over-inflation of short epochs.