Skip to content

Commit a893a6a

Browse files
committed
Fix segment_index order.
1 parent 36e684b commit a893a6a

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

neo/rawio/spikeglxrawio.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -258,29 +258,19 @@ def scan_files(dirname):
258258

259259
# the segment index will depend on both 'gate_num' and 'trigger_num'
260260
# so we order by 'gate_num' then 'trigger_num'
261-
order_key = list({(info['gate_num'], info['trigger_num']) for info in info_list})
261+
# None is before any int
262+
def make_key(info):
263+
k0 = info['gate_num']
264+
if k0 is None:
265+
k0 = -1
266+
k1 = info['trigger_num']
267+
if k1 is None:
268+
k1 = -1
269+
return (k0, k1)
270+
order_key = list({make_key(info) for info in info_list})
262271
order_key = sorted(order_key)
263-
264-
print(order_key)
265-
exit()
266-
267-
total_gate = max([info['gate_num'] for info in info_list if info['gate_num'] is not None]) + 1
268-
total_trigger_per_gate = []
269-
for gate_num in range(total_gate):
270-
max_trigger = 0
271-
for info in info_list:
272-
if info['gate_num'] != gate_num:
273-
continue
274-
max_trigger = max(max_trigger, info['trigger_num'])
275-
total_trigger_per_gate.append(max_trigger + 1)
276-
277272
for info in info_list:
278-
g, t = info['gate_num'], info['trigger_num']
279-
if g == 0:
280-
seg_index = t
281-
else:
282-
seg_index = sum(total_trigger_per_gate[:g]) + t
283-
info['seg_index'] = seg_index
273+
info['seg_index'] = order_key.index(make_key(info))
284274

285275
return info_list
286276

neo/test/rawiotest/test_spikeglxrawio.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,20 @@ class TestSpikeGLXRawIO(BaseTestRawIO, unittest.TestCase):
1616
entities_to_test = [
1717
'spikeglx/Noise4Sam_g0',
1818
'spikeglx/TEST_20210920_0_g0',
19+
20+
# this is only g0 multi index
21+
'spikeglx/multi_trigger_multi_gate/SpikeGLX/5-19-2022-CI0/5-19-2022-CI0_g0'
22+
# this is only g1 multi index
23+
'spikeglx/multi_trigger_multi_gate/SpikeGLX/5-19-2022-CI0/5-19-2022-CI0_g1'
24+
# this mix both multi gate and multi trigger (and also multi probe)
1925
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI0',
26+
2027
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI1',
2128
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI2',
2229
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI3',
2330
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI4',
2431
'spikeglx/sample_data_v2/SpikeGLX/5-19-2022-CI5',
32+
2533
]
2634

2735
def test_with_location(self):

0 commit comments

Comments
 (0)