Skip to content

ACE-neuro: Analysis of Calcium Imaging and Ephys

ACE-neuro (Analysis of Calcium Imaging and Ephys) is an integrated, object-oriented Python library designed for the systems neuroscience community. It provides high-level pipelines for processing simultaneous 1-photon calcium imaging (Miniscope) and multi-channel electrophysiology (EEG/LFP) data.

For a class-diagram overview of core managers and processors, see the Mermaid diagram in the README on GitHub.


  • Unified Search

    Full integrated search functionality across all pipelines, guides, and API references.

  • Multimodal Alignment

    Align miniscope and ephys time bases (TTL-based or hardware-clock paths, depending on loaders) for cross-modal analysis.

  • CNMF-E Integrated

    Native wrappers around CaImAn for optimized source extraction in micro-endoscopic data.

  • HPC Ready

    Headless mode and Slurm support built-in for high-throughput batch processing on supercomputers.


Step-by-step tutorials

These notebooks explain project_path (folder with experiments.csv and analysis_parameters.csv) vs data_path (raw recordings), then walk each pipeline stage by stage:


Installation

The Miniscope pipeline depends on CaImAn and a full scientific stack. Do not rely on pip install -e . alone unless you already have CaImAn working on your machine.

  • Full setup (recommended): follow Getting started — Installation (conda + linux_environment.yml on Linux; macOS/Windows are best-effort via conda-forge).
  • Documentation builds only: Read the Docs installs the package without CaImAn so API pages can build without the imaging stack; that environment is not sufficient to run CNMF-E locally.

For architecture, extension points, and supported acquisition formats, see Getting started and Creating new data loaders.


Tests and sample data

  • tests/data/sample_recording/ — Committed fixtures for factory tests and the optional slow Miniscope CNMF-E end-to-end test.
  • To regenerate fixtures from a local sample data/ tree, use scripts/create_test_data.py (see the README Development and testing section).

API Overview

ACE-neuro provides a clear, modular API optimized for both interactive use and automated scripts.

from ace_neuro.pipelines.multimodal import MultimodalPipeline

# Initialize and run a synchronized analysis
api = MultimodalPipeline()
api.run(
    line_num=97,
    project_path="/path/to/project",
    data_path="/path/to/raw_data",
    headless=True  # Run without GUIs for batch processing
)

Parameters: every pipeline exposes a run(...) method whose arguments are keyword-only in practice (see docstrings). You set them via Python kwargs, optional analysis_parameters.csv (loaded with load_analysis_params), and CLI defaults for python -m ace_neuro.pipelines.*. The precedence and full pattern are spelled out under section 5a (Passing parameters into the pipelines) in Getting started.


Core Features

  • Miniscope: Preprocessing, Motion Correction, CNMF-E, and Post-processing GUI.
  • Ephys: Neuralynx/ONIX import, artifact removal, bandpass filtering, and spectral analysis.
  • Alignment: TTL-based synchronization of dual-stream datasets.
  • Data Management: CSV-driven experiment cohorts and automated Box cloud storage downloads.
  • Modern Infrastructure: Type-hinted Python, Google-style docstrings, and automated testing.

[Getting Started](getting_started.md){ .md-button .md-button--primary } [Tutorials: Miniscope](notebooks/miniscope_pipeline_tutorial.ipynb){ .md-button } [API Reference](api/index.md){ .md-button }