Skip to content

Releases: catalystneuro/roiextractors

v0.6.1

07 Jul 21:23
e3db4d0
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

v0.5.9

16 Sep 20:11
60c83a4
Compare
Choose a tag to compare

Deprecations

  • Remove support for Python 3.8: PR #325

Features

  • Add InscopixImagingExtractor: #276
  • Updated testing workflows to include python 3.12, m1/intel macos, and dev tests to check neuroconv: PR #317
  • Added API documentation: #337
  • Optimized get_streams for BrukerTiffSinglePlaneImagingExtractor by introducing a static function get_available_channels which uses lazy parsing of the XML to fetch the available channels: #344

Fixes

  • Remove unnecessary scipy import error handling: #315
  • Fixed the typing returned by the InscopixImagingExtractor.get_dtype method: #326
  • Detect Changelog Updates was moved to its own dedicated workflow to avoid daily testing failures: #336
  • Fixed the Daily testing workflows by passing along the appropriate secrets: #340
  • Change the criteria of determining if Bruker data is volumetric #342
  • Fixes a bug that assumes the channel name is is on the tiff file for BrukerTiffSinglePlaneImagingExtractor #343
  • Including packaging explicitly in minimal requirements #347
  • Updated requirements to include cv2 and update dev testing locations for neuroconv: #357

Improvements

  • The Suite2PSegmentationExtractor now produces an error when a required sub-file is missin: #330
  • Added _image_mask initialization in BaseSegmentationExtractor; combined abstractmethods into top of file: #327
  • Optimize parsing of xml with lxml library for Burker extractors: #346
  • Protect sima and dill export #351
  • Improve error message when TiffImagingExtractor is not able to form memmap #353
  • Updated Check Docstrings workflow to use new github action: #354

Testing

  • Updated testing workflows to include python 3.12, m1/intel macos, and dev tests to check neuroconv: PR #317
  • Added daily testing workflow and fixed bug with python 3.12 by upgrading scanimage-tiff-reader version: PR #321
  • Remove wheel from requirements and move CI dependencies to test requirements PR #348
  • Use Spikeinterface instead of Spikeextractors for toy_example PR #349

v0.5.8

22 Apr 17:36
268d38c
Compare
Choose a tag to compare

Fixes

  • The triggering workflow name for update version was incorrectly set to auto-publish (the name of the yaml file). It has been renamed to Upload Package to PyPI (the name field of the workflow): PR #304.

  • Fixed bug with automatic changelog test that was causing it to fail for daily tests: PR #310

  • Updated zenodo to get a DOI on each release: No PR

v0.5.7

09 Apr 17:38
7d1d123
Compare
Choose a tag to compare

Features

  • Add support to get background components: add get_background_ids(), get_background_image_masks(), get_background_pixel_masks() to SegmentationExtractor. PR #291

  • Add distinction for raw roi response and denoised roi response in CaimanSegmentationExtractor: PR #291

  • Bug fix for the CaimanSegmentationExtractor: correctly extract temporal and spatial background components PR #291

  • Added automatic version update workflow file that will run after publishing a new release to pypi: PR #290

  • Added ScanImageTiffSinglePlaneMultiFileImagingExtractor and ScanImageTiffMultiPlaneMultiFileImagingExtractor: PR #297

  • Added automatic changelog checking in the test workflow: PR #302

Fixes

  • Improved xml parsing with Bruker PR #267

  • Fixed a bug with ScanImageTiffSinglePlaneImagingExtractor in which frames_per_slice would be set to _num_frames: PR #294

v0.5.6

14 Feb 21:26
8d79304
Compare
Choose a tag to compare

Features

  • Added support for red channel (anatomical) ROIs from suite2p in Suite2pSegmentationExtractor PR #270
  • Added support for RoiGroup metadata in the extract_extra_metadata function for ScanImageTiff files PR #272
  • Updated documentation and Readme PRs #283 #282 #280