def run():
    data_folder = r"\\allen\programs\braintv\workgroups\nc-ophys\Jun\raw_data_rabies_project" \
                  r"\180404-M360495-2p\2p_movie\reorged"

    curr_folder = os.path.dirname(os.path.realpath(__file__))
    os.chdir(curr_folder)

    mc.motion_correction(input_folder=data_folder,
                         input_path_identifier='.tif',
                         process_num=6,
                         output_folder=os.path.join(data_folder, 'corrected'),
                         anchor_frame_ind_chunk=10,
                         anchor_frame_ind_projection=0,
                         iteration_chunk=10,
                         iteration_projection=10,
                         max_offset_chunk=(40., 40.),
                         max_offset_projection=(40., 40.),
                         align_func=mc.phase_correlation,
                         preprocessing_type=0,
                         fill_value=0.)

    offsets_path = os.path.join(data_folder, 'corrected', 'correction_offsets.hdf5')
    fns = [f for f in os.listdir(data_folder) if f[-4:] == '.tif']
    fns.sort()
    f_paths = [os.path.join(data_folder, f) for f in fns]
    print('\nfile paths:')
    print('\n'.join(f_paths))

    mc.apply_correction_offsets(offsets_path=offsets_path,
                                path_pairs=zip(f_paths, f_paths),
                                output_folder=os.path.join(data_folder, 'corrected'),
                                process_num=6,
                                fill_value=0.,
                                avi_downsample_rate=10,
                                is_equalizing_histogram=True)
def run():
    data_folder = r"\\allen\programs\braintv\workgroups\nc-ophys\Jun\raw_data_rabies_project" \
                  r"\180104-M361012-2p\FOV1_injection_site_00001"
    ref_ch_n = 'red'
    apply_ch_ns = ['green', 'red']

    curr_folder = os.path.dirname(os.path.realpath(__file__))
    os.chdir(curr_folder)

    ref_data_folder = os.path.join(data_folder, ref_ch_n)

    mc.motion_correction(input_folder=ref_data_folder,
                         input_path_identifier='.tif',
                         process_num=3,
                         output_folder=os.path.join(ref_data_folder,
                                                    'corrected'),
                         anchor_frame_ind_chunk=10,
                         anchor_frame_ind_projection=0,
                         iteration_chunk=10,
                         iteration_projection=10,
                         max_offset_chunk=(20., 20.),
                         max_offset_projection=(20., 20.),
                         align_func=mc.phase_correlation,
                         preprocessing_type=0,
                         fill_value=0.)

    offsets_path = os.path.join(ref_data_folder, 'corrected',
                                'correction_offsets.hdf5')
    ref_fns = [f for f in os.listdir(ref_data_folder) if f[-4:] == '.tif']
    ref_fns.sort()
    ref_paths = [os.path.join(ref_data_folder, f) for f in ref_fns]
    print('\nreference paths:')
    print('\n'.join(ref_paths))

    for apply_ch_i, apply_ch_n in enumerate(apply_ch_ns):
        apply_data_folder = os.path.join(data_folder, apply_ch_n)
        apply_fns = [
            f for f in os.listdir(apply_data_folder) if f[-4:] == '.tif'
        ]
        apply_fns.sort()
        apply_paths = [os.path.join(apply_data_folder, f) for f in apply_fns]
        print('\napply paths:')
        print('\n'.join(apply_paths))

        mc.apply_correction_offsets(offsets_path=offsets_path,
                                    path_pairs=zip(ref_paths, apply_paths),
                                    output_folder=os.path.join(
                                        apply_data_folder, 'corrected'),
                                    process_num=3,
                                    fill_value=0.,
                                    avi_downsample_rate=20,
                                    is_equalizing_histogram=False)
Example #3
0
def correct(data_folder):

    ref_ch_n = 'red'
    apply_ch_ns = ['green', 'red']

    curr_folder = os.path.dirname(os.path.realpath(__file__))
    os.chdir(curr_folder)

    ref_data_folder = os.path.join(data_folder, ref_ch_n)

    mc.motion_correction(input_folder=ref_data_folder,
                         input_path_identifier='.tif',
                         process_num=6,
                         output_folder=os.path.join(ref_data_folder,
                                                    'corrected'),
                         anchor_frame_ind_chunk=10,
                         anchor_frame_ind_projection=0,
                         iteration_chunk=10,
                         iteration_projection=10,
                         max_offset_chunk=(100., 100.),
                         max_offset_projection=(100., 100.),
                         align_func=mc.phase_correlation,
                         preprocessing_type=6,
                         fill_value=0.)

    offsets_path = os.path.join(ref_data_folder, 'corrected',
                                'correction_offsets.hdf5')
    ref_fns = [f for f in os.listdir(ref_data_folder) if f[-4:] == '.tif']
    ref_fns.sort()
    ref_paths = [os.path.join(ref_data_folder, f) for f in ref_fns]
    print('\nreference paths:')
    print('\n'.join(ref_paths))

    for apply_ch_i, apply_ch_n in enumerate(apply_ch_ns):
        apply_data_folder = os.path.join(data_folder, apply_ch_n)
        apply_fns = [
            f for f in os.listdir(apply_data_folder) if f[-4:] == '.tif'
        ]
        apply_fns.sort()
        apply_paths = [os.path.join(apply_data_folder, f) for f in apply_fns]
        print('\napply paths:')
        print('\n'.join(apply_paths))

        mc.apply_correction_offsets(offsets_path=offsets_path,
                                    path_pairs=zip(ref_paths, apply_paths),
                                    output_folder=os.path.join(
                                        apply_data_folder, 'corrected'),
                                    process_num=6,
                                    fill_value=0.,
                                    avi_downsample_rate=10,
                                    is_equalizing_histogram=False)
