MEA-NAP for Python

MEA-NAP’s analysis pipeline — spike detection, neuronal activity, functional connectivity, and network topology — is being ported from MATLAB to Python, living alongside the original MATLAB codebase in the same repository. It ships as an installable package (meanap) with a desktop GUI, a Python API you can script against directly, and a self-contained HTML report viewer for browsing results.

Tip

New here? Start with Installation, then Quickstart — from a fresh clone to a rendered network plot in about five minutes, using the bundled example dataset.

🚀 Installation

Install with uv and launch the meanap-gui desktop app.

Installation
⚡ Quickstart

Run the bundled example dataset end-to-end and open the HTML report.

Quickstart
🖥️ GUI guide

Every tab in the desktop app — Paths, Recording, Spike detection, Connectivity, Pipeline — field by field.

GUI guide
🔬 CAT-NAP (calcium imaging)

Analyze suite2p calcium-imaging recordings: denoising, peak detection, trace preview.

CAT-NAP (calcium imaging)
🕸️ Network Viewer

Interactively explore functional connectivity from a completed run, with cell-type overlays.

Network Viewer
📓 Notebook tutorial

Load a real MEA-NAP output file and drive the plotting API directly from Python — runnable, with real output baked in.

Tutorial: driving the network-plotting API directly
📊 Output report

The self-contained, deep-linkable report.html viewer generated after every run.

Output report
🔀 MATLAB vs. Python

What’s ported with exact parity, what’s approximate, and what’s not there yet — read this before relying on the Python port for real analysis.

MATLAB vs. Python: what’s ported, what’s approximate, what’s missing
📚 API reference

Auto-generated reference for the meanap package: pipeline steps, network plotting, CAT-NAP.

API reference

How the Python port relates to MATLAB

The Python port (src/meanap/) mirrors MATLAB’s four core analysis steps —

  1. Spike detection

  2. Neuronal activity (firing rates, burst detection)

  3. Functional connectivity (spike time tiling coefficient)

  4. Network metrics (graph theory, node cartography, small-worldness, …)

— and writes the same output folder structure the MATLAB pipeline produces, so a Python run and a MATLAB run of the same data land in a comparable shape. It is a genuine reimplementation, not a wrapper around MATLAB: no MATLAB license or installation is required to use it.

The Python port is younger than the MATLAB pipeline and does not yet cover every feature (statistical group comparisons across ages/genotypes, for example, are not implemented yet). See MATLAB vs. Python: what’s ported, what’s approximate, what’s missing for the current, honest state of parity before you rely on it for a publication figure.