Step wise usage#

Functionality#

Interconversion amongst the various data formats as well as conversion to the NWB format and back.

Features#

  1. SegmentationExtractor object:

  • seg_obj.get_channel_names() : List of optical channel names

  • seg_obj.get_num_channels() :Number of channels

  • seg_obj.get_movie_framesize():(height, width) of raw movie

  • seg_obj.get_movie_location():Location of storage of movie/tiff images

  • seg_obj.get_image_masks(self, roi_ids=None):Image masks as (ht, wd, num_rois) with each value as the weight given during segmentation operation.

  • seg_obj.get_pixel_masks(roi_ids=None): Get pixel masks as (total_pixels(ht*wid), no_rois)

  • seg_obj.get_traces(self, roi_ids=None, start_frame=None, end_frame=None): df/F trace as (num_rois, num_frames)

  • seg_obj.get_sampling_frequency(): Sampling frequency of movie/df/F trace.

  • seg_obj.get_roi_locations(): Centroid pixel location of the ROI (Regions Of Interest) as (x,y).

  • seg_obj.get_num_rois(): Total number of ROIs after segmentation operation.

  • seg_obj.get_roi_ids(): Any integer tags associated with an ROI, defaults to 0:num_of_rois

SegmentationExtractor object creation#

 1import roiextractors
 2import numpy as np
 3
 4seg_obj_cnmfe = roiextractors.CnmfeSegmentationExtractor('cnmfe_filename.mat') # cnmfe
 5seg_obj_extract = roiextractors.ExtractSegmentationExtractor('extract_filename.mat') # extract
 6seg_obj_sima = roiextractors.SimaSegmentationExtractor('sima_filename.sima') # SIMA
 7seg_obj_numpy = roiextractors.NumpySegmentationExtractor(
 8                    filepath = 'path-to-file',
 9                    masks=np.random.rand(movie_size[0],movie_size[1],no_rois),
10                    signal=np.random.randn(num_rois,num_frames),
11                    roi_idx=np.random.randint(no_rois,size=[1,no_rois]),
12                    no_of_channels=None,
13                    summary_image=None,
14                    channel_names=['Blue']) # Numpy object
15seg_obj_nwb = roiextractors.NwbSegmentationExtractor(
16                    filepath_of_nwb, optical_channel_name=None, # optical channel to extract and store info from
17                    imaging_plane_name=None, image_series_name=None, # imaging plane to extract and store data from
18                    processing_module_name=None,
19                    neuron_roi_response_series_name=None, # roi_response_series name to extract and store data from
20                    background_roi_response_series_name=None) # nwb object

Data format conversion: SegmentationExtractor to NWB#

 1roiextractors.NwbSegmentationExtractor.write_segmentation(seg_obj, saveloc,
 2                propertydict=[{'name': 'ROI feature 1,
 3                               'description': 'additional attribute of each ROI',
 4                               'data': np.random.rand(1,no_rois),
 5                               'id': seg_obj.get_roi_ids()},
 6                              {'name': 'ROI feature 2,
 7                               'description': 'additional attribute of each ROI',
 8                               'data': np.random.rand(1,no_rois),
 9                               'id': seg_obj.get_roi_ids()}],
10                nwbfile_kwargs={'session_description': 'nwbfiledesc',
11                                'experimenter': 'experimenter name',
12                                'lab': 'test lab',
13                                'session_id': 'test sess id'},
14                emission_lambda=400.0, excitation_lambda=500.0)