Releases: catalystneuro/roiextractors
v0.6.1
Features
- Added native timestamp support with automatic fallback hierarchy:
get_native_timestamps()
abstract method andget_timestamps()
concrete method to all imaging and segmentation extractors. Theget_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()
, andget_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
andplane_no
fromSuite2pSegmentationExtractor
PR #457 check_imaging_equal
andcheck_segmentation_equal
no longer compare the number of channels in an extractor as that attribute has been deprecated PR #470exclude_channel_comparison
incheck_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 ingenerate_dummy_imaging_extractor
andgenerate_dummy_segmentation_extractor
is now deprecated and will be removed on or after January 2026. Use the newnum_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. Useget_timestamps()
instead. PR #448
Remove deprecated argumentscombined
andplane_no
fromSuite2pSegmentationExtractor
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
Features
- Added
FemtonicsImagingExtractor
for reading and extracting metadata and imaging data from Femtonics MESc files.PR #440 - Added
get_original_frame_indices()
method toScanImageImagingExtractor
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 formatroi_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. Useget_frame_shape()
instead. PR #443 - The
get_num_frames()
method in SegmentationExtractor is deprecated and will be removed on or after January 2026. Useget_num_samples()
instead. PR #443 - The
frame_to_time()
method in SegmentationExtractor is deprecated and will be removed on or after January 2026. Usesample_indices_to_time()
instead. PR #447 - Removed unused
is_writable
class attributes from all extractor classes PR #442 get_frames
is nowget_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
Features
- Added
ScanImageImagingExtractor
for simplifying reading ScanImage data PR #412 - Added volumetric imaging support with
is_volumetric
flag,get_frame_shape
,get_num_planes
, andget_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
toScanImageImagingExtractor
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 inMemmapImagingExtractor
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. Useget_series(start_sample, end_sample)
instead for consistent naming withget_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. Usetime_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. Usesample_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. Useslice_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. UseSampleSlicedImagingExtractor
instead for consistent terminology between planar and volumetric data.
PR #430 - Long deprecated
ScanImageTiffImagingExtractor
is removed. For ScanImage legacy data useScanImageLegacyImagingExtractor
PR #431 - Deprecated
ScanImageTiffMultiPlaneMultiFileImagingExtractor
,ScanImageTiffSinglePlaneMultiFileImagingExtractor
,ScanImageTiffMultiPlaneImagingExtractor
, andScanImageTiffSinglePlaneImagingExtractor
classes. These will be removed on or after October 2025. UseScanImageImagingExtractor
instead. PR #432
Improvements
- Improved criteria for determining if a ScanImage dataset is volumetric by checking both
SI.hStackManager.enable
andSI.hStackManager.numSlices > 1
PR #425
v0.5.12
Features
- New
read_scanimage_metadata
for reading scanimage metadata from a file directly as a python dict #405
Fixes
- Use
SI.hChannels.channelSave
orSI.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
andwrite_segmentation
methods: #403 - The
get_image_size()
method is deprecated and will be removed in or after September 2025. Useget_image_shape()
instead for consistent behavior across all extractors. #409 - Change
get_num_frames
forget_num_samples
#411
Improvements
- Removed unused installed attribute #410
v0.5.11
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
v0.5.10
v0.5.9
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
forBrukerTiffSinglePlaneImagingExtractor
by introducing a static functionget_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 inBaseSegmentationExtractor
; combinedabstractmethod
s 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
Fixes
-
The triggering workflow name for update version was incorrectly set to
auto-publish
(the name of the yaml file). It has been renamed toUpload 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
Features
-
Add support to get background components: add
get_background_ids()
,get_background_image_masks()
,get_background_pixel_masks()
toSegmentationExtractor
. 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
andScanImageTiffMultiPlaneMultiFileImagingExtractor
: PR #297 -
Added automatic changelog checking in the test workflow: PR #302