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.ymlon 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, usescripts/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 }