@@ -138,11 +138,7 @@ def check_sorter_version(cls):
138
138
139
139
@classmethod
140
140
def _setup_recording (cls , recording , sorter_output_folder , params , verbose ):
141
- from probeinterface import write_prb
142
-
143
- pg = recording .get_probegroup ()
144
- probe_filename = sorter_output_folder / "probe.prb"
145
- write_prb (probe_filename , pg )
141
+ cls ._setup_json_probe_map (recording , sorter_output_folder )
146
142
147
143
if params ["use_binary_file" ]:
148
144
if not recording .binary_compatible_with (time_axis = 0 , file_paths_length = 1 ):
@@ -189,7 +185,7 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose):
189
185
190
186
sorter_output_folder = sorter_output_folder .absolute ()
191
187
192
- probe_filename = sorter_output_folder / "probe.prb "
188
+ probe_filename = sorter_output_folder / "chanMap.json "
193
189
194
190
torch_device = params ["torch_device" ]
195
191
if torch_device == "auto" :
@@ -386,3 +382,29 @@ def _run_from_folder(cls, sorter_output_folder, params, verbose):
386
382
@classmethod
387
383
def _get_result_from_folder (cls , sorter_output_folder ):
388
384
return KilosortBase ._get_result_from_folder (sorter_output_folder )
385
+
386
+ @classmethod
387
+ def _setup_json_probe_map (cls , recording , sorter_output_folder ):
388
+ """Create a JSON probe map file for Kilosort4."""
389
+ from kilosort .io import save_probe
390
+ import numpy as np
391
+
392
+ groups = recording .get_channel_groups ()
393
+ positions = np .array (recording .get_channel_locations ())
394
+ if positions .shape [1 ] != 2 :
395
+ raise RuntimeError ("3D 'location' are not supported. Set 2D locations instead." )
396
+
397
+ n_chan = recording .get_num_channels ()
398
+ chanMap = np .arange (n_chan )
399
+ xc = positions [:, 0 ]
400
+ yc = positions [:, 1 ]
401
+ kcoords = groups .astype (float )
402
+
403
+ probe = {
404
+ "chanMap" : chanMap ,
405
+ "xc" : xc ,
406
+ "yc" : yc ,
407
+ "kcoords" : kcoords ,
408
+ "n_chan" : n_chan ,
409
+ }
410
+ save_probe (probe , str (sorter_output_folder / "chanMap.json" ))
0 commit comments