Skip to content

Releases: catalystneuro/roiextractors

v0.7.2

23 Oct 16:42
ea105c1

Choose a tag to compare

Fixes

  • Fixed lingering _image_masks references in get_frame_shape() methods that were missed in PR #511 for CnmfeSegmentationExtractor, LegacyExtractSegmentationExtractor, SimaSegmentationExtractor, and NwbSegmentationExtractor PR #487

Testing

  • Added tests for CnmfeSegmentationExtractor to cover basic functionality including get_frame_shape(), get_num_rois(), get_roi_ids(), and get_traces() PR #487
  • Added get_frame_shape() test for LegacyExtractSegmentationExtractor PR #487

v0.7.1

22 Oct 23:36
f6fae35

Choose a tag to compare

Features

  • Introduced a unified ROI response data model based on _RoiResponse objects, replacing the legacy _roi_response_* attributes across segmentation extractors for explicit ROI-to-trace mapping PR #505 PR #517
  • Introduced private _ROIMasks class to unify ROI mask storage across all segmentation extractors, enabling native format storage (dense/sparse) with on-demand conversion and explicit ROI ID mapping PR #511

Fixes

  • Fixed NumpySegmentationExtractor to properly handle raw=None by adding None check before shape validation PR #508
  • Cap h5py to avoid install errors on macos 13 PR #515

Deprecations And Removals

  • Deprecated configuration_file_path parameter in MiniscopeImagingExtractor (removal: March 2026). The device folder is now automatically inferred from file_paths. The parameter is ignored if provided. PR #509

Improvements

  • Enhanced MiniscopeImagingExtractor to calculate sampling frequency from hardware timestamps (timeStamps.csv) as ground truth, replacing unreliable metaData.json frameRate. Added a keyword-only sampling_frequency parameter as a fallback. PR #509
  • Improved MiniscopeImagingExtractor documentation: reorganized class vs __init__ docstrings, clarified device folder structure, added comprehensive has_time_vector() docstring, and removed personal information from examples. PR #509
  • Refactored Miniscope imaging extractor tests to native pytest style with fixture-based temp directories and warning suppression for expected conditions PR #501
  • Add ruff-rules to detect non-pep585 and non pep604 annotations: (tuple, list -> tuple, list) (Union[x, y] -> X | Y ) (Optional[x] -> x | None) PR #500 PR #507
  • Add testing for mac-os 15 intel in CI PR #518
  • Modify testing to only test the oldest and newest python versions on each OS to reduce CI time PR #518

v0.7.0

26 Sep 22:17
7c34e5d

Choose a tag to compare

Deprecations And Removals

  • Removed deprecated get_num_channels() method from ImagingExtractor PR #484
  • Removed deprecated write_segmentation() methods from all segmentation extractors PR #491
  • Removed deprecated write_imaging() methods from all imaging extractors PR #502

Improvements

  • Refactored image storage in SegmentationExtractor from individual _image_mean and _image_correlation attributes to unified _summary_images dictionary for better extensibility PR #493
  • Added comprehensive tests for timestamp inheritance independence in SampleSlicedSegmentationExtractor to ensure proper data isolation between parent and child extractors PR #498
  • Enhanced MinianSegmentationExtractor with optional sampling frequency and timestamps path parameters at construction, improved error handling for missing sampling frequency PR #497
  • Added has_time_vector() method to SampleSlicedSegmentationExtractor PR #494

v0.6.2

20 Aug 20:40
cdfc407

Choose a tag to compare

Features

  • Added MultiTIFFMultiPageExtractor for handling multiple TIFF files, each with multiple pages, organized according to a specified dimension order #402

Improvements

  • Refactor Femtonics Imaging Extractor session, munit and channel selection logic. Added missing stub files (single_channel.mesc and single_m_unit_index)PR #479
  • Added tests for unused stub files (dual_color_movie_with_dropped_frames.isxd and multiplane_movie.isxd) in Inscopix imaging extractor PR #478

v0.6.1

07 Jul 21:23
e3db4d0

Choose a tag to compare

Features

  • Added native timestamp support with automatic fallback hierarchy: get_native_timestamps() abstract method and get_timestamps() concrete method to all imaging and segmentation extractors. The get_timestamps() method follows priority order: cached times → native timestamps → inferred from sampling frequency. This enables automatic native timestamp usage when available (e.g., ScanImage TIFF files) while maintaining backward compatibility. PR #465
  • Added property management methods to SegmentationExtractor: set_property(), get_property(), and get_property_keys() for storing and retrieving custom ROI properties PR #467
  • Added MinianSegmentationExtractor for reading and extracting metadata and segmentation data from Minian output files.PR #368

