Skip to content

pyAMICA 0.1.1

Choose a tag to compare

@neuromechanist neuromechanist released this 13 Jul 22:58
9a92d49

Patch release covering validation-methodology and correctness fixes since v0.1.0.

Highlights

  • Amari distance: a second, permutation/scale-invariant unmixing-matrix
    comparison metric (Amari, Cichocki & Yang 1996) alongside the existing
    Hungarian-matched correlation, used throughout the Fortran-parity
    validation (single-model ~0.006; multi-model ensemble equivalence
    confirmed, run-level permutation p>0.999).
  • Performance tables: Table 2 and the docs performance guide gained
    native-Fortran rows (Intel 24-core workstation, Apple Silicon 8-core) and
    the full CPU core-scaling comparison, alongside the existing GPU/torch
    numbers.
  • Type-safety fixes: validate_implementations.py's run_fortran_amica
    is now correctly typed Optional[Dict] (it returns None on several
    failure paths), removing a latent possibly-unbound-variable risk in its
    exception handling; load_eeglab_data's dtype annotation now matches
    its default value.
  • Multi-model equivalence test fix: the ensemble equivalence test now
    uses a valid run-level permutation test (respecting the dependence among
    the 40 runs' pairwise correlations) instead of a pseudoreplicated
    Mann-Whitney/TOST.
  • Corrected a stale float32-speedup claim and added a funding acknowledgement.

Validation

Correctness is defined as parity with the reference Fortran binary, measured
with two complementary metrics (Hungarian-matched correlation and Amari
distance), and validated only on real sample EEG -- never synthetic data.
See the documentation for the full validation and per-run detail.

Install

```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
uv sync
```