Exemplo n.º 1
0
            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:
Exemplo n.º 2
0
            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(