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_countto 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:
SessionConfignow exposes aflow_optionsfield (inline dict or path to a savedOF_optionsJSON), 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:
VideoReaderandcompensate_recordingpipeline 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
SessionConfigwith TOML/YAML supportPer-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-sessionCrash-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_cudaandflowreg_torchbackends with device-aware resize utilities, runtime detection,pyflowreg[gpu]optional extra, andexamples/jupiter_demo_arr_gpu.pywalkthroughNapari-oriented APIs:
BatchMotionCorrector.register_w_callback/register_registered_callbackmatchingcompensate_arrparameters, plusNullVideoWriterandOutputFormat.NULLfor headless pipelinesDocumentation: 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
OFOptionsnow correctly preserves numpy arrays, rejects invalid 4D arrays, and properly handles 2D(H, W)and 3D(H, W, C)spatial weight mapsExecutor 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_optionsweight 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.