def correct_single_step(param):

    folder_ref, anchor_frame_ind_chunk, iteration_chunk, max_offset_chunk, preprocessing_type, fill_value,\
        is_apply, avi_downsample_rate, is_equalizing_histogram= param

    step_n = os.path.split(folder_ref)[1]
    print('\nStart correcting step {} ...'.format(step_n))

    mov_ref_n = [f for f in os.listdir(folder_ref) if f[-4:] == '.tif' and step_n in f]
    if len(mov_ref_n) != 1:
        warn('step {}: number of green movie does not equal 1.'.format(step_n))
        return

    mov_paths, _ = mc.motion_correction(input_folder=folder_ref,
                                        input_path_identifier='.tif',
                                        process_num=1,
                                        output_folder=folder_ref,
                                        anchor_frame_ind_chunk=anchor_frame_ind_chunk,
                                        anchor_frame_ind_projection=0,
                                        iteration_chunk=iteration_chunk,
                                        iteration_projection=10,
                                        max_offset_chunk=max_offset_chunk,
                                        max_offset_projection=(30., 30.),
                                        align_func=mc.phase_correlation,
                                        preprocessing_type=preprocessing_type,
                                        fill_value=fill_value)

    if is_apply:

        offsets_path = os.path.join(folder_ref, 'correction_offsets.hdf5')
        offsets_f = h5py.File(offsets_path)
        ref_path = offsets_f['file_0000'].attrs['path']
        offsets_f.close()

        movie_path = mov_paths[0]

        mc.apply_correction_offsets(offsets_path=offsets_path,
                                    path_pairs=[[ref_path, movie_path]],
                                    output_folder=folder_ref,
                                    process_num=1,
                                    fill_value=fill_value,
                                    avi_downsample_rate=avi_downsample_rate,
                                    is_equalizing_histogram=is_equalizing_histogram)
Example #5
0
def run():

    data_folder = r"\\allen\programs\braintv\workgroups\nc-ophys\Jun\raw_data_rabies_project" \
                  r"\180328-M360495-deepscope\04\04_"

    curr_folder = os.path.dirname(os.path.realpath(__file__))
    os.chdir(curr_folder)

    plane_ns = [p for p in os.listdir(data_folder) if os.path.isdir(os.path.join(data_folder, p))]
    plane_ns.sort()
    print('planes:')
    print('\n'.join(plane_ns))

    for plane_n in plane_ns:
        print('\nprocessing plane: {}'.format(plane_n))
        plane_folder = os.path.join(data_folder, plane_n)
        f_paths, _ = mc.motion_correction(input_folder=plane_folder,
                                          input_path_identifier='.tif',
                                          process_num=3,
                                          output_folder=os.path.join(plane_folder, 'corrected'),
                                          anchor_frame_ind_chunk=10,
                                          anchor_frame_ind_projection=0,
                                          iteration_chunk=10,
                                          iteration_projection=10,
                                          max_offset_chunk=(50., 50.),
                                          max_offset_projection=(50., 50.),
                                          align_func=mc.phase_correlation,
                                          preprocessing_type=0,
                                          fill_value=0.)

        offsets_path = os.path.join(plane_folder, 'corrected', 'correction_offsets.hdf5')

        mc.apply_correction_offsets(offsets_path=offsets_path,
                                    path_pairs=zip(f_paths, f_paths),
                                    output_folder=os.path.join(plane_folder, 'corrected'),
                                    process_num=3,
                                    fill_value=0.,
                                    avi_downsample_rate=20,
                                    is_equalizing_histogram=True)
Example #6
0
avi_downsample_rate = 20

sub_folder_ns = [f for f in os.listdir(data_folder) if os.path.isdir(os.path.join(data_folder, f))]
sub_folder_ns.sort()
print('\n'.join(sub_folder_ns))

for sub_folder_n in sub_folder_ns:

    sub_folder = os.path.join(data_folder, sub_folder_n)

    f_paths, _ = mc.motion_correction(input_folder=sub_folder,
                                      input_path_identifier=input_path_identifier,
                                      process_num=process_num,
                                      output_folder=sub_folder,
                                      anchor_frame_ind_chunk=anchor_frame_ind_chunk,
                                      anchor_frame_ind_projection=anchor_frame_ind_projection,
                                      iteration_chunk=iteration_chunk,
                                      iteration_projection=iteration_projection,
                                      max_offset_chunk=max_offset_chunk,
                                      max_offset_projection=max_offset_projection,
                                      align_func=align_func,
                                      fill_value=fill_value)

    print('\n'.join(f_paths))

    offsets_path = os.path.join(sub_folder, 'correction_offsets.hdf5')
    path_pairs = zip(f_paths, f_paths)
    mc.apply_correction_offsets(offsets_path=offsets_path,
                                path_pairs=path_pairs,
                                process_num=process_num,
                                fill_value=fill_value,
                                output_folder=sub_folder,