Skip to content

Commit c9c76fe

Browse files
committed
Fix gaps
1 parent f1fb930 commit c9c76fe

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

spikeinterface_gui/tests/test_mainwindow_panel.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ def test_mainwindow(start_app=False, verbose=True, curation=False, only_some_ext
6161
)
6262
win = None
6363

64+
for segment_index in range(analyzer.get_num_segments()):
65+
shift = (segment_index + 1) * 100
66+
# add a gap to times
67+
gap = 5
68+
times = analyzer.recording.get_times(segment_index)
69+
times = times + shift
70+
times[len(times)//2:] += gap # add a gap in the middle
71+
analyzer.recording.set_times(
72+
times,
73+
segment_index=segment_index
74+
)
75+
6476
win = run_mainwindow(
6577
analyzer,
6678
mode="web",

spikeinterface_gui/tests/test_mainwindow_qt.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,13 @@ def test_mainwindow(start_app=False, verbose=True, curation=False, only_some_ext
7070

7171
for segment_index in range(analyzer.get_num_segments()):
7272
shift = (segment_index + 1) * 100
73+
# add a gap to times
74+
gap = 1
75+
times = analyzer.recording.get_times(segment_index)
76+
times = times + shift
77+
times[len(times)//2:] += gap # add a gap in the middle
7378
analyzer.recording.set_times(
74-
analyzer.recording.get_times(segment_index) + shift,
79+
times,
7580
segment_index=segment_index
7681
)
7782

spikeinterface_gui/tracemapview.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ def get_data_in_chunk(self, t1, t2, segment_index):
8080
data_curves = data_curves.astype("float32")
8181

8282
t_start, _ = self.controller.get_t_start_t_stop()
83-
times_chunk = np.arange(traces_chunk.shape[0], dtype='float64') / self.controller.sampling_frequency + max(t1, t_start)
83+
if self.controller.main_settings["use_times"]:
84+
recording = self.controller.analyzer.recording
85+
times_chunk = recording.get_times(segment_index=segment_index)[ind1:ind2]
86+
else:
87+
times_chunk = np.arange(traces_chunk.shape[0], dtype='float64') / self.controller.sampling_frequency + max(t1, t_start)
8488

8589
scatter_x = []
8690
scatter_y = []
@@ -197,6 +201,11 @@ def _qt_seek(self, t):
197201
segment_index = self.controller.get_time()[1]
198202
times_chunk, data_curves, scatter_x, scatter_y, scatter_colors, scatter_unit_ids = \
199203
self.get_data_in_chunk(t1, t2, segment_index)
204+
205+
if times_chunk.size == 0:
206+
self.image.hide()
207+
self.scatter.clear()
208+
return
200209

201210
if self.color_limit is None:
202211
self.color_limit = np.max(np.abs(data_curves))

spikeinterface_gui/traceview.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ def apply_gain_zoom(self, factor_ratio):
321321

322322
def get_data_in_chunk(self, t1, t2, segment_index):
323323
ind1, ind2 = self.get_chunk_indices(t1, t2, segment_index)
324+
# handle blank spots
325+
if ind1 == ind2:
326+
return np.array([]), np.array([[]]), [], [], [], []
324327

325328
traces_chunk = self.controller.get_traces(segment_index=segment_index, start_frame=ind1, end_frame=ind2)
326329

@@ -345,7 +348,11 @@ def get_data_in_chunk(self, t1, t2, segment_index):
345348
data_curves += offsets[:, None]
346349

347350
t_start, _ = self.controller.get_t_start_t_stop()
348-
times_chunk = np.arange(traces_chunk.shape[0], dtype='float64') / self.controller.sampling_frequency + max(t1, t_start)
351+
if self.controller.main_settings["use_times"]:
352+
recording = self.controller.analyzer.recording
353+
times_chunk = recording.get_times(segment_index=segment_index)[ind1:ind2]
354+
else:
355+
times_chunk = np.arange(traces_chunk.shape[0], dtype='float64') / self.controller.sampling_frequency + max(t1, t_start)
349356

350357
scatter_x = []
351358
scatter_y = []
@@ -355,7 +362,6 @@ def get_data_in_chunk(self, t1, t2, segment_index):
355362
global_to_local_chan_inds = np.zeros(self.controller.channel_ids.size, dtype='int64')
356363
global_to_local_chan_inds[visible_channel_inds] = np.arange(visible_channel_inds.size, dtype='int64')
357364

358-
359365
for unit_index, unit_id in self.controller.iter_visible_units():
360366

361367
inds = np.flatnonzero(spikes_chunk["unit_index"] == unit_index)
@@ -482,6 +488,12 @@ def _qt_seek(self, t):
482488

483489
times_chunk, data_curves, scatter_x, scatter_y, scatter_colors, scatter_unit_ids = \
484490
self.get_data_in_chunk(t1, t2, self.controller.get_time()[1])
491+
492+
if times_chunk.size == 0:
493+
self.signals_curve.setData([], [])
494+
self.scatter.setData(x=[], y=[], brush=[])
495+
return
496+
485497
connect = np.ones(data_curves.shape, dtype='bool')
486498
connect[:, -1] = 0
487499

0 commit comments

Comments
 (0)