def extract_wrapper(ops):
    for plane in range(ops[0]['nplanes']):
        curr_op = ops[plane]
        plane_dir = Path(
            curr_op['save_path0']).joinpath(f'suite2p/plane{plane}')
        plane_dir.mkdir(exist_ok=True, parents=True)
        extract_input = np.load(curr_op['data_path'][0].joinpath(
            'detection',
            'detect_output_{0}p{1}c{2}.npy'.format(curr_op['nplanes'],
                                                   curr_op['nchannels'],
                                                   plane)),
                                allow_pickle=True)[()]
        #extraction.create_masks_and_extract(curr_op, extract_input['stat'])
        op, stat, F, Fneu, F_chan2, Fneu_chan2 = extraction.create_masks_and_extract(
            curr_op, extract_input['stat'], extract_input['cell_masks'],
            extract_input['neuropil_masks'])
        dF = F - curr_op['neucoeff'] * Fneu
        dF = extraction.preprocess(
            F=dF,
            baseline=curr_op['baseline'],
            win_baseline=curr_op['win_baseline'],
            sig_baseline=curr_op['sig_baseline'],
            fs=curr_op['fs'],
            prctile_baseline=curr_op['prctile_baseline'])
        spks = extraction.oasis(F=dF,
                                batch_size=curr_op['batch_size'],
                                tau=curr_op['tau'],
                                fs=curr_op['fs'])
        np.save(plane_dir.joinpath('ops.npy'), op)
        np.save(plane_dir.joinpath('stat.npy'), stat)
        np.save(plane_dir.joinpath('F.npy'), F)
        np.save(plane_dir.joinpath('Fneu.npy'), Fneu)
        np.save(plane_dir.joinpath('F_chan2.npy'), F_chan2)
        np.save(plane_dir.joinpath('Fneu_chan2.npy'), Fneu_chan2)
        np.save(plane_dir.joinpath('spks.npy'), spks)
def extract_wrapper(ops):
    for plane in range(ops[0]['nplanes']):
        curr_op = ops[plane]
        plane_dir = utils.get_plane_dir(curr_op, plane)
        extract_input = np.load(curr_op['data_path'][0].joinpath(
            'detection',
            'detect_output_{0}p{1}c{2}.npy'.format(curr_op['nplanes'],
                                                   curr_op['nchannels'],
                                                   plane)),
                                allow_pickle=True)[()]
        extraction.extract(curr_op, extract_input['cell_pix'],
                           extract_input['cell_masks'],
                           extract_input['neuropil_masks'],
                           extract_input['stat'])
        F = np.load(plane_dir.joinpath('F.npy'))
        Fneu = np.load(plane_dir.joinpath('Fneu.npy'))
        dF = F - curr_op['neucoeff'] * Fneu
        dF = extraction.preprocess(
            F=dF,
            baseline=curr_op['baseline'],
            win_baseline=curr_op['win_baseline'],
            sig_baseline=curr_op['sig_baseline'],
            fs=curr_op['fs'],
            prctile_baseline=curr_op['prctile_baseline'])
        spks = extraction.oasis(F=dF,
                                batch_size=curr_op['batch_size'],
                                tau=curr_op['tau'],
                                fs=curr_op['fs'])
        np.save(plane_dir.joinpath('spks.npy'), spks)
def run_preprocess(f: np.ndarray, test_ops):
    baseline_vals = ['maximin', 'constant', 'constant_prctile']
    for bv in baseline_vals:
        pre_f = extraction.preprocess(
            F=f,
            baseline=bv,
            win_baseline=test_ops['win_baseline'],
            sig_baseline=test_ops['sig_baseline'],
            fs=test_ops['fs'],
            prctile_baseline=test_ops['prctile_baseline'])
        test_f = np.load('data/test_data/detection/{}_f.npy'.format(bv))
        yield np.array_equal(pre_f, test_f)