Fixes

  • Fixed a bug in CaimanSegmentationExtractor where empty components of the segmentation traces will throw an error
    PR #452

Deprecations And Removals

  • Remove deprecated arguments combined and plane_no from Suite2pSegmentationExtractor PR #457
  • check_imaging_equal and check_segmentation_equal no longer compare the number of channels in an extractor as that attribute has been deprecated PR #470
  • exclude_channel_comparison in check_imaging_equal is deprecated and will be removed in or after January 2026. This parameter is no longer needed as extractors do not have multiple channels. PR #470
  • The num_frames parameter in generate_dummy_imaging_extractor and generate_dummy_segmentation_extractor is now deprecated and will be removed on or after January 2026. Use the new num_samples parameter instead. num_samples is now keyword-only and will become positional-only in a future release. PR #470
  • The sample_indices_to_time() method in both ImagingExtractor and SegmentationExtractor is deprecated and will be removed on or after January 2026. Use get_timestamps() instead. PR #448
    Remove deprecated arguments combined and plane_no from Suite2pSegmentationExtractor PR #457

Improvements

  • Updated GitHub Actions workflows to use cross-OS cache sharing for multi-OS testing data, reducing redundant downloads and improving CI efficiency. Added reusable data loading action pattern similar to neuroconv. PR #459
  • Improved writing to NWB documentation to point out users to neuroconv PR #468
  • Add comprehensive test suite for CaimanSegmentationExtractor covering basic properties, ROI masks, traces, accepted/rejected lists, and different CaImAn dataset formats PR #464
  • Add isort and remove unused imports to pre-commit PR #471
  • Updated tests for CaimanSegmentationExtractor to cover all stub files, and enhanced the extractor to return quality metrics (r_values, SNR_comp, cnn_preds). PR #466

v0.6.0

17 Jun 15:56
6cf4c47

Choose a tag to compare

Features

  • Added FemtonicsImagingExtractor for reading and extracting metadata and imaging data from Femtonics MESc files.PR #440
  • Added get_original_frame_indices() method to ScanImageImagingExtractor for mapping extractor samples back to original frame indices in raw microscopy data. This method can be used to synchronize with other data sources or for advanced analysis that requires knowledge of the original frame indices. PR #445

Fixes

  • Fixed InscopixSegmentationExtractor with support for string/integer ROI IDs, NWB-compliant pixel masks, standardized ROI lists, improved macOS compatibility, enhanced metadata extraction, and general code cleanup.
    PR #435
  • Added missing function to retrieve inscopix metadata PR #436
  • Fixed deprecated scipy import warning by updating mat_struct import path PR #442
  • Fixed deprecation warning about invalid escape sequence in micromanager TIFF extractor PR #442
  • Removed integer-only assumption for ROI IDs in segmentation extractors. ROI IDs can now be strings or any type. Updated generate_dummy_segmentation_extractor to produce string ROI IDs in format roi_00, roi_01, etc. PR #449

Deprecations And Removals

  • The get_image_size() method in SegmentationExtractor is deprecated and will be removed on or after January 2026. Use get_frame_shape() instead. PR #443
  • The get_num_frames() method in SegmentationExtractor is deprecated and will be removed on or after January 2026. Use get_num_samples() instead. PR #443
  • The frame_to_time() method in SegmentationExtractor is deprecated and will be removed on or after January 2026. Use sample_indices_to_time() instead. PR #447
  • Removed unused is_writable class attributes from all extractor classes PR #442
  • get_frames is now get_samples. get_frames will be deprecated in or after January 2026 PR #444

Improvements

  • Bruker series can now read sequences of type BrightnessOverTime PR #448

v0.5.13

12 May 19:25
930f773

Choose a tag to compare

