Recent Releases of motila

motila -

MotilA v1.0.7 Release Notes

🐞 Critical Bugfix: PyStackReg Support in Batch Processing

This release fixes a critical issue that prevented PyStackReg from being used in batch processing, along with a minor metadata filtering correction.

🚨 Critical Bug Fixed

  • Missing usepystackreg parameter in batch_process_stacks: The usepystackreg parameter was not being passed through to the process_stack function during batch processing. This meant that even when usepystackreg=True was set, the batch processor would always use phase cross-correlation instead of PyStackReg for 2D registration. This has been fixed and PyStackReg now works correctly in batch mode.

🐞 Minor Bug Fixed

  • Metadata file filtering: Fixed hardcoded "metadata.xls" string in the batch processor's metadata file search. The function now correctly uses the metadata_file parameter, allowing for flexible metadata file naming (e.g., "metadata.xlsx", "parameters.xls", etc.).

Technical Details

  • The usepystackreg parameter is now properly passed from batch_process_stacks to process_stack.
  • Metadata file filtering now uses the configurable metadata_file parameter instead of a hardcoded string.
  • Both single-file and batch processing now consistently support PyStackReg registration.

Critical upgrade recommended for all users who rely on PyStackReg for 2D registration in batch processing.

Thank you for using MotilA! If you encounter any issues, please open

- Python
Published by FabrizioMusacchio 7 months ago

motila -

MotilA v1.0.6 Release Notes

🐞 Bugfix: Skip Processing for Invalid Projection Ranges

This release adds an important safety check to prevent processing of files with invalid projection parameters.

Bug Fixed

  • Added file skipping for invalid projection ranges: The main processing pipeline now properly checks if calc_projection_range returns zero projection layers and skips processing the current file instead of continuing with invalid parameters. This prevents errors and wasted processing time when projection parameters are incompatible with the image stack dimensions.

Technical Details

  • When projection_center is out of bounds or results in an invalid projection range, calc_projection_range returns projection_layers = 0.
  • The main processing function now detects this condition and logs a warning message before safely skipping the file.
  • This ensures robust handling of edge cases where projection parameters don't match the available z-dimension of image stacks.

Upgrade recommended for all users to ensure robust file processing.

Thank you for using MotilA! If you encounter any issues, please open an issue

- Python
Published by FabrizioMusacchio 7 months ago

motila -

MotilA v1.0.5 Release Notes

🐞 Bugfix: Projection Range and Layer Count Consistency

This release fixes an important consistency issue in the projection range calculation logic.

Bug Fixed

  • Corrected calc_projection_range output consistency: Fixed an issue where the projection_layers count could become inconsistent with the actual projection_range when the requested range exceeded the image stack's z-dimension boundaries. The function now properly updates and returns the corrected projection_layers count to match the adjusted projection range, ensuring accurate layer counting for downstream processing steps.

Technical Details

  • When a projection range exceeds the available z-layers in an image stack, MotilA now correctly adjusts both the range boundaries AND the layer count to maintain consistency.
  • This prevents potential errors or unexpected behavior in subsequent processing steps that rely on accurate layer counts.

Upgrade recommended for all users to ensure consistent projection handling.

Thank you for using MotilA! If you encounter any issues, please open

- Python
Published by FabrizioMusacchio 7 months ago

motila -

MotilA v1.0.4 Release Notes

🐞 Bugfix & 🚀 New Feature: Registration Improvements

This release includes a critical bugfix for subvolume extraction and registration, along with an exciting new registration option for enhanced flexibility.

🐞 Bug Fixes

  • Fixed Shift Application in Subvolume Extraction
    • Corrected shift application logic in extract_and_register_subvolume function to ensure proper alignment of extracted subvolumes.
    • Updated dataset creation for full Zarr 3.0+ compatibility within the same function, resolving potential data handling issues.

