The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
While the major version is 0.x, breaking API changes may land in any release;
treat the package as alpha-stage until 1.0.
- Maze 1D occupancy now bins each arm independently into an integer
number of ~
bin_width_mmbins, so every arm boundary falls exactly on a bin edge. Previously a single global grid spanned the whole linearized axis, letting a bin straddle an arm/direction junction and pool frames from two segments. Maze rate maps, spatial information, and place-cell classification can change slightly (mostly near junctions); re-run the maze pipeline to regenerate existing bundles. Arena pipelines are unaffected.
compute_occupancy_map_1daccepts an optionaledgesargument for explicit (possibly non-uniform) bin edges; the uniformn_bins/pos_rangepath is unchanged.
clip_to_arenanow logs the number of clamped frames and the maximum out-of-bounds deviation at INFO. Previously silent — closes the "no silent data repair" policy gap.
- Stability shuffle no longer injects
0.0for degenerate iterations; the p-value denominator now uses the count of valid shuffles (Phipson & Smyth 2010). Previously anti-conservative for stable units on sparse or short sessions.
- Arena
preprocess_behaviorstep order:perspective → Hampel → clip → mm(was Hampel first). Bundle outputs unchanged for existing data. oasis-deconvImportErrorreformatted with install commands on separate lines.
- Project URLs in
pyproject.toml,README.md, and docs now use the canonical PascalCase GitHub repository nameminiscope/CaMAP. The previously-listed lowercase paths returned 404 on GitHub Pages (which is case-sensitive on case-sensitive filesystems).
- Python 3.13 support (
requires-python = ">=3.11,<3.14"). PyPI classifier and blacktarget-versionupdated; the matrix intest.ymlalready exercised 3.13.
Initial public release. CaMAP was previously developed internally as placecell;
this is the first version published to PyPI under the new name.
- CLI (
camap):analysisruns the full pipeline (load → preprocess → deconvolve → match → analyze → save bundle);define-zonesanddetect-zonesbuild and apply maze zone graphs. - Datasets:
ArenaDatasetfor 2D open-field analysis,MazeDatasetfor 1D arm/maze analysis, sharing a common abstract base (BaseCaMAPDataset). - Analysis primitives (
camap.analysis): rate maps, spatial information (Skaggs 1993), split-half stability with multi-scale block configurations, shuffle-based significance, place-field detection (Guo et al. 2023), coverage maps and curves, arm-by-arm population vector overlap (compute_dataset_arm_pvo). - Bundle format (
.camap): self-contained directory with config, per-neural-frame canonical table, occupancy/footprint arrays, per-unit results, summary figures, and a versionedmetadata.json. Round-trips viaBaseCaMAPDataset.save_bundle()/load_bundle(). - Notebook viewers for arena and maze bundles (
notebook/view_results_*.ipynb). - Docs: installation, quickstart, pipeline reference, CLI reference, workflows, notebooks (built with Sphinx + sphinx-book-theme).
- Alpha-stage. APIs may change without notice in
0.x; theDevelopment Status :: 3 - Alphaclassifier is set on PyPI and the alpha signal is carried by the leading0.xper common scientific-Python practice (rather than a strict PEP 440aNsuffix that would forcepip install --pre). - Companion paper. A
CITATION.cffwill be added when the associated publication is finalized. - Internal history.
placecellgit tagsv0.1.0–v0.7.0(private dev before the rename) were deleted fromorigin; this0.1.0is the first publicly-tagged release. - No backward compatibility for legacy
.pcellbundledirectories — loading raises with explicit rename instructions. Re-run the pipeline to produce a.camapdirectory.