Features

  • Added ScanImageImagingExtractor for simplifying reading ScanImage data PR #412
  • Added volumetric imaging support with is_volumetric flag, get_frame_shape, get_num_planes, and get_volume_shape methods PR #418
  • Added support for multiple samples per slice to ScanImageIMagingExtractor PR # 417
  • Added support for flyback frames to ScanImageImagingExtractor PR #419
  • Added InscopixSegmentationExtractor for reading .isxd segmentation files #407
  • Add plane_index to ScanImageImagingExtractor to obtain a planar extractor across a plane PR #424
  • Add testing to timestamp extraction on ScanImageImagingExtractor PR #426
  • Add paths as string support to ScanImageImagingExtractor PR #427
  • Add informative error for old ScanImage files with ScanImageImagingExtractor PR #427
  • Add the option to read interleaved data in ScanImageImagingExtractor PR #428
  • Add detection of missing files in a sequence and excess file for ScanImageImagingExtractor file find heuristic PR #429

Fixes

  • Fixed get_series method in MemmapImagingExtractor to preserve channel dimension PR #416
  • Fix memory estimation for volumetric imaging extractors in their _repr_ PR #422

Deprecations And Removals

  • The get_video(start_frame, end_frame) method is deprecated and will be removed in or after September 2025. Use get_series(start_sample, end_sample) instead for consistent naming with get_num_samples. PR #416
  • Python 3.9 is no longer supported PR #423
  • The time_to_frame() method is deprecated and will be removed in or after October 2025. Use time_to_sample_indices() instead for consistent terminology between planar and volumetric data. PR #430
  • The frame_to_time() method is deprecated and will be removed in or after October 2025. Use sample_indices_to_time() instead for consistent terminology between planar and volumetric data. PR #430
  • The frame_slice() method is deprecated and will be removed in or after October 2025. Use slice_samples() instead for consistent terminology between planar and volumetric data. PR #430
  • The FrameSliceImagingExtractor class is deprecated and will be removed in or after October 2025. Use SampleSlicedImagingExtractor instead for consistent terminology between planar and volumetric data.
    PR #430
  • Long deprecated ScanImageTiffImagingExtractor is removed. For ScanImage legacy data use ScanImageLegacyImagingExtractor PR #431
  • Deprecated ScanImageTiffMultiPlaneMultiFileImagingExtractor, ScanImageTiffSinglePlaneMultiFileImagingExtractor, ScanImageTiffMultiPlaneImagingExtractor, and ScanImageTiffSinglePlaneImagingExtractor classes. These will be removed on or after October 2025. Use ScanImageImagingExtractor instead. PR #432

Improvements

  • Improved criteria for determining if a ScanImage dataset is volumetric by checking both SI.hStackManager.enable and SI.hStackManager.numSlices > 1PR #425

v0.5.12

18 Apr 19:32
d1efa1b

Choose a tag to compare

Features

  • New read_scanimage_metadata for reading scanimage metadata from a file directly as a python dict #405

Fixes

  • Use SI.hChannels.channelSave or SI.hChannels.channelsave to determine number of channels for ScanImage extractors when available #401
  • Fixes the sampling rate for volumetric ScanImage #405

Deprecations

  • Deprecated write_imaging and write_segmentation methods: #403
  • The get_image_size() method is deprecated and will be removed in or after September 2025. Use get_image_shape() instead for consistent behavior across all extractors. #409
  • Change get_num_frames for get_num_samples #411

Improvements

  • Removed unused installed attribute #410

v0.5.11

05 Mar 21:06
e5e6975

Choose a tag to compare

Features

  • Added ThorTiffImagingExtractor for reading TIFF files produced via Thor #395

Fixes

  • Use tifffile.imwrite instead of tifffile.imsave for TiffImagingExtractor: #390

Deprecations

  • The 'channel' parameter in get_frames() and get_video() methods is deprecated and will be removed in August 2025. #388

Improvements

  • Use pyproject.toml for project metadata and installation requirements #382
  • Added __repr__ and methods to ImagingExtractor for better display in terminals and Jupyter notebooks #393 and #396
  • Removed deprecated np.product from the library #397

v0.5.10

06 Nov 18:18
e8eb2cf

Choose a tag to compare

Features

  • Added a seed to dummy generators #361
  • Added depth_slice for VolumetricImagingExtractors PR #363

Fixes

  • Added specific error message for single-frame scanimage data PR #360
  • Fixed bug with ScanImage's parse_metadata so that it works properly when hStackManager is disabled PR #373
  • Add support for background components in FrameSliceSegmentationExtractor PR #378

Improvements

  • Removed unnecessary import checks for scipy, h5py, and zarr PR #364
  • Improved the error message for the set_timestamps method in the ImagingExtractor classPR #377
  • Renamed MiniscopeImagingExtractor toMiniscopeMultiRecordingImagingExtractor classPR #374