image_mask=moremat['mask'][:, :, idx], roi_status=neuron_status_dict.get(moremat['badROIs01'][idx]), fitness=moremat['fitness'][idx], neuron_type=neuron_type_dict.get(neuron_type[idx], 'unknown'), roi2surr_sig=roi2surr_sig[idx], offsets_ch1_pix=offsets_ch1_pix[idx]) # create a ROI region table roi_region = plane_segmentation.create_roi_table_region( description='good roi region table', region=(np.where(moremat['badROIs01'] == 0)[0]).tolist()) # ------ Trial Segmentation processing module ------ trial_seg_mod = nwbfile.create_processing_module( 'Trial-based-Segmentation', 'Trial-segmented data based on different event markers') dF_F = nwb_ophys.DfOverF(name='deconvolved dF-over-F') trial_seg_mod.add_data_interface(dF_F) # ingest each trial-based dataset, time-lock to different event types for data_name in ('firstSideTryAl', 'firstSideTryAl_COM', 'goToneAl', 'rewardAl', 'commitIncorrAl', 'initToneAl', 'stimAl_allTrs', 'stimAl_noEarlyDec', 'stimOffAl'): try: dF_F.add_roi_response_series( nwb_ophys.RoiResponseSeries( name=data_name, data=postmat[data_name].traces.transpose([1, 0, 2]), unit='', rois=roi_region, timestamps=postmat[data_name].time, description=f'(ROIs x time x trial), aligned to event_id: {postmat[data_name].eventI}')) except Exception as e:
offsets_ch1_pix=offsets_ch1_pix[idx]) # create a ROI region table roi_region = plane_segmentation.create_roi_table_region( description='good roi region table', region=(np.where(moremat['badROIs01'] == 0)[0]).tolist()) # ------ Trial Segmentation processing module ------ trial_seg_mod = nwbfile.create_processing_module( 'Trial-based-Segmentation', 'Trial-segmented data based on different event markers') # ingest each trial-based dataset, time-lock to different event types for data_name in ('firstSideTryAl', 'firstSideTryAl_COM', 'goToneAl', 'rewardAl', 'commitIncorrAl', 'initToneAl', 'stimAl_allTrs', 'stimAl_noEarlyDec', 'stimOffAl'): try: dF_F = nwb_ophys.DfOverF(name = f'dFoF_{data_name}') for tr_idx, d in enumerate(postmat[data_name].traces.transpose([2, 1, 0])): dF_F.add_roi_response_series( nwb_ophys.RoiResponseSeries( name=f'Trial_{tr_idx:02d}', data=d, unit='', rois=roi_region, timestamps=postmat[data_name].time, description=f'(ROIs x time), aligned to event_id: {postmat[data_name].eventI}')) trial_seg_mod.add_data_interface(dF_F) except Exception as e: print(f'Error adding roi_response_series: {data_name}\n\t\tErrorMsg: {str(e)}\n', file=sys.stderr) # ------ Behavior processing module ------ behavior_mod = nwbfile.create_processing_module(