Skip to content

Commit a8437ff

Browse files
committed
exp/rec ids as int and loop over recording nodes to get streams
1 parent 379f035 commit a8437ff

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

neo/rawio/openephysbinaryrawio.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ def explore_folder(dirname, experiment_names=None):
388388
# here we skip if experiment_names is not None
389389
experiment_folder = root.parents[0]
390390
experiment_name = experiment_folder.stem
391-
experiment_id = experiment_name.replace('experiment', '')
391+
experiment_id = int(experiment_name.replace('experiment', ''))
392392
if experiment_name not in possible_experiment_names:
393393
possible_experiment_names.append(experiment_name)
394394
if experiment_names is not None and experiment_name not in experiment_names:
@@ -406,7 +406,7 @@ def explore_folder(dirname, experiment_names=None):
406406

407407
recording_folder = root
408408
recording_name = root.stem
409-
recording_id = recording_name.replace('recording', '')
409+
recording_id = int(recording_name.replace('recording', ''))
410410
# add recording
411411
recording = {}
412412
recording['name'] = recording_name
@@ -468,27 +468,35 @@ def explore_folder(dirname, experiment_names=None):
468468
folder_structure[node_name]['experiments'][experiment_id]['recordings'][recording_id] \
469469
= recording
470470

471-
# now create all_streams, nb_block, nb_segment_per_block (from first recording Node)
471+
# now create all_streams, nb_block, nb_segment_per_block
472472
# nested dictionary: block_index > seg_index > data_type > stream_name
473473
all_streams = {}
474474
nb_segment_per_block = {}
475475
recording_node = folder_structure[list(folder_structure.keys())[0]]
476+
477+
# nb_block needs to be consistent across record nodes. Use the first one
476478
nb_block = len(recording_node['experiments'])
477479

478-
exp_ids_sorted = sorted(list(recording_node['experiments'].keys()))
479-
for block_index, exp_id in enumerate(exp_ids_sorted):
480-
experiment = recording_node['experiments'][exp_id]
481-
nb_segment_per_block[block_index] = len(experiment['recordings'])
482-
all_streams[block_index] = {}
483-
484-
rec_ids_sorted = sorted(list(experiment['recordings'].keys()))
485-
for seg_index, rec_id in enumerate(rec_ids_sorted):
486-
recording = experiment['recordings'][rec_id]
487-
all_streams[block_index][seg_index] = {}
488-
for stream_type in recording['streams']:
489-
all_streams[block_index][seg_index][stream_type] = {}
490-
for stream_name, signal_stream in recording['streams'][stream_type].items():
491-
all_streams[block_index][seg_index][stream_type][stream_name] = signal_stream
480+
for node_id, recording_node in folder_structure.items():
481+
exp_ids_sorted = sorted(list(recording_node['experiments'].keys()))
482+
for block_index, exp_id in enumerate(exp_ids_sorted):
483+
experiment = recording_node['experiments'][exp_id]
484+
nb_segment_per_block[block_index] = len(experiment['recordings'])
485+
if block_index not in all_streams:
486+
all_streams[block_index] = {}
487+
488+
rec_ids_sorted = sorted(list(experiment['recordings'].keys()))
489+
for seg_index, rec_id in enumerate(rec_ids_sorted):
490+
recording = experiment['recordings'][rec_id]
491+
if seg_index not in all_streams[block_index]:
492+
all_streams[block_index][seg_index] = {}
493+
for stream_type in recording['streams']:
494+
if stream_type not in all_streams[block_index][seg_index]:
495+
all_streams[block_index][seg_index][stream_type] = {}
496+
for stream_name, signal_stream in recording['streams'][stream_type].items():
497+
all_streams[block_index][seg_index][stream_type][stream_name] = \
498+
signal_stream
499+
492500
# natural sort possible experiment names
493501
experiment_order = np.argsort([int(exp.replace('experiment', ''))
494502
for exp in possible_experiment_names])

0 commit comments

Comments
 (0)