Frequently Asked Questions#

Which Python versions are supported?#

amica supports Python 3.10 and newer.


Does amica require JAX?#

No.

amica runs out of the box using the NumPy backend. Installing the jax extra enables hardware acceleration on supported systems.

pip install "amica[jax]"

Does amica require a GPU?#

No.

The NumPy backend runs on any machine. If JAX with GPU support is installed, amica will automatically use the GPU.


Can I use amica with MNE-Python?#

Yes.

amica provides a high-level fit_ica function that returns a standard mne.preprocessing.ICA object, allowing you to use the full MNE visualization and artifact-rejection workflow.


What input format does amica expect?#

The core API expects a NumPy array with shape

(n_channels, n_samples)

When using the MNE interface, simply pass an mne.io.Raw object.


Can amica fit multiple ICA models?#

Yes.

AMICA supports fitting multiple ICA models (num_models > 1) to capture non-stationary data. See the examples and API documentation for details.


How does amica compare with the original MATLAB AMICA?#

amica is designed to reproduce the original AMICA algorithm while providing a native Python implementation, optional JAX acceleration, and seamless integration with the scientific Python ecosystem.

Validation experiments comparing amica with the original MATLAB implementation are available in the documentation.


Where can I find examples?#

See the Examples section of the documentation for:

  • MNE-Python integration

  • Pure NumPy/JAX workflows

  • Validation examples

  • HPC/Slurm execution


I found a bug. Where should I report it?#

Please open an issue on GitHub:

snesmaeili/amica#issues

When possible, include:

  • your operating system

  • Python version

  • amica version

  • backend (NumPy or JAX)

  • a minimal reproducible example


Can I contribute?#

Absolutely!

Please read the Contributing Guide before opening a pull request.