def test_calculate_pc_metrics(): we = WaveformExtractor.load_from_folder('toy_waveforms') print(we) pca = WaveformPrincipalComponent.load_from_folder('toy_waveforms') print(pca) res = calculate_pc_metrics(pca) print(res)
def test_compute_quality_metrics(): we = WaveformExtractor.load_from_folder('toy_waveforms') print(we) # without PC metrics = compute_quality_metrics(we, metric_names=['snr']) assert 'snr' in metrics.columns assert 'isolation_distance' not in metrics.columns print(metrics) # with PCs pca = WaveformPrincipalComponent(we) pca.set_params(n_components=5, mode='by_channel_local') pca.run() metrics = compute_quality_metrics(we) assert 'isolation_distance' in metrics.columns print(metrics) # reload as an extension from we assert QualityMetricCalculator in we.get_available_extensions() assert we.is_extension('quality_metrics') qmc = we.load_extension('quality_metrics') assert isinstance(qmc, QualityMetricCalculator) assert qmc._metrics is not None # print(qmc._metrics) qmc = QualityMetricCalculator.load_from_folder('toy_waveforms') assert qmc._metrics is not None
def test_compute_quality_metrics(): we = WaveformExtractor.load_from_folder('toy_waveforms') print(we) # without PC metrics = compute_quality_metrics(we, metric_names=['snr']) print(metrics) print(metrics.columns) # with PCs pca = WaveformPrincipalComponent(we) pca.set_params(n_components=5, mode='by_channel_local') pca.run() metrics = compute_quality_metrics(we, waveform_principal_component=pca) print(metrics) print(metrics.columns)
def setup_module(): for folder in ('toy_rec', 'toy_sorting', 'toy_waveforms'): if Path(folder).is_dir(): shutil.rmtree(folder) recording, sorting = toy_example(num_segments=2, num_units=10) recording = recording.save(folder='toy_rec') sorting = sorting.save(folder='toy_sorting') we = WaveformExtractor.create(recording, sorting, 'toy_waveforms') we.set_params(ms_before=3., ms_after=4., max_spikes_per_unit=500) we.run_extract_waveforms(n_jobs=1, chunk_size=30000) pca = WaveformPrincipalComponent(we) pca.set_params(n_components=5, mode='by_channel_local') pca.run()
def test_WaveformPrincipalComponent(): we = WaveformExtractor.load_from_folder('toy_waveforms_2seg') unit_ids = we.sorting.unit_ids num_channels = we.recording.get_num_channels() pc = WaveformPrincipalComponent(we) for mode in ('by_channel_local', 'by_channel_global'): pc.set_params(n_components=5, mode=mode) print(pc) pc.run() for i, unit_id in enumerate(unit_ids): proj = pc.get_projections(unit_id) # print(comp.shape) assert proj.shape[1:] == (5, 4) # import matplotlib.pyplot as plt # cmap = plt.get_cmap('jet', len(unit_ids)) # fig, axs = plt.subplots(ncols=num_channels) # for i, unit_id in enumerate(unit_ids): # comp = pca.get_components(unit_id) # print(comp.shape) # for chan_ind in range(num_channels): # ax = axs[chan_ind] # ax.scatter(comp[:, 0, chan_ind], comp[:, 1, chan_ind], color=cmap(i)) # plt.show() for mode in ('concatenated',): pc.set_params(n_components=5, mode=mode) print(pc) pc.run() for i, unit_id in enumerate(unit_ids): proj = pc.get_projections(unit_id) assert proj.shape[1] == 5 # print(comp.shape) all_labels, all_components = pc.get_all_components() # relod as an extension from we assert WaveformPrincipalComponent in we.get_available_extensions() assert we.is_extension('principal_components') pc = we.load_extension('principal_components') assert isinstance(pc, WaveformPrincipalComponent) pc = WaveformPrincipalComponent.load_from_folder('toy_waveforms_2seg')