🚀 New Features

  • PyStackReg Support for 2D Registration
    • Added support for PyStackReg (StackReg) as an alternative method for 2D image registration of projected stacks.
    • Enhanced reg_2D_images and process_stack functions with new parameter usepystackreg.
    • Users can now choose between phase cross-correlation (default) and PyStackReg for 2D registration:
    • Set usepystackreg=False for phase cross-correlation (default behavior)
    • Set usepystackreg=True to use PyStackReg registration
    • PyStackReg may provide more robust registration in certain imaging conditions, particularly for images with low contrast or minimal features.

Parameter Updates

The following new parameter is available in both single-file and batch processing:

| Parameter | Values | Description | |-----------|---------|-------------| | usepystackreg | bool (True or False) | If True, use PyStackReg (StackReg) for 2D registration instead of phase cross-correlation. |

- Python
Published by FabrizioMusacchio 7 months ago

motila -

MotilA v1.0.3 Release Notes

🐞 Bugfix: Zarr v3+ Compatibility

This release brings important fixes to ensure MotilA works seamlessly with Zarr version 3 and higher.

Highlights

  • Zarr v3+ Support:

    • Fixed all known compatibility issues with Zarr v3 and above.
    • Ensured correct handling of shape and chunk arguments (now always plain Python int).
    • Updated all Zarr array and group creation/access patterns to match the new Zarr v3 API.
    • Improved detection and handling of Zarr store attributes (.url for v3, .path for v2).
    • Fixed assignment and reading issues that could cause sync errors in async environments (e.g., Jupyter, pytest).
    • Tests and code now use zarr.Array for type checks, compatible with both v2 and v3.
  • General Robustness:

    • The codebase is now more robust to future Zarr changes and works with both Zarr v2 and v3.

Thank you to all users who reported Zarr v3 issues and helped test the fixes!
If you encounter any further problems, please open an issue on GitHub.

Upgrade recommended for all users, especially those using Zarr v3 or newer.

- Python
Published by FabrizioMusacchio 9 months ago

motila -

MotilA v1.0.2 Release Notes

🐞 Bugfix & Improvement: Projection Range Calculation

This release focuses on a critical bugfix and improvements to the projection range logic in MotilA's core image processing pipeline.

Highlights

  • Projection Range Calculation Overhaul
    • Removed the unnecessary projection_layers_correction variable.
    • Simplified and clarified the logic to ensure the projection range always includes exactly the requested number of layers (projection_layers), even when the projection center is near the image boundaries.
    • The projection range is now symmetrically expanded around the center when possible, and boundaries are correctly handled if the range would exceed the image stack's z-dimension.
    • Improved the robustness and readability of the calc_projection_range function for more accurate and predictable behavior.

Bug Fixed

  • Fixed an issue where the projection range could be off by one or not include the correct number of layers, especially when the projection center was close to the start or end of the z-stack.

Other

  • Test folders generated during automated testing are now deleted after tests complete, keeping your workspace clean.

Thank you to all users who reported issues and contributed feedback!
If you encounter any further problems, please open an issue on GitHub.

Upgrade recommended for all users.

- Python
Published by FabrizioMusacchio 9 months ago

motila -

  • dummy release for Zenodo

- Python
Published by FabrizioMusacchio 11 months ago

motila -

🚀 MotilA v1.0.0 – Initial public release

We are pleased to release MotilA v1.0.0, the first versioned and archived release of the MotilA analysis pipeline.

MotilA is designed for automated and scalable analysis of 4D and 5D multi-photon time-lapse imaging data, with a particular focus on quantifying microglial motility. This release introduces a stable and tested version of the core pipeline, including:

✨ Features

  • Support for single-stack and batch analysis of 4D and 5D imaging data
  • Automated extraction and quantification of motility from segmented stacks
  • Full integration with the
  • Included example dataset (via Zenodo) for testing and teaching
  • Jupyter-based tutorials for easy onboarding and reproducibility
  • Modular pipeline structure for future extensions

📦 Dataset and Tutorials

You can find the example dataset accompanying this release here:
👉 https://zenodo.org/records/15061566

A hands-on tutorial notebook is included in the tutorials/ folder of this repository.

- Python
Published by FabrizioMusacchio 11 months ago