Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
],
"related_identifiers": [
{
"identifier": "https://eeglab.org/pyAMICA/",
"identifier": "https://eeglab.org/pAMICA/",
"relation": "isDocumentedBy",
"scheme": "url",
"resource_type": "publication-softwaredocumentation"
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ authors:
version: 0.2.1
date-released: "2026-07-18"
license: BSD-3-Clause
repository-code: "https://github.com/sccn/pyAMICA"
url: "https://eeglab.org/pyAMICA/"
repository-code: "https://github.com/sccn/pAMICA"
url: "https://eeglab.org/pAMICA/"
keywords:
- AMICA
- independent component analysis
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ standard rather than to "it converges."
## Getting help and reporting issues

- **Questions, bugs, and feature requests:** please open an issue on the
[GitHub issue tracker](https://github.com/sccn/pyAMICA/issues).
[GitHub issue tracker](https://github.com/sccn/pAMICA/issues).
- When reporting a bug, include the pamica version, platform, device
(CPU/CUDA/MPS/MLX), precision (float32/float64), and a minimal example.

Expand All @@ -19,8 +19,8 @@ pamica uses [UV](https://docs.astral.sh/uv/) for environment and dependency
management.

```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
git clone https://github.com/sccn/pAMICA.git
cd pAMICA
uv sync # install the project and dependencies
uv run pytest # run the test suite
```
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# pAMICA: Adaptive Mixture ICA

[![CI](https://github.com/sccn/pyAMICA/actions/workflows/ci.yml/badge.svg)](https://github.com/sccn/pyAMICA/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/sccn/pyAMICA/branch/main/graph/badge.svg)](https://codecov.io/gh/sccn/pyAMICA)
[![CI](https://github.com/sccn/pAMICA/actions/workflows/ci.yml/badge.svg)](https://github.com/sccn/pAMICA/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/sccn/pAMICA/branch/main/graph/badge.svg)](https://codecov.io/gh/sccn/pAMICA)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21312148.svg)](https://doi.org/10.5281/zenodo.21312148)
[![Docs](https://img.shields.io/badge/docs-eeglab.org%2FpyAMICA-blue)](https://eeglab.org/pyAMICA/)
[![Docs](https://img.shields.io/badge/docs-eeglab.org%2FpAMICA-blue)](https://eeglab.org/pAMICA/)

Python (PyTorch) implementation of Adaptive Mixture Independent Component Analysis
(AMICA) that reproduces the reference Fortran implementation within numerical
Expand All @@ -14,7 +14,7 @@ in EEGLAB.

Single-model results match the Fortran reference (Hungarian-matched component correlation ~ 0.998
on well-determined data, Newton disabled); see the
[documentation](https://eeglab.org/pyAMICA/) for validation details and the
[documentation](https://eeglab.org/pAMICA/) for validation details and the
backend-selection guide.

## Overview
Expand All @@ -33,8 +33,8 @@ AMICA (Adaptive Mixture ICA) is an advanced blind source separation algorithm th
The canonical environment is [uv](https://docs.astral.sh/uv/):

```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
git clone https://github.com/sccn/pAMICA.git
cd pAMICA
uv sync # install dependencies into a managed venv
uv run pytest # optional: run the tests
```
Expand Down Expand Up @@ -95,7 +95,7 @@ The NumPy reference backend keeps a JSON-driven command-line interface:
python -m pamica.numpy_impl.cli params.json --outdir results
```

See the [documentation](https://eeglab.org/pyAMICA/) for the full API, the
See the [documentation](https://eeglab.org/pAMICA/) for the full API, the
parameter reference, and the backend-selection and validation guides.

## Citation
Expand Down
2 changes: 1 addition & 1 deletion docs/api/native-backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ asset and caches it, so later runs are offline:
it has passed its checksum; a failed or tampered download never runs.
- **Platforms:** prebuilt binaries are attached to each release for macOS arm64,
Linux x64, Linux arm64 and Windows x64. Windows arm64 has no native Fortran
toolchain yet ([#173](https://github.com/sccn/pyAMICA/issues/173)); it maps to
toolchain yet ([#173](https://github.com/sccn/pAMICA/issues/173)); it maps to
the x64 binary, which runs under Windows 11 ARM's x64 emulation.

Install the binary explicitly (for example to pre-populate the cache in an
Expand Down
2 changes: 1 addition & 1 deletion docs/api/viz.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ mutating pyplot's global state.
probable model at each timepoint.
A per-component scalp-topography plot is not included yet: deriving source
activations from a loaded `AmicaOutput` depends on an unsettled `W` convention
question, tracked in [#159](https://github.com/sccn/pyAMICA/issues/159).
question, tracked in [#159](https://github.com/sccn/pAMICA/issues/159).

```python
from pamica import plot_pmi_heatmap, plot_model_probability
Expand Down
2 changes: 1 addition & 1 deletion docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Changelog

Release notes are also published on the
[GitHub releases page](https://github.com/sccn/pyAMICA/releases).
[GitHub releases page](https://github.com/sccn/pAMICA/releases).

## 0.2.1

Expand Down
10 changes: 5 additions & 5 deletions docs/development/contributing.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Contributing

Contributions are welcome. This page summarizes the development workflow; see the
full [CONTRIBUTING](https://github.com/sccn/pyAMICA/blob/main/CONTRIBUTING.md)
and [Code of Conduct](https://github.com/sccn/pyAMICA/blob/main/CODE_OF_CONDUCT.md)
full [CONTRIBUTING](https://github.com/sccn/pAMICA/blob/main/CONTRIBUTING.md)
and [Code of Conduct](https://github.com/sccn/pAMICA/blob/main/CODE_OF_CONDUCT.md)
in the repository root.

## Development setup

```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
git clone https://github.com/sccn/pAMICA.git
cd pAMICA
uv sync # install the project and dependencies
uv run pytest # run the test suite
```
Expand All @@ -27,5 +27,5 @@ uv run pytest # run the test suite
## Reporting issues and getting help

Please open an issue on the
[GitHub issue tracker](https://github.com/sccn/pyAMICA/issues) for bug
[GitHub issue tracker](https://github.com/sccn/pAMICA/issues) for bug
reports, feature requests, and questions.
4 changes: 2 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ management.
### From source

```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
git clone https://github.com/sccn/pAMICA.git
cd pAMICA
uv sync # install the project and its dependencies into .venv
```

Expand Down
12 changes: 6 additions & 6 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# pAMICA documentation (MkDocs Material).
# Deployed to GitHub Pages by .github/workflows/docs.yml. The repo lives at
# github.com/sccn/pyAMICA, whose project Pages inherit the sccn org Pages custom
# domain (eeglab.org) at the /pyAMICA subpath, so the site is served at
# https://eeglab.org/pyAMICA/. Links are relative so the build is location-independent.
# github.com/sccn/pAMICA, whose project Pages inherit the sccn org Pages custom
# domain (eeglab.org) at the /pAMICA subpath, so the site is served at
# https://eeglab.org/pAMICA/. Links are relative so the build is location-independent.

site_name: pAMICA Documentation
site_url: https://eeglab.org/pyAMICA/
site_url: https://eeglab.org/pAMICA/
site_description: Python (PyTorch) implementation of Adaptive Mixture ICA (AMICA) with Fortran parity and GPU/MPS/CPU support.
site_author: Seyed Yahya Shirazi

repo_url: https://github.com/sccn/pyAMICA/
repo_name: sccn/pyAMICA
repo_url: https://github.com/sccn/pAMICA/
repo_name: sccn/pAMICA
edit_uri: edit/main/docs/

theme:
Expand Down
2 changes: 1 addition & 1 deletion pamica/native/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import urllib.request
from pathlib import Path

_REPO = os.environ.get("PAMICA_NATIVE_REPO", "sccn/pyAMICA")
_REPO = os.environ.get("PAMICA_NATIVE_REPO", "sccn/pAMICA")
_ENV_BINARY = "PAMICA_NATIVE_BINARY"
_ENV_CACHE = "PAMICA_NATIVE_CACHE"

Expand Down
4 changes: 2 additions & 2 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ a single-model output file is byte-identical in layout to a native AMICA file an
and multi-model output round-trips through the same loader. Correctness is defined as parity with the Fortran reference for the single-model case and, because multi-model AMICA is not partition-identifiable, as a similar distribution of solutions for the multi-model case;
both are validated on real EEG against the reference binary.
A minimal example is a scikit-learn-style call, `AMICA(n_models=1, n_mix=3).fit(X)` on a `(channels, samples)` array (full workflow in the README).
The software is at <https://github.com/sccn/pyAMICA> (archived at doi:10.5281/zenodo.21312148).
The software is at <https://github.com/sccn/pAMICA> (archived at doi:10.5281/zenodo.21312148).

# Statement of need

Expand Down Expand Up @@ -136,7 +136,7 @@ The correctness harness compares `pamica` against Fortran with two metrics, Hung
the multi-model and score-function checks need no external download (bundled sample only).
The full per-channel and multi-model performance tables, the per-run Amari-distance detail,
and the data-size sweep, along with the step-by-step commands to reproduce every number here,
are in the documentation (<https://eeglab.org/pyAMICA/guides/validation/>).
are in the documentation (<https://eeglab.org/pAMICA/guides/validation/>).

# State of the field

Expand Down
Binary file modified paper.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ docs = [
viz = ["mne>=1.6"]

[project.urls]
Homepage = "https://github.com/sccn/pyAMICA"
Repository = "https://github.com/sccn/pyAMICA"
Homepage = "https://github.com/sccn/pAMICA"
Repository = "https://github.com/sccn/pAMICA"

[tool.setuptools]
# List subpackages explicitly so the wheel is deterministic across platforms
Expand Down