From c75252988826601b13cb9231c268975e1bbafd9b Mon Sep 17 00:00:00 2001 From: Pierre Yger Date: Wed, 30 Jul 2025 11:21:21 +0200 Subject: [PATCH] WIP --- .../sorters/internal/spyking_circus2.py | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/spikeinterface/sorters/internal/spyking_circus2.py b/src/spikeinterface/sorters/internal/spyking_circus2.py index 65e0e1cbea..dc4e1b8af1 100644 --- a/src/spikeinterface/sorters/internal/spyking_circus2.py +++ b/src/spikeinterface/sorters/internal/spyking_circus2.py @@ -322,7 +322,11 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): ), } - outputs = find_cluster_from_peaks( + matching_method = params["matching"].pop("method") + if matching_method is None: + templates_from_svd = True + + clustering_outputs = find_cluster_from_peaks( recording_w, selected_peaks, method=clustering_method, @@ -331,8 +335,8 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): **job_kwargs, ) - if len(outputs) == 2: - _, peak_labels = outputs + if len(clustering_outputs) == 2: + _, peak_labels = clustering_outputs from spikeinterface.sortingcomponents.clustering.tools import get_templates_from_peaks_and_recording templates = get_templates_from_peaks_and_recording( @@ -346,8 +350,7 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): else: from spikeinterface.sortingcomponents.clustering.tools import get_templates_from_peaks_and_svd - # _, peak_labels, svd_model, svd_features, sparsity_mask = outputs - _, peak_labels, more_outs = outputs + _, peak_labels, more_outs = clustering_outputs templates, _ = get_templates_from_peaks_and_svd( recording_w, @@ -360,9 +363,6 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): more_outs["peak_svd_sparse_mask"], operator="median", ) - # this release the peak_svd memmap file - del more_outs - del outputs templates = clean_templates( templates, @@ -379,7 +379,6 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): templates.to_zarr(folder_path=clustering_folder / "templates") ## We launch a OMP matching pursuit by full convolution of the templates and the raw traces - matching_method = params["matching"].pop("method") gather_mode = params["matching"].pop("gather_mode", "memory") gather_kwargs = params["matching"].pop("gather_kwargs", {}) matching_params = params["matching"].get("method_kwargs", {}).copy() @@ -421,8 +420,8 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): recording_w, peaks, templates=templates, - svd_model=svd_model, - sparse_mask=sparsity_mask, + svd_model=more_outs["svd_model"], + sparse_mask=more_outs["peak_svd_sparse_mask"], **job_kwargs, ) @@ -435,6 +434,9 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose): sorting["segment_index"] = peaks["segment_index"] sorting = NumpySorting(sorting, sampling_frequency, templates.unit_ids) + # this release the peak_svd memmap file + del clustering_outputs + merging_params = params["merging"].copy() merging_params["debug_folder"] = sorter_output_folder / "merging"