Changelog#

All notable changes to PyFlowReg will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased#

[0.1.0a8]#

Fixed#

  • TIFF: Reader now clamps frame_count to available pages (respecting deinterleave) to avoid out-of-range access when metadata overreports SizeT/series length.

0.1.0a7#

Added#

  • Flow parameter overrides for sessions: SessionConfig now exposes a flow_options field (inline dict or path to a saved OF_options JSON), so Stage 1 optical-flow parameters can be managed directly from TOML/YAML configs, the CLI, or job-array invocations without ad-hoc override code.

Fixed#

  • Dtype preservation: VideoReader and compensate_recording pipeline now preserve the input file dtype. Averaging for binning changed dtypes to float in the readers.

  • BigTIFF: tiff writers properly use the bigtiff property now.

0.1.0a6#

Added#

  • Multi-session processing module with full MATLAB parity

    • Three-stage pipeline for aligning multiple recordings

    • SessionConfig with TOML/YAML support

    • Per-recording motion correction with valid mask persistence

    • Inter-sequence alignment via phase cross-correlation and optical flow

    • Session-wide valid mask computation

    • HPC array job support (SLURM, SGE, PBS)

    • Command-line interface: pyflowreg-session

    • Crash-safe atomic file writes

    • HDF5 completeness verification

  • Refactored and extended warping utilities

  • Example session configuration files (TOML and YAML)

Fixed#

  • Batch size parameter confusion (removed unused parameter from RegistrationConfig)

  • Thread oversubscription in multiprocessing executor (now sets thread limits)

0.1.0a5#

Added#

  • GPU Acceleration: New flowreg_cuda and flowreg_torch backends with device-aware resize utilities, runtime detection, pyflowreg[gpu] optional extra, and examples/jupiter_demo_arr_gpu.py walkthrough

  • Napari-oriented APIs: BatchMotionCorrector.register_w_callback / register_registered_callback matching compensate_arr parameters, plus NullVideoWriter and OutputFormat.NULL for headless pipelines

  • Documentation: Complete MyST/Sphinx site with installation, quickstart, API reference, theory, workflows, and GPU setup guides, backed by ReadTheDocs config and executable quickstart/parallelization tests

Fixed#

  • Critical weight handling: Multi-dimensional weight handling in OFOptions now correctly preserves numpy arrays, rejects invalid 4D arrays, and properly handles 2D (H, W) and 3D (H, W, C) spatial weight maps

  • Executor registration: Restored side-effect imports for multiprocessing/threading executor registration that were removed by pre-commit hooks, preventing silent fallback to sequential mode

  • Dimensionality checks: Fixed edge cases in OF_options weight and sigma parameter validation

Changed#

  • Backend registry: Now restricts executor choices per backend, improves availability checks, and provides clearer logging so sequential fallback is visible

  • Testing: Added regression tests for weights, callbacks, executors, and Null writer; GPU-aware test skips for platforms without CuPy

  • Tooling: Applied FlowRegSuite pre-commit hooks and reorganized public exports without breaking external API

0.1.0a4#

Fixed batch normalization to use reference values.

0.1.0a3#

  • Cross-correlation pre-alignment feature

  • Backend architecture refactoring

  • ScanImage TIFF format compatibility fix

0.1.0a2#

  • CI/CD improvements and Python 3.13 support

  • Demo download utilities

  • Refactored CLI and paper benchmarks into separate repositories

0.1.0a1#

Initial alpha release with core variational optical flow engine, multi-channel 2D motion correction, and modular I/O system.