def _run(self, recording, output_folder): nb_chan = recording.get_num_channels() # check params and OpenCL when many channels use_sparse_template = False use_opencl_with_sparse = False if nb_chan >64: # this limit depend on the platform of course if tdc.cltools.HAVE_PYOPENCL: # force opencl self.params['fullchain_kargs']['preprocessor']['signalpreprocessor_engine'] = 'opencl' use_sparse_template = True use_opencl_with_sparse = True else: print('OpenCL is not available processing will be slow, try install it') tdc_dataio = tdc.DataIO(dirname=str(output_folder)) # make catalogue nested_params = make_nested_tdc_params(**self.params) chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps(cc, verbose=self.debug, **nested_params) if self.debug: print(cc) cc.make_catalogue_for_peeler() # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params(catalogue=initial_catalogue, use_sparse_template=use_sparse_template, sparse_threshold_mad=1.5, use_opencl_with_sparse=use_opencl_with_sparse,) peeler.run(duration=None, progressbar=self.debug)
def _run(self, recording, output_folder): recording = recover_recording(recording) tdc_dataio = tdc.DataIO(dirname=str(output_folder)) params = dict(self.params) del params["chunk_mb"], params["n_jobs_bin"] clean_catalogue_gui = params.pop('clean_catalogue_gui') # make catalogue chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: # parameters can change depending the group catalogue_nested_params = make_nested_tdc_params( tdc_dataio, chan_grp, **params) if self.verbose: print('catalogue_nested_params') pprint(catalogue_nested_params) peeler_params = tdc.get_auto_params_for_peelers( tdc_dataio, chan_grp) if self.verbose: print('peeler_params') pprint(peeler_params) cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps(cc, catalogue_nested_params, verbose=self.verbose) if clean_catalogue_gui: import pyqtgraph as pg app = pg.mkQApp() win = tdc.CatalogueWindow(cc) win.show() app.exec_() if self.verbose: print(cc) if distutils.version.LooseVersion(tdc.__version__) < '1.6.0': print('You should upgrade tridesclous') t0 = time.perf_counter() cc.make_catalogue_for_peeler() if self.verbose: t1 = time.perf_counter() print('make_catalogue_for_peeler', t1 - t0) # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params(catalogue=initial_catalogue, **peeler_params) t0 = time.perf_counter() peeler.run(duration=None, progressbar=False) if self.verbose: t1 = time.perf_counter() print('peeler.tun', t1 - t0)
def _run(self, recording, output_folder): nb_chan = recording.get_num_channels() tdc_dataio = tdc.DataIO(dirname=str(output_folder)) params = dict(self.params) clean_catalogue_gui = params.pop('clean_catalogue_gui') # make catalogue chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: # parameters can change depending the group catalogue_nested_params = make_nested_tdc_params(tdc_dataio, chan_grp, **params) if self.verbose: print('catalogue_nested_params') pprint(catalogue_nested_params) peeler_params = tdc.get_auto_params_for_peelers(tdc_dataio, chan_grp) if self.verbose: print('peeler_params') pprint(peeler_params) # check params and OpenCL when many channels use_sparse_template = False use_opencl_with_sparse = False if nb_chan > 64 and not peeler_params['use_sparse_template']: print('OpenCL is not available processing will be slow, try install it') cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps(cc, catalogue_nested_params, verbose=self.verbose) if clean_catalogue_gui: import pyqtgraph as pg app = pg.mkQApp() win = tdc.CatalogueWindow(cc) win.show() app.exec_() if self.verbose: print(cc) t0 = time.perf_counter() cc.make_catalogue_for_peeler() if self.verbose: t1 = time.perf_counter() print('make_catalogue_for_peeler', t1-t0) # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params(catalogue=initial_catalogue, **peeler_params) t0 = time.perf_counter() peeler.run(duration=None, progressbar=False) if self.verbose: t1 = time.perf_counter() print('peeler.tun', t1-t0)
def _run_from_folder(cls, output_folder, params, verbose): import tridesclous as tdc tdc_dataio = tdc.DataIO(dirname=str(output_folder)) params = params.copy() # make catalogue chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: # parameters can change depending the group catalogue_nested_params = make_nested_tdc_params( tdc_dataio, chan_grp, **params) if verbose: print('catalogue_nested_params') pprint(catalogue_nested_params) peeler_params = tdc.get_auto_params_for_peelers( tdc_dataio, chan_grp) if verbose: print('peeler_params') pprint(peeler_params) cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps(cc, catalogue_nested_params, verbose=verbose) if verbose: print(cc) # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params(catalogue=initial_catalogue, **peeler_params) t0 = time.perf_counter() peeler.run(duration=None, progressbar=False) if verbose: t1 = time.perf_counter() print('peeler.tun', t1 - t0)
def _run(self, recording, output_folder): nb_chan = recording.get_num_channels() tdc_dataio = tdc.DataIO(dirname=str(output_folder)) # make catalogue chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: # parameters can change depending the group catalogue_nested_params = make_nested_tdc_params( tdc_dataio, chan_grp, **self.params) #~ print(catalogue_nested_params) peeler_params = tdc.get_auto_params_for_peelers( tdc_dataio, chan_grp) #~ print(peeler_params) # check params and OpenCL when many channels use_sparse_template = False use_opencl_with_sparse = False if nb_chan > 64 and not peeler_params['use_sparse_template']: print( 'OpenCL is not available processing will be slow, try install it' ) cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps( cc, catalogue_nested_params, verbose=self.debug, ) if self.debug: print(cc) cc.make_catalogue_for_peeler() # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params(catalogue=initial_catalogue, **peeler_params) peeler.run(duration=None, progressbar=self.debug)
def tdc_helper(*, tmpdir, params, recording): import tridesclous as tdc # nb_chan = recording.get_num_channels() # check params and OpenCL when many channels use_sparse_template = False use_opencl_with_sparse = False # if nb_chan > 64: # this limit depend on the platform of course # if tdc.cltools.HAVE_PYOPENCL: # # force opencl # self.params['fullchain_kargs']['preprocessor']['signalpreprocessor_engine'] = 'opencl' # use_sparse_template = True # use_opencl_with_sparse = True # else: # print('OpenCL is not available processing will be slow, try install it') tdc_dataio = tdc.DataIO(dirname=str(tmpdir)) # make catalogue chan_grps = list(tdc_dataio.channel_groups.keys()) for chan_grp in chan_grps: cc = tdc.CatalogueConstructor(dataio=tdc_dataio, chan_grp=chan_grp) tdc.apply_all_catalogue_steps(cc, verbose=True, **params) cc.make_catalogue_for_peeler() # apply Peeler (template matching) initial_catalogue = tdc_dataio.load_catalogue(chan_grp=chan_grp) peeler = tdc.Peeler(tdc_dataio) peeler.change_params( catalogue=initial_catalogue, use_sparse_template=use_sparse_template, sparse_threshold_mad=1.5, use_opencl_with_sparse=use_opencl_with_sparse, ) peeler.run(duration=None, progressbar=False) sorting = se.TridesclousSortingExtractor(tmpdir) return sorting