Selecting ROIs for Conversion#
By default, segmentation interfaces write all ROIs from the source data to the
NWB file. In some cases, for example after curating the segmentation output,
you may want to include only a subset of the ROIs in the source data. To support this, segmentation
interfaces accept the roi_ids_to_add parameter in add_to_nwbfile()
(and create_nwbfile()) to specify which ROIs to write.
Inspecting Available ROI IDs#
Before filtering, you can inspect the available ROI IDs using the roi_ids
property on any segmentation interface:
from neuroconv.tools.testing.mock_interfaces import MockSegmentationInterface
interface = MockSegmentationInterface(num_rois=20)
# Inspect all available ROI IDs
print("All ROI IDs:", interface.roi_ids)
Filtering ROIs During Conversion#
Pass the roi_ids_to_add parameter to create_nwbfile() or add_to_nwbfile()
to include only a subset of ROIs:
from neuroconv.tools.testing.mock_interfaces import MockSegmentationInterface
interface = MockSegmentationInterface(num_rois=20)
# Convert with only specific ROIs
nwbfile = interface.create_nwbfile(roi_ids_to_add=["roi_00", "roi_03", "roi_10"])
# Verify only selected ROIs are in the file
plane_segmentation = nwbfile.processing["ophys"]["ImageSegmentation"]["PlaneSegmentation"]
print("Number of ROIs in NWB:", len(plane_segmentation)